Apache のインストールと設定

WWW サーバを作るために、Apache をインストールします。 ここでは、ソースを持って来てコンパイルする方法を取ります。 この記述は、apache-1.3.22 を元にしています。

用意するもの

サイト

Apache の入手

まず、apache-x.x.xx.tar.gz を適当なサイトから入手します。 日本語のサイト Apache をダウンロードできるサイト一覧 があります。 入手したら、MD5 でチェックします。
% md5 apache-x.x.xx.tar.gz
MD5 (apache-x.x.xx.tar.gz) = ......................
% cat apache-x.x.xx.tar.gz.md5
MD5 (apache-x.x.xx.tar.gz) = ......................
2行目と4行目が一致していればOKです。 よければ、適当な場所に展開します。
% cd /somewhere
% zcat /somewhere/apache-x.x.xx.tar.gz | tar -xf -
% cd apache-x.x.xx

configure

次に、configure をします。 cinfigure のオプションの詳細は INSTALL に書いてありますが、 ここではコンパイラとインストール先のみ指定します。
% setenv CC /usr/bin/gcc
% ./configure --prefix=PREFIX

PREFIX は、お好きな場所を指定します。 例えば、./configure --prefix=/usr/local/lib/apache など。 デフォルトは、PREFIX=/usr/local/apache です。

make と make install

make して make install します。
% make
% su
Password:
# make install

インストールはすべて上の PREFIX で指定されたディレクトリ以下に されます。インストールされた後の状況は以下の通り。
% ls -F PREFIX
bin/ cgi-bin/ conf/ htdocs/ icons/ include/ libexec/ logs/ man/ proxy/

マニュアル

マニュアル man も PREFIX に入っています。 これを man コマンドで見られるように、/etc/manpath.config に 次の2行を追加しておきます。
/etc/manpath.config
MANDATORY_MANPATH PREFIX/man
MANPATH_MAP PREFIX/bin PREFIX/man

テスト

Apache が動くかどうか、テストします。
# PREFIX/bin/apachectl start

ローカルホストで、http://localhost/ にアクセスしてみます。 これで、PREFIX/htdocs を読みに行けば成功です。

トラブルシューティング

  1. conf/httpd.conf の251行目で Group が "#-1" になっていると httpd がうまく立ち上がらない事があります。 "#-1" を nobody に変更してからやり直します。
  2. conf/httpd.conf の236行目で Port が 8080 になっていると、 WWW サーバにアクセスできません。80 に直しておきます。

設定

古いバージョンでは conf/{access.conf,srm.conf} も使われいたようです が、version 1.3.22 では混乱を避けるためすべての記述を conf/httpd.conf にすることが推奨されています。

さて、conf/httpd.conf で設定しなければならないことは、 主に次の項目でしょうか。 詳細は、conf/httpd.conf をご覧下さい。 その日本語訳 も参考になります。

  1. Port 番号
    (236行目) Port 80

  2. Group ID
    (251行目) Group nobody

  3. サーバ管理者のメールアドレス
    (258行目) ServerAdmin admin_name@hogehoge.jp

  4. WWW サーバの名前もしくは IP アドレスのみ指定された時に 見に行く場所
    (283行目) DocumentRoot /homedir/of/httpd

  5. .htaccess によるアクセス制限をするかどうか
    (295行目) AllowOverride None
    → AllowOverride Limit AuthConfig
    Limit は、IP アドレスによるアクセス制限を行うため、
    AuthConfig はユーザ名とパスワードによるアクセス制限を行うために 設定します。
    その他、.htaccess を隠すための設定が 383行目〜387行目にありますが、 バージョン 1.3.22 ではデフォルトで隠すようになっています。

  6. DocumentRoot で指定したディレクトリへの設定(308〜331行目)
    (308行目) <Directory "/homedir/of/httpd">
    上の .htaccess を有効にするためには、
    (324行目) AllowOverride None
    → AllowOverride Limit AuthConfig
    が必要。

  7. WWW サーバの名前もしくは IP アドレスに続き、 ユーザの名前のみ指定された時に見に行く場所
    (338行目) UserDir public_html

  8. ファイルの名前が省略された場合に見に行くファイル
    (363行目) DirectoryIndex index.html

UserDir に関する詳しい説明
上の例の場合は、~/public_html を指定したことになります。 こうしておくと、
http://hogehoge.ac.jp/~herohero/public_html/index.html
と指定すべき所を
http://hogehoge.ac.jp/~herohero/index.html
とちょっと楽できます。 もし各ユーザのホームディレクトリ以外を指定したかったら、 絶対パスで書いておけば大丈夫です。例えば、

UserDir /home/of/user

としておくと、
http://hogehoge.ac.jp/home/of/usr/herohero/index.html
と指定すべき所を
http://hogehoge.ac.jp/~herohero/index.html
で良い様に設定したことになります。

トラブルシューティング

Apache をアップデートした後で WWW ファイルを見ると 日本語が文字化けすることがあります。 この現象の対処法は ユーザの WWW ページの文字化けについて(対処法) にあります。

おまけ:Linux での自動起動法

/etc/rc.d/init.d/httpd をバックアップしておいて、 bin/apachectl にリンクする。
# cd /etc/rc.d/init.d/httpd
# mv httpd httpd.bak
# ln -s PREFIX/bin/apachectl httpd

なお、PREFIX は configure のときに決めたインストール先の ディレクトリです。


FreeBSD の部屋


Jan. 8, 2002