ここでは、Webサーバーの定番ともいえるApacheについて解説していきます。Apache
は数多く存在するWebサーバーの中でも世界一のシェアを誇り、約60%以上の人々がApacheを使用しているとも言われています。Apache2になってからは、マルチスレッドへの対応、マルチプロトコルのサポート、IPv6のサポート、フィルタリング機能の追加など様々な新機能も盛り込まれてバージョンアップを重ねてきました。当ページではそのApache2
のインストールから初期設定までを解説しています。既にインストールを終えて細かな設定をしたい方は、「httpd.conf
の設定」を参考にしてください。
|
|
■Apache2 のダウンロード
■Apache2のインストール
--prefix=PREFIX で、インストール場所を選択できます。デフォルトは、/usr/local/apache2 になります。WebDAV を使用したい場合は、--enable-dav
を指定します。configureオプションを詳しく参照したい場合は、configure -h で確認してください。MPMについては以下後述。
$ cd /usr/local/src
$ tar xzvf httpd-2.0.48.tar.gz
$ cd httpd-2.0.48
$ ./configure --with-mpm=worker \
--enable-dav
$ make
# make install |
|
■マルチプロセッシングモジュール(MPM)
Apache2からは、マルチプロセッシングモジュール(MPM)というオプションを指定することができます。オプションを指定しない場合、prework
でインストールされ、安定性と互換性が確保されます。大きなスケーラビリティを必要とするのであればworker、VirtualHostを用いる予定で、パフォーマンスの向上を得たいのであれば、perchild
を選択するのがいいかもしれません。MPMについての詳細な説明は
こちらを参照してください。なお、Windows版Apacheを使用するならば、mpm_winnt
がデフォルトになります。
◎MPMのオプション
|
--with-mpm=prework |
安定性や古いソフトウェアとの互換性を保ちたい場合に指定します。MPMオプションを指定しない場合はデフォルトで、prework
になります。Apache 1.3 互換で、従来からのプロセスのみ使用し、スレッドは使いません。
|
|
--with-mpm=worker
|
マルチスレッドとマルチプロセスのハイブリッド型サーバを
実装します。ThreadsPerChild と MaxClients ディレクティブで効力を発揮します。
|
|
--with-mpm=perchild |
perchild は、VirtualHost を使用する際に効果的なMPMです。<IfModule
perchild.c>~</IfModule>で、バーチャルホストごとに独立した動作環境を構築することができるようになります。
|
|
■httpd.conf の編集
デフォルトでインストールした場合は、/usr/local/apache2/conf にhttpd.conf
インストールされます。まず、最低限の動作ができるように設定を変更していきます。
# vi /usr/local/apache2/conf/httpd.conf |
|
ListenでApacheが使用するポート番号を指定します。通常は変更する必要はありませんが、筆者の場合、Windows
上でもApache を動作させているため、ここでは8080を指定しました。squid の起動ポート番号を3128
番から8080 番に変更した方は、squid と重複しないポート番号を指定するようにしてください。
ServerAdminディレクティブは、クライアントからのリクエストに対してエラーメッセージを返す際に表示される管理人のメールアドレスを正しく記述します。通常は、root
や webmaster などを記述しておき、メールサーバーのalias 機能を使用して、実際にメールを受け取る人に配送されるようにしておきます。
ServerAdmin root@kororo.jp |
|
ServerNameでは、サーバーのホスト名を記述します。ここでは、ローカルホストを記述します。
ServerName 127.0.0.1:8080 |
|
ドキュメントルートの設定を行います。ドキュメントルートとは、ホームページのコンテンツを格納するトップの階層のことで、ここで指定した場所に
index.html や画像などを置きます。各自変更する必要があれば変更してください。ここでは、/home/kororo/public_html
をドキュメントルートとして指定します。
DocumentRoot "/home/kororo/public_html" |
|
■文字化けを回避する
AddDefaultCharsetの部分をコメントアウトして無効にするか、off に指定しておきます。このディレクティブが有効になっているとデフォルトの文字コードが
ISO-8859-1 となるため、文字化けが発生します。
#AddDefaultCharset
ISO-8859-1 |
|
直接、文字化けには結びつきませんが、デフォルトの使用言語の優先度も変更しておいた方が無難です。Language
Priorityでは、言語の優先度を変更することができます。ここでは、日本語である ja を先頭にし、日本語を最優先にします。
LanguagePriority
ja en ca cs da de el eo es et fr he hr it
ko ltz nl nn no pl pt pt-BR ru sv zh-CN
zh-TW |
|
以上で最低限、動作する設定は完了です。より詳しく設定を行い方は、
httpd.conf
の設定を参照してください。
■Apache2の再起動
再起動の前にコンフィグレーションテストを実行してみます。エラーが表示されなければApache2を起動してください。
# /usr/local/apache2/bin/apachectl
configtest
Syntax OK |
|
/usr/local/apache2/bin/apachectl
start |
|
再起動したら、クライアントマシンから 「http://172.16.50.2」のようにしてアクセスしてみましょう。Apacehのテストページが表示されるはずです。 lynx
がインストールされていれば、ローカルホストにアクセスするとテストページが表示されます。クライアントマシンから確認した場合は、お決まりの
こちらのようなページが表示されます。
$ lynx http://127.0.0.1:8080 |
|
■Apacheの自動起動設定
最後にシステム起動時にApacheが自動で起動するように /etc/rc.d/init.d に以下の自動起動スクリプトを保存し、実行権限を付与します。
# chmod 755 /etc/rc.d/init.d/httpd
# chkconfig --add httpd
# chkconfig --list httpd
httpd 0:オフ 1:オフ 2:オフ 3:オン 4:オフ 5:オン
6:オフ |
|
#
#!/bin/bash
#
# Startup script for Apache Web Server
#
# chkconfig: 345 85 15
# description: Apache is a World Wide Web
server. It is used to serve \
# HTML files and CGI.
# processname: httpd
# pidfile: /var/run/httpd.pid
# config: /usr/local/apache2/conf/httpd.conf
# See how we were called.
case "$1" in
start)
/usr/local/apache2/bin/apachectl start
;;
stop)
/usr/local/apache2/bin/apachectl stop
;;
status)
/usr/local/apache2/bin/apachectl status
;;
restart)
/usr/local/apache2/bin/apachectl restart
;;
graceful)
/usr/local/apache2/bin/apachectl graceful
;;
*)
echo "Usage: $0 {start|stop|restart|graceful|status}"
exit 1
esac
exit 0
|
|
参考:
モジュール一覧
参考:
ディレクティブ一覧