httpd.conf のメインサーバー
※に関する主なディレクティブを次に挙げる。
子プロセスの動作権限を、ユーザー属性、グループ属性で指定する。
User UserID
- default : apache
- 子プロセスのユーザー属性を、その名称または番号で指定する。
Group GroupID
- default : apache
- 子プロセスのグループ属性を、その名称または番号で指定する。
エラー メッセージに含めるメールアドレスを指定する。
ServerAdmin e-mail_address
- default : root@localhost
- Internal Server Error 等の表示の際、問い合わせ用のメール アドレスとして使用される。
サーバーが自分自身を示すホスト名とポート番号を設定する。
ServerName HostName[:port]
- default : new.host.name:80
- HostName は FQDN 形式で記述する。
- HostName はリダイレクトする URL を生成する際のホスト名として使用される。
- 実際のマシン名と異なる設定が可能。
例えばマシン名が es3.project.ed.jp で web サーバー名をエイリアスで www.project.ed.jp としている時は次のように設定する。
- ServerName ディレクティブで HostName が指定されていないときは、サーバーは IP アドレスから逆引きを行なうことでホスト名を検索する。
- ポート番号を指定しない場合は、リクエストが到着しているポート番号が使用される。
- 名前ベースのバーチャルホストを運用する場合は、<VirtualHost> セクション内に
ServerName ディレクティブを設定して、当該バーチャルホストのホスト名 (FQDN) を指定する。
httpd によるファイルの提供元となるディレクトリを指定する。
DocumentRoot directory
- default : "/var/www/html"
- directory には、ServerName ディレクティブで指定したホスト名へのリクエストに対して、具体的に参照するディレクトリを指定する。
- Alias, VirtualHost などのディレクティブがマッチしない限り、サーバーは要求された URL から DocumentRoot 設定値を参照してパスに変換し、ドキュメントへのパスを作成する。
- リクエストされた URL がユーザーのホームディレクトリの場合は、UserDir ディレクティブが参照される。
ユーザーのドキュメントへリクエストがあった場合、参照の起点となる (ユーザーのホームディレクトリ内の) ディレクトリ名を指定する。
UserDir directory
- default : disabled
ユーザーの web ページも参照可能とするのであれば、一般的な public_html を推奨する。
- directory は次のいずれかのパターンを指定する。
- disabled
enabled で明示的に指定されたユーザー (UserList) を除いて、ユーザー名からディレクトリ名への変換を off にする。
- disabled UserList
UserList に載ったユーザーに対し、それが enabled の UserList でリスティングされたユーザーであってもディレクトリ名への変換を行わない。
- enebled UserList
UserList に載ったユーザーに対し、変換 off のグローバル設定 (disabled) がされている場合でもディレクトリ名への変換が行われる。
ただしそのユーザー名が、disabled の UserList にリスティングされている場合は変換されない。
- ディレクトリ名
enabled, disabled どちらのキーワードも記載がない場合は、引数はファイル名パターンとして扱われ、ディレクトリ名への変換時に使用される。
http://www.project.ed.jp/~client/subdir/test.html へのリクエストは次のように変換される。
ディレクティブの設定 | | 参照されるファイル |
UserDir public_html | → | /home/client/public_html/subdir/test.html |
UserDir /usr/web | → | /usr/web/client/subdir/test.html |
UserDir /home/*/www | → | /home/client/www/subdir/test.html |
- UserDir ディレクティブを未設定とした場合、デフォルトで public_html が設定される。
ファイル名を指定しないリクエストに対して、検索対象となるリソースのリストを設定する。
DirectoryIndex Local_URL_List
- default : index.html
- Local_URL_List には、リクエストされたディレクトリに対する相対パスを指定する。
- 次のように指定した場合、ファイル名の無い (ディレクトリ名までの) リクエストに対して index.html, index.htm, /cgi-bin/index.cgi の順に検索する。
- 指定されたリソースが存在しない時の動作は次の通り。
- Options Indexes が設定されている場合 : ファイル名一覧を返す。
- Options Indexes が設定されていない場合 : エラーを返す。
web サーバーで発生したエラーを記録するファイル名を指定する。
ErrorLog filename|syslog[:facility]
- default : logs/error_log
- filename
エラー記録用のファイル名を指定する。
filename の先頭がスラッシュ (/) でない場合は ServerRoot からの相対パスとして認識され、スラッシュの場合は絶対パスとして認識される。
- syslog
syslogd(8)を利用してログを生成できる。
この時 httpd のエラーログはシステムログとして /var/log/messages に記録される。
ただし、システムが syslog をサポートしている必要がある。
アクセスログの記録形式を定義する。
LogFormat format [nickname]
アクセスログを収集するファイル名と記録形式を指定する。
CustomLog filename|pipe format|nickname
- default : logs/access_log combined
- filename|pipe
アクセスログを記録するファイル名を、filenameで指定、もしくはログ情報を受け取るプログラムを pipe で指定する。
- filename の先頭がスラッシュ (/) でない場合は、ServerRoot からの相対パスとして認識され、スラッシュの場合は絶対パスとして認識される。
- pipe の記述は、先頭にパイプ文字 "|" を付加したプログラム名で、"|プログラム名" となる。
- format|nickname
記録形式を format で指定、もしくは LogFormat ディレクティブで定義した、記録形式の nickname を指定する。
- httpd.conf のデフォルト設定は、
となっている。 これは次の記述と同じ効果となる。
アクセスログを収集するファイル名を指定する。
TransferLog filename|pipe
- default : ディレクティブの記述なし
- CustomLog を設定した場合は不要。
- ログの記録形式は、nickname を省略した LogFormat ディレクティブの format が適用される。
- filename | pipe
CustomLog ディレクティブの filename | pipe を参照。
- CustomLog ディレクティブ あるいは TransferLog ディレクティブのどちらかをセットしないと、アクセスログは記録されない。
- ユーザーのホームディレクトリへのアクセスログは、メインサーバーの設定に従う。
- バーチャルホスト設定時、<VirtualHost> ディレクティブ内に CustomLog ディレクティブまたは TransferLog ディレクティブを設定しない場合、メインサーバーの CustomLog ディレクティブや TransferLog ディレクティブの設定に従う。
エラー出力等の最下行に追加するフッタ (サーバーのバージョン、
ServerName、
ServerAdmin 等) を制御する。
ServerSignature On|Off|EMail
- default : On
- パラメータはそれぞれ次の動作指定となる。
- On
応答メッセージの最下行に、サーバーのバージョン、ServerName ディレクティブの設定値を追加する。
- Off
応答メッセージにフッタを追加しない。
- EMail
On 設定時と同様のフッタが追加され、フッタ中の ServerName ディレクティブ設定値 (ホスト名) に、ServerAdmin ディレクティブ設定値 (メールアドレス) 宛のリンク (mailto:)が設定される。
- web サーバーのアプリケーション名 (Apache) やバージョン情報が表示されてしまうので、セキュリティを考慮すると Off にすることが望ましい。