このページは福井県立大学の田中求之が2006年1月まで運用していた Mac のサーバ運用に関する会議室 「Web Scripter's Meeting」の記録です。情報が古くなっている可能性がありますのでご注意ください。

初心者です。Apache HTTP ServeでCGIが解りません。

発言者:MAEDA
( Date Monday, May 20, 1996 05:15:21 )


私のホームページServerでは、CGIもSSIも許可しているのですが、私自身が全くのド素人ですので、設定の仕方とかプロセスなど全く解りません。
取りあえず私はホームページでアンケートや、その集計、カウンターなどを使いたいと思っているのですが、私の加入しているブロバイダーはApache HTTPと言うのをServerにしていると言うことです。
CGIのprogramなどはそれについて書かれたホームページなどを参考にしています。
CGIを立ち上げたり、access.confというのは何なのか?どの様に確認すればよいのか?.htaccessや srm.confとは一体何なのか?もし御存知の方がいらっしゃいましたら一から教えていただけないでしょうか。
一度は難しいApacheはあきらめて、私のMACをServerにしようと田中さんの書かれた記述とOSAXを利用させていただいて自分なりにAppleScriptで、Eudora-Jの受信簿からTEXT DATAをデコードしJeditファイルに書き込むまでを自動化してみたのですが、これはmailとして受け取ったモノのデコードですので、Serverに置いておくモノではありません。ServerにCGIとして置いておくには専用線で接続されていないとダメと言う根本的なことに気が付きませんでした。

SBK さんからのコメント
( Monday, May 20, 1996 08:37:41 )

 大変ですね。
さて、私は田中さんの本を持っていますが、そこには、Macでサーバー
を立ち上げる方法だけでなく、プロバイダーでSSIやCGIをやる方法に
ついても言及しているはずです。その本を読まれるとよいのではない
でしょうか?田中さんの本ではサンプルがPerlになっていましたが、
それ以外にも、CGI入門とかいう本も、プロバイダーのUNIXでSSIや
CGIを利用する方法が書かれています。こちらの言語はshとか、そう
いったShellを動かすやつだったと思います。(なにせUNIXは触った
ことがないものですから、用語が不確かで、ごめんなさい。)
 現在、会社からアクセスしている関係で手元に本がないので、
詳しい題名は、このあと書き込んでくださる方々が教えてくれる
でしょう。//

MAEDA さんからのコメント
( Wednesday, May 22, 1996 03:09:41 )

SBKさんコメント有り難うございます。
今もウエッブページで、UNIXやPealについての記述を探しておりました。
やはり、詳しく書かれているところは、初心者の段階までは振り返って説明してもらえないようですね。
焦れったいというのは解りますが・・・。どこかにServerとは何か?・・と一から順に一から説明してくれるところはないのでしょうかね。

ショージ さんからのコメント
( Wednesday, May 22, 1996 08:53:59 )

MAEDAさん、こんにちわ。

 わからないことがあればここで質問すればよいですよ。だれかが必ず
答えてくれると思います。

ショージ
shoji@dit.co.jp

MAEDA さんからのコメント
( Thursday, May 23, 1996 00:04:46 )

ショージさん有り難うございます。
解らないことをまとめてみます。

SBK さんからのコメント
( Thursday, May 23, 1996 11:15:57 )

 このところ他人のホームページ立ち上げに忙しくて、しばらくのぞいて
おりませんでしたが、本の題名を教えて下さる方がいらっしゃらないよう
ですね。
 明日あたり調べて、書き込みますので、しばらくお待ちを。
Apache HTTPはNCSAの拡張ですから、NCSAの説明のやつでもかまわないん
ですよね。//

MAEDA さんからのコメント
( Friday, May 24, 1996 01:24:19 )

SBKさん、ホントに暖かいお言葉有り難うございます。

>Apache HTTPはNCSAの拡張ですから、NCSAの説明のやつでもかまわないん
>ですよね。

多分大丈夫だと思います。

その後、ホームページを探していたら、 ネットサーフレスキュー[Web裏技]
http://www.sainet.or.jp/~rescue/
というページがあり、初心者でもとりつけられるカウンター等や、
初心者にも解りやすいUNIXの説明が書かれていました。

これでカウンターや、日付をホームページに入れることは出来たんですが、まだPerlやCGIについての根本の根本(理工学系の学校で、新入生が先生から口頭で教えてもらうような用語や、コマンドの役割等)が解らないので、UNIXでSSIやCGIを利用する方法・・等のようにいきなりprogramから入るような本よりも、
「漫画で分かるPerlコマンドの意味」「漫画で分かるCGIプログラム・参考プログラム入り」・・みたいな本が欲しいと思っています。

ここで、私がどのくらいの次元でPerlやCGIについて分からないかを書きます。
良かったら教えて下さい。

1, Perlで良く見る「$・・」の$や、「#!/bin/sh」等の「#」の意味や役割。
2, 「・・.pl」はperlスクリプトファイルですよね。では「・・.sh」とはどんなファイルでしょう?
3, perl textをUNIXでコンパイルするにはどうすればよいのでしょう。
4, 「環境変数」・「グローバル変数」って何?
5,  pathとは?

・・・等など。
CGI 等を説明したモノは、プログラムの根本が分かっていると仮定して書かれてあるようなので、時たま付いていけなくなることがあります。

どうか宜敷お願いいたします。

ショージ さんからのコメント
( Friday, May 24, 1996 13:39:55 )

では簡単にお答えします。

1. $が頭についているのは変数であることを示しています。ここにいろいろな
データが入ります。1次方程式で言うところの y = x + 5 のような式はPerl
では $y = $x + 5 と言うような形になりますね。また、#はコメントを表わし
ており、これ以降はコメントであると宣言しています。「#!/bin/sh」はこれ
がshellスクリプトであるという宣言です。Perlでは「#!/usr/local/bin/perl」
と言うことになりますね。

2. .shはシェルスクリプトです。

3. Perlは基本的にインタプリタですからコンパイルする必要はなく、起動する
際には % perl foo.pl と言うように任意のスクリプトを実行してください。

4. 環境変数とはUNIXにログインした時、またはその後に設定される各ユーザー
がもっている変数です。$PATH にはパスが指定されています。お使いのシェルに
よって違いますが % env と打ち込んで見てください。設定されている環境変数
が表示されるはずです。また、グローバル変数とはプログラムの中で使う変数で
プログラム全般にわたって情報が保存されている変数のことを言います。

5. path とはアプリケーションを探しにいくディレクトリの設定のことです。た
とえばperlが/usr/local/bin/というディレクトリにある場合にpathが設定して
なければperlというコマンドだけでは起動できません。


MAEDAさんの場合はとりあえず何らかのコンピュータ用語辞典を一つお買求めに
なられて、わからないことをまずそこで調べて見るのがよいのではないでしょう
か?そのうちに情報についての関連性ができてきますので、そのあとにプログラ
ミングの勉強を始められたほうがよいと思います。

Perlは基本さえわかっていれば簡単ですので、急がず慌てずあきらめず、ゆっく
りとやっていきましょう。

そうそう、Perlでお勧めなのは「Perlでパラダイス」という本です。これが一番
やさしく書いてあるんじゃないかしら?

ショージ

MAEDA さんからのコメント
( Friday, May 24, 1996 20:19:34 )

ショージさん、早速のご説明有り難うございます。
ホントに良く理解できました。
ショージさんの、ご指導どうり% env と打ち込んで見ました。
(Apacheのプロンプトは>らしいので> envと打ち込みました)

> env
HOME=/kiwi/usr/*******
PATH=/usr/bin:
LOGNAME=*********
HZ=100

TZ=US/Eastern
SHELL=/bin/tcsh
MAIL=/var/mail/*******
TERM=vt100
SHLVL=1
PWD=************
USER=*******
HOST=web
HOSTTYPE=sun4

と出ました。(***の所は大事なところらしいのであしからず省略させていただきました)
これが私の環境変数なのですね。

>そうそう、Perlでお勧めなのは「Perlでパラダイス」という本です。これが一番
>やさしく書いてあるんじゃないかしら?

有り難うございます。本屋で探してみます。
お礼に?ショージさんがもしMacをお使いでしたら、私が、田中さんのOSAXと参考資料を利用させていただいて作った、「受信簿dataデコードJedit変換」というAppleScriptプログラムを差し上げましょうか?
というより、見て頂きたいのが本音なのですが・・・。
他の方でも、もし興味がある方や、どんなモノか一度試してやろうという方は、メール戴ければAppleScriptのtextdataで送ります。使用条件は、アドバイスを頂くと言うことで・・・・。
これは、Eudora-Jの受信簿dataからアンケート項目として送られてきた「name=」という項目からの文字化けしたログをピックアップして、Jedit書類「完全修正」というファイルにかきうつつすというモノです。まだ不完全なところや、こうすればもっといいとか、たくさんあります。(プログラム初めて1ヶ月位なので)そして、ダイアログに順次説明を入れてありますが広島出身なので所々広島弁になっています。


ちなみに今私は、UNIXのServer上でnkfのソース(C言語でかかれたプログラム)をコンパイルしようとしていますが、> cc nkf.c -o nkfと打ち込んだ所、cc: Command not found.とメッセージされ、passを指定して /usr/ucb/cc nkf.c -o nkfと打ち込んでみたのですが、> /usr/ucb/cc:  language optional software package not installedとメッセージが帰ってきました。
どうなっているんでしょうね?これはやはりPATH=/usr/bin:に示すとおり
/usr/ucb/ccのところ/usr/bin/ccに直さなければいけないのでしょうか?
しかし、man command   で指定したコマンドの説明書を表示させたところいかのメッセージが帰ってきました。
> man cc
Reformatting page.  Wait... done

cc(1B)      SunOS/BSD Compatibility Package Commands       cc(1B)

NAME
     cc - C compiler

SYNOPSIS
     /usr/ucb/cc [ options ]

AVAILABILITY
     SUNWscpu

DESCRIPTION
     /usr/ucb/cc is the interface to the BSD Compatibility  Pack-
     age  C  compiler.   It  is  a script that looks for the link
     /usr/ccs/bin/ucbcc to the C compiler.  /usr/ccs/bin/ucbcc is
     available  only with the SPROcc package, whose default loca-
     tion  is  /opt/SUNWspro.   /usr/ucb/cc   is   identical   to
     /usr/ccs/bin/ucbcc, except that BSD headers are used and BSD
     libraries   are   linked   before   base   libraries.    The
     /opt/SUNWspro/man/man1/acc.1 man page is available only with
     the SPROcc package.

OPTIONS
     /usr/ucb/cc accepts the same options as  /usr/ccs/bin/ucbcc,
     with the following exceptions:

     -Idir           Search dir for included files whose names do
                    not begin with a slash (/) prior to searching
                    the usual directories.  The  directories  for
                    multiple -I options are searched in the order
                    specified.  The preprocessor  first  searches
                    for  #include files in the directory contain-
                    ing sourcefile, and then in directories named
                    with      -  I   options   (if   any),   then
                    /usr/ucbinclude,     and     finally,      in
                    /usr/include.

     -Ldir           Add dir to the list of directories  searched
                    for  libraries  by  /usr/ccs/bin/ucbcc.  This
                    option  is  passed  to  /usr/ccs/bin/ld   and
                    /usr/ccs/lib.    Directories  specified  with
                    this option are searched  before  /usr/ucblib
                    and /usr/lib.

     -Y P, dir       Change the default directory used for  find-
                    ing libraries.

EXIT STATUS
     The following exit values are returned:

     0         Successful compilation or link edit.

     >0        An error occurred.

SunOS 5.5            Last change: 1 Feb 1995                    1

cc(1B)      SunOS/BSD Compatibility Package Commands       cc(1B)

FILES
     /usr/ccs/bin/ld     link editor
     /usr/lib/libc       C library
     /usr/ucbinclude     BSD Compatibility directory  for  header
                         files
     /usr/ucblib         BSD    Compatibility    directory    for
                         libraries
     /usr/ucblib/libucb  BSD Compatibility C library
     /usr/lib/libsocket  library containing socket routines
     /usr/lib/libnsl     library containing network functions
     /usr/lib/libelf     library containing routines  to  process
                         ELF object files
     /usr/lib/libaio     library containing asynchronous I/O rou-
                         tines

SEE ALSO
     ld(1), a.out(4)

NOTES
     The -Y P, dir option may have unexpected results, and should
     not be used.

SunOS 5.5            Last change: 1 Feb 1995                    2

どなたか、これを解読してくださいませんか。


SBK さんからのコメント
( Monday, May 27, 1996 10:25:39 )

 前回コメントしたはずが、ちゃんと登録されておりませんでしたので、
再度書き込みしておきます。

本の題名ですが、
 ワンランク上のホームページのためのHTML&CGI入門
 佐々木望・太田晶宏・藤崎真美 共著 AI出版 ¥2200円

です。//

MAEDA さんからのコメント
( Wednesday, May 29, 1996 05:58:59 )

SBKさん、皆さん有り難うございます。
今まで、ホームページを教科書代わりにやってきて、皆さんのご指導の元、アクセスカウンター・日付・時間変更によるメッセージ・訪問者リストなど
が見よう見まねで取り付けることが出来、多少のカスタマイズもできました。
これもひとえにコメントをつけていただいた皆さん、そのほか御教授いただいたインターネットの中の御先輩方々の賜物だと思っています。
これからは、教えていただいた本や等で基本を勉強していきたいと思います。
ちなみにショージさんから教わった「Perlでパラダイス」という本がまだ見つかっておりません。
SBKさんの「ワンランク上のホームページのためのHTML&CGI入門」同様、早く購入したいと思います。
それでもまだ皆さんに、ご迷惑質問をかけると思いますがその節は宜敷お願いいたします。
その次は、shockウェーブ、にJava・・にいければいいんですが。