Apache のインストール
Last Modified: Tue Dec 27 00:06:02 JST 2011

このページでは、プレーンな 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 に所属する一般ユーザを別に作るようにする。

インストール手順

以上の指針に従ったインストール手順は次のようになる。

  1. ソースをダウンロード
    http://www.apache.org/dist/ でダウンロードできるが、国内のミラーサイトを探すのがよい。
  2. apache_1.3.9 を展開、httpd.h を変更 大量のアクセスをさばく必要があるなら、HARD_SERVER_LIMIT を増やす。 400以上にすると色々問題になることが多い。 また、CGI などサーバ負荷の大きいコンテンツを持っている場合は、負荷が大きくなりすぎる可能性があるので、無暗に増やさないよう注意しよう。

    # tar zxf apache_1.3.9.tar.gz # cd apache_1.3.9 # vi src/include/httpd.h
  3. configure を実行

    # ./configure --prefix=/usr/local/apache-1.3.9
  4. apacheをコンパイルし、インストール

    # make # make install
  5. コンテント用ディレクトリを作成

    # mkdir /usr/local/www
  6. コンテントディレクトリを、インストールディレクトリから移動

    # cd /usr/local/apache-1.3.9 # mv cgi-bin htdocs logs /usr/local/www
  7. ディレクトリのオーナーとパーミッションを変更

    # pushd /usr/local/www # chown www.www cgi-bin htdocs logs # chmod -R g+w cgi-bin htdocs logs # popd
  8. シンボリックリンクを作成

    # 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
  9. apacheの起動スクリプトを作成
    /usr/local/etc/rc.d/apache.sh というスクリプトを作る。 内容は次の通り。

    #!/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
  10. httpd.conf を設定
    詳細は httpd.conf の設定 を参照してほしい。 いずれにしても、デフォルトのままではいろいろ不都合なのでしっかり変更しておく必要がある。
  11. 起動スクリプトで apache を起動
    起動できない場合は、conf がおかしい。

    # /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 は再起動すると機嫌が悪くなるので、できればリブートした方がよい。

httpd.conf の設定

最近のバージョンでは、access.conf と srm.conf が廃止され、httpd.conf に統合されることになった。 従来通りの複数ファイルも対応しているが、今のうちに新しいスタイルに変更したほうがよい。 書籍などのガイドを読む場合も、この点を考慮して読み直す必要がある。

サンプルについてくる httpd.conf に登場するディレクティブの一覧と解説を、このページにまとめておく。 自分で変更するときの参考にしてほしい。 ほとんどはデフォルトのままでよいが、以下のディレクティブは変更をお勧めする。 内容は推奨値に書き換えてある。


[back to index]