前へ << CGI プログラムからのメール送信 (2) | SSI >> 次へ |
世の中にはたくさんの WWW サーバが存在しますが、 現在では文句なく apache (アパッチ) がトップシェアを誇っています。 二番手は Microsoft の IIS (Internet Information Service) でしょう。 この 2つの WWW サーバがシェアの 90% 近くを握っており、 それ以外はパっとしません。二強時代と言えるでしょう。一昔前は CERN httpd と NCSA httpd が2大 WWW サーバでしたが、 今は開発が終了しています。ここでの解説は全て apache のものですので、注意してください。
サーバの管理者でなくても、ローカルに WWW サーバがあるとないとでは、 便利さが大きく違います。FreeBSD ならば、apache の port/package が用意されています。 ここでは package を使う場合、port を使う場合、ソースから コンパイルする場合、の3通りの方法を説明します。NetBSD・ Linux などでは、各環境ごとにバイナリパッケージが用意されている でしょうから、それを利用してもいいですし、ソースから コンパイルしてもよいです。
どの方法でインストールしても、その後にコンフィグファイルを設定しなければいけません。 まず /usr/local/etc/apache/ に移動します (環境によっては /usr/local/apache/conf/ の 場合もあるかもしれません)。すると、
- package を使う場合
% su (root になる) # pkg_add /cdrom/packages/www/apache-1.3.9.tgz- port を使う場合
# cd /usr/ports/www/apache13 # make # make install- ソースからコンパイルする場合
apache-1.3.9.tar.gz を入手し、
% tar zxf apache-1.3.9.tar.gz % cd apache-1.3.9 % ./configure % make % su (root になる) # make installというファイルがあります。これは配布時の設定ファイルなので、 本当の設定ファイルを作ります。
- httpd.conf.default
- srm.conf.default
- access.conf.default
- mime.types.default
- magic.default
# su (root になる) # cd /usr/local/etc/apache/ # cp httpd.conf.default httpd.conf # cp srm.conf.default srm.conf # cp access.conf.default access.conf # cp mime.types.default mime.types # cp magic.default magic設定すべきファイルは httpd.conf のみです。その他のファイルは いじらなくていいです。httpd.conf について変更する部分は2つあります。 コメントアウトされている ServerName の項目を
ServerName localhostにします。これはホスト名を localhost に設定します。そのサーバが インターネットに常時接続されているなら、foo.bar.com などという ホスト名を指定してもいいでしょう。次に、</Directory> Options FollowSymLinks AllowOverride None <Directory />の部分を<Directory /> Options All AllowOverride All </Directory>とします。Options を All にすることで、全ての機能を使えるようにします。 これにより CGI・SSI などが使えるようになります。 そして AllowOverride All とすることで、一般ユーザが自由に設定を 変えられるようにします。つまり ~/public_html/.htaccess による 設定変更を許可する、ということです。ファイルを書き換えたら、
# /usr/local/sbin/apachectl start (環境によっては /usr/local/apache/bin/apachectl start)として、apache を実行します。ちゃんと起動しているか どうかは netstat や ps コマンドで確認できます。% netstat -a -f inet | grep http tcp 0 0 *.http *.* LISTEN % ps ax | grep http (SystemV 系なら ps -ef | grep http) 220 ?? Ss 0:03.17 /usr/local/sbin/httpd 242 ?? I 0:00.71 /usr/local/sbin/httpd 243 ?? I 0:00.67 /usr/local/sbin/httpd : :というふうに表示されれば正常です (httpd のプロセスが複数起動していると思いますが、 それで構いません)。もし動いていないようなら、ログファイルを見ましょう。 /var/log/httpd-error.log (環境によっては /usr/local/apache/logs/error.log) の最後にエラーメッセージがないか確認して下さい。
apache の設定は /usr/local/apache/conf/httpd.conf というファイルによって行います。 この設定によって、ユーザが CGI を使えるかどうか、 SSI を使えるかどうかが決まります。httpd.conf には
<Directory /> Options FollowSymLinks AllowOverride None </Directory>とあります。<Directory />〜</Directory> の間は、 ディレクトリ / 以下、つまり全てのコンテンツに関する設定を決めています。 同様に、<Directory /usr/local/apache/htdocs/>〜</Directory> の間は、/usr/local/apache/htdocs/ 以下のコンテンツに関する設定を決めています。<Directory /usr/local/apache/htdocs> Options Indexes FollowSymLinks AllowOverride None </Directory>
<Directory /usr/local/apache/cgi-bin> Options None AllowOverride None </Directory>
Options は、各種の動作の設定を決める命令で、
を設定することができます。
- Indexes
- Includes (IncludesNoExec)
- FollowSymLinks (FollowSymLinksIfOwnerMatch)
- ExecCGI
- MultiViews
Options +FollowSymlinks +Includes -ExecCGIとすると、FollowSymlinks Includes を ON にし、ExecCGI を OFF にします。 この Options で記述しなかった Indexes や MultiViews は変更しません (Indexes/Multiviews は管理者の行った設定がそのまま反映されます)。Indexes
ファイル一覧表示を許可する。普通、 http://X68000.q-e-d.net/~68user/ などにアクセスすると、 http://X68000.q-e-d.net/~68user/index.html や http://X68000.q-e-d.net/~68user/index.htm が表示されますが、もし index.html や index.htm が存在しないと、 該当ディレクトリの下にあるファイル一覧が表示されます。Includes
SSI を許可するかどうか。Options +Includes とした場合は、などが有効になります。IncludesNoExec も参照して下さい。
- <!--#exec cmd="..."-->
- <!--#exec cgi="..."-->
- <!--#include file="..."-->
IncludesNoExec
SSI (Exec 以外) を許可するかどうか。Options +IncludesNoExec とした場合は、などが有効になりますが、Includes とは違って
- <!--#include file="..."-->
などの exec 系は使えません。SSI を使って他のファイルを include したいが、 プログラムを実行した結果を取り込む必要はない、という場合に使います。
- <!--#exec cmd="..."-->
- <!--#exec cgi="..."-->
FollowSymLinks
シンボリックリンクを許可するかどうか。 シンボリックリンクをたどるかどうかを設定します。 なお、シンボリックリンク自体は OS の機能ですから、 いつでも使えます。ここでは web 経由でシンボリックリンクを 辿るかどうかを決めるわけなので、CGI プログラムの中では いつでもシンボリックリンクを使うことができます。
前へ << CGI プログラムからのメール送信 (2) | SSI >> 次へ |