WWW サーバを作るために、Apache をインストールします。 ここでは、ソースを持って来てコンパイルする方法を取ります。 この記述は、apache-1.3.22 を元にしています。
用意するもの
まず、apache-x.x.xx.tar.gz を適当なサイトから入手します。 日本語のサイト に Apache をダウンロードできるサイト一覧 があります。 入手したら、MD5 でチェックします。2行目と4行目が一致していればOKです。 よければ、適当な場所に展開します。
% 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) = ......................
% cd /somewhere
% zcat /somewhere/apache-x.x.xx.tar.gz | tar -xf -
% cd apache-x.x.xx
次に、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
% 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 を読みに行けば成功です。
トラブルシューティング
- conf/httpd.conf の251行目で Group が "#-1" になっていると httpd がうまく立ち上がらない事があります。 "#-1" を nobody に変更してからやり直します。
- 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 をご覧下さい。 その日本語訳 も参考になります。
- Port 番号
(236行目) Port 80
- Group ID
(251行目) Group nobody
- サーバ管理者のメールアドレス
(258行目) ServerAdmin admin_name@hogehoge.jp
- WWW サーバの名前もしくは IP アドレスのみ指定された時に 見に行く場所
(283行目) DocumentRoot /homedir/of/httpd
- .htaccess によるアクセス制限をするかどうか
Limit は、IP アドレスによるアクセス制限を行うため、
(295行目) AllowOverride None
→ AllowOverride Limit AuthConfig
AuthConfig はユーザ名とパスワードによるアクセス制限を行うために 設定します。
その他、.htaccess を隠すための設定が 383行目〜387行目にありますが、 バージョン 1.3.22 ではデフォルトで隠すようになっています。
- DocumentRoot で指定したディレクトリへの設定(308〜331行目)
上の .htaccess を有効にするためには、
(308行目) <Directory "/homedir/of/httpd">
(324行目) AllowOverride None
→ AllowOverride Limit AuthConfig
が必要。
- WWW サーバの名前もしくは IP アドレスに続き、 ユーザの名前のみ指定された時に見に行く場所
(338行目) UserDir public_html
- ファイルの名前が省略された場合に見に行くファイル
(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 ページの文字化けについて(対処法) にあります。
/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 のときに決めたインストール先の ディレクトリです。