まず、httpd.confの設定を行なう。httpd.confはサーバ設定の中核になるファイルである。ここで、Apacheの基本的な動作が決定される。詳しい説明は設定ファイル中に書かれているマニュアルやApache関係の本を参照。
●サーバのモードの選択。standaloneはサーバが起動されたままの状態で、クライアントのリクエストに対して、すぐ応答する。これは、通常運用時に指定。inetdはクライアントのリクエストごとにサーバが起動。これは、試験運用時に指定。今回はstandaloneに設定。
ServerType standalone
●ポートの指定。通常運用時は80を、試験運用時には8080を指定する。
Port 80
●クライアントのホスト名を利用するときにはonを指定する。
HostnameLookups on
●サーバはコピーを複数走らせて、クライアントのリクエストを処理する。ここでは各コピーのユーザとグループを指定。
User nobody Group nogroup
●サーバ管理者のメールアドレスを指定。
ServerAdmin red-admin@ep.sci.hokudai.ac.jp
●サーバインストールのトップディレクトリを指定。
ServerRoot /etc/apache
●サーバがクライアントのリクエストをきくアドレスを指定。
# BindAddress *
●モジュールの指定。
LoadModule env_module /usr/lib/apache/1.3/mod_env.so LoadModule config_log_module /usr/lib/apache/1.3/mod_log_config.so LoadModule rewrite_module /usr/lib/apache/1.3/mod_rewrite.so # LoadModule mime_magic_module /usr/lib/apache/1.3/mod_mime_magic.so LoadModule mime_module /usr/lib/apache/1.3/mod_mime.so LoadModule negotiation_module /usr/lib/apache/1.3/mod_negotiation.so # LoadModule status_module /usr/lib/apache/1.3/mod_status.so # LoadModule info_module /usr/lib/apache/1.3/mod_info.so LoadModule includes_module /usr/lib/apache/1.3/mod_include.so LoadModule autoindex_module /usr/lib/apache/1.3/mod_autoindex.so LoadModule dir_module /usr/lib/apache/1.3/mod_dir.so LoadModule cgi_module /usr/lib/apache/1.3/mod_cgi.so # LoadModule asis_module /usr/lib/apache/1.3/mod_asis.so # LoadModule imap_module /usr/lib/apache/1.3/mod_imap.so # LoadModule action_module /usr/lib/apache/1.3/mod_actions.so # LoadModule speling_module /usr/lib/apache/1.3/mod_speling.so LoadModule userdir_module /usr/lib/apache/1.3/mod_userdir.so # LoadModule proxy_module /usr/lib/apache/1.3/libproxy.so LoadModule alias_module /usr/lib/apache/1.3/mod_alias.so LoadModule access_module /usr/lib/apache/1.3/mod_access.so LoadModule auth_module /usr/lib/apache/1.3/mod_auth.so # LoadModule anon_auth_module /usr/lib/apache/1.3/mod_auth_anon.so # LoadModule dbm_auth_module /usr/lib/apache/1.3/mod_auth_dbm.so # LoadModule db_auth_module /usr/lib/apache/1.3/mod_auth_db.so # LoadModule digest_module /usr/lib/apache/1.3/mod_digest.so # LoadModule cern_meta_module /usr/lib/apache/1.3/mod_cern_meta.so LoadModule expires_module /usr/lib/apache/1.3/mod_expires.so # LoadModule headers_module /usr/lib/apache/1.3/mod_headers.so # LoadModule usertrack_module /usr/lib/apache/1.3/mod_usertrack.so LoadModule unique_id_module /usr/lib/apache/1.3/mod_unique_id.so LoadModule setenvif_module /usr/lib/apache/1.3/mod_setenvif.so # LoadModule throttle_module /usr/lib/apache/1.3/mod_throttle.so
●エラーログが書かれるディレクトリとそのファイルを指定。
ErrorLog /var/log/apache/error.log
●エラーログのメッセージの重要度。
LogLevel warn
●ログファイルの記録形式を設定。
LogFormat "%h %l %u %t \"%r\" %>s %b \"%{Referer}i\" \"%{User-Agent}i\" %T %v" full LogFormat "%h %l %u %t \"%r\" %>s %b \"%{Referer}i\" \"%{User-Agent}i\"" combined LogFormat "%h %l %u %t \"%r\" %>s %b" common LogFormat "%{Referer}i -> %U" referer LogFormat "%{User-agent}i" agent
●アクセスログファイルの位置。
CustomLog /var/log/apache/access.log common
●agentやrefererのログファイルをもちたい場合に指定。
# CustomLog logs/referer_log referer # CustomLog logs/agent_log agent
●アクセスやagent,refererのログファイル一つで利用したい場合に指定。
# CustomLog logs/access_log combined
●親プロセスになったサーバのプロセスIDが書かれるディレクトリとそのファイルを指定。
PidFile /var/run/apache.pid
●ApacheがUSE_FCNTL_SERIALIZED_ACCEPTやUSE_FLOCK_SERIALIZED_ACCEPTとコンパイルしたいときに使われるロックファイルを指定。
LockFile /var/run/apache.lock
●サーバのホスト名を指定。
# ServerName red.ep.sci.hokudai.ac.jp
●Apacheが自己参照URLをつくるのに必要なときいつでも"canonical" nameをつくるためにサーバネームやポートを使う。
UseCanonicalName on
●Apacheのキャッシュ機能。
# CacheNegotiatedDocs
●指定した秒数にわたって、クライアントのパケットが受信しないとき、サーバは接続を断つ。
Timeout 300
●onの指定の場合、サーバは接続のリクエストをKeepAliveTimeoutの秒数だけ待つ。MaxKeepAliveRequestsはリクエスト数の上限を示す。
KeepAlive On MaxKeepAliveRequests 100 KeepAliveTimeout 15
●サーバ起動時の子プロセスサーバの数をStartServers指定。MinSpareServersとMaxSpareServersで最小数と最大数を指定。
MinSpareServers 5 MaxSpareServers 10 StartServers 5
●サーバに対する接続数の最大値。
MaxClients 150
●各子プロセスのサーバに許容されるリクエストの上限を指定。
MaxRequestsPerChild 30
●bindと同様。しかし、:の次にポートを指定できる。
# Listen 3000 # Listen 12.34.56.78:80
●仮想ホスト機能をサポート。
#< VirtualHost host.some_domain.com6> # ServerAdmin webmaster@host.some_domain.com # DocumentRoot /var/www/host.some_domain.com # ServerName host.some_domain.com # ErrorLog /var/log/apache/host.some_domain.com-error.log # TransferLog /var/log/apache/host.some_domain.com-access.log #< /VirtualHost>このページのトップへ