このページでは、プレーンな Apache のインストールを扱っている。 データベースサーバ PostgreSQL と PHP との連携については、PostgreSQL + Apache/PHP のインストール を参照してほしい。
Apache はすでに httpd の定番として、大変多くのサイトで利用されている。 しかし一方で、頻繁にバージョンアップを繰り返し、そのたびにシステム設定が大きく変更されたりしている。 以前にはディレクトリ構成が大きく変更され、次にまた元に戻されるという、利用者としては迷惑なことがあった。 最近では、access.conf と srm.conf が廃止されるという、ちょっと行き過ぎじゃないかなと思うような変更もあった(元に戻らないことを祈るだけだ)。
まず、ports は使わないこと。 どこにインストールされたものか分かったものではない。 きちんと管理したいなら、ソースから自力で make した方がよい。
ディレクトリ構成は、以下のようなデザインをお勧めする。
コマンドラインから操作する場合は、/www からのリンクを使った方が楽だ。 一方、起動スクリプトや httpd.conf などでは、/usr/local/apache-1.3.9 という絶対パスを使用するとよい。 バージョンアップのとき、リンクの張り方によっては古いプログラムをうっかり実行してしまわないためだ。
httpd の動作時の uid/gid も決めておく必要がある。 nobody/nogroup を勧めているケースもあるが、そういうことはやらない方がよい。 専用の uid と gid を決めておくのが無難である。 ここでは、www/www という名前で統一する。 ユーザ www はログイン不可にしておき、コンテントの設置などはグループ www に所属する一般ユーザを別に作るようにする。
以上の指針に従ったインストール手順は次のようになる。
# tar zxf apache_1.3.9.tar.gz # cd apache_1.3.9 # vi src/include/httpd.h
# ./configure --prefix=/usr/local/apache-1.3.9
# make # make install
# mkdir /usr/local/www
# cd /usr/local/apache-1.3.9 # mv cgi-bin htdocs logs /usr/local/www
# pushd /usr/local/www # chown www.www cgi-bin htdocs logs # chmod -R g+w cgi-bin htdocs logs # popd
# ln -s /usr/local/www/cgi-bin # ln -s /usr/local/www/htdocs # ln -s /usr/local/www/logs # ln -s /usr/local/apache-1.3.9 /www
#!/bin/sh apache=/usr/local/apache-1.3.9/bin/httpd apachectl=/usr/local/apache-1.3.9/bin/apachectl if [ -f $apache ]; then $apachectl start fi
してみて、診断を見る。
# /www/bin/apachectl configtest
インストール直後の htdocs には Apache のマニュアルが置いていあるので、別の場所にコピーしておき参照用に使うとよい。
最新版を /usr/local/apache-1.3.X にインストールし、まず httpd.conf を調べる。 以前のバージョンのものがそのまま使えればよいが、新たに増えたディレクティブや廃止された設定などがあるかもしれない。 httpd.conf が完成したら、それを /usr/local/apache-1.3.X/conf に置く。 以前のバージョンの方を直接変更してはいけない。
続いて cgi-bin、htdocs、logs を削除(または org などのディレクトリを作って移動)して、シンボリックリンクをこの手順で張り直す。 起動スクリプトを書き換えたら、古いバージョンを停止して、新しいバージョンを起動する。
# /usr/local/apache-1.3.9/bin/apachectl stop # /usr/local/apache-1.3.X/bin/apachectl start
一通りページアクセスを行って、正しく設定できたことを確認する。 特に CGI は要注意だ。 Apache は再起動すると機嫌が悪くなるので、できればリブートした方がよい。
最近のバージョンでは、access.conf と srm.conf が廃止され、httpd.conf に統合されることになった。 従来通りの複数ファイルも対応しているが、今のうちに新しいスタイルに変更したほうがよい。 書籍などのガイドを読む場合も、この点を考慮して読み直す必要がある。
サンプルについてくる httpd.conf に登場するディレクティブの一覧と解説を、このページにまとめておく。 自分で変更するときの参考にしてほしい。 ほとんどはデフォルトのままでよいが、以下のディレクティブは変更をお勧めする。 内容は推奨値に書き換えてある。