Wyvernの設定

Wyvern の設定は、 wyvern.confファイルに記述して行います。 デフォルトでは、 /usr/local/wyvern/conf/wyvern.conf にインストールされています。
configure コマンドに --prefix を 指定した場合は、 $(prefix)/conf/wyvern.conf にインストールされています。


Listen
起動アドレスとポート番号を指定します。
Listen 80ポート番号 80 で接続を待ちます
Listen 80:443 ポート番号 80 で通常の接続を待ち、443 で SSL 経由の接続を待ちます
Listen 192.168.1.1:80 IPアドレス 192.168.1.1 上のポート番号 80 で接続を待ちます
Listen 192.168.1.1:80:443 IPアドレス 192.168.1.1 において、ポート番号 80 で通常の接続を待ち、 443 で SSL 経由の接続を待ちます
Listen 192.168.1.1:0:443 IPアドレス 192.168.1.1 において、 443 で SSL 経由だけの接続を待ちます
MaxThread
クライアント要求を処理する疑似スレッドの最大数を設定します。
MaxRequest
サービス可能なクライアントからの最大接続要求数を設定します。
User
サーバを実行するユーザ名を設定します。
Group
サーバを実行するグループ名を設定します。
ServerRoot
サーバの実行ルートディレクトリ。設定ファイル(wyvern.conf)や、 各種ログファイルなどを置く起点ディレクトリです。
SecureLevel
セキュリティレベルを設定します。レベル0〜7まで存在し、 レベル0が一番脆弱でレベル7が最も安全です。 設定したレベルまでのすべての制約が適用されます。 デフォルトはレベル2です。
level0制限無し
level1root/wheel での起動を禁止します
level2 一時作業ディレクトリおよびログファイルの所有者とグループとパーミッションを User/Group で指定した値に変更します
level3 すべてのシンボリックリンクファイルへのアクセスを禁止します
level4 動的にページを作成するモジュールの使用を禁止します
level5 UserDir で指定したユーザページへのアクセスを禁止します
level6 全モジュールの使用を禁止します
level7 バーチャルホストの使用を禁止します
SecurityLog
セキュリティ関係のログを 収集するファイルのパス名を設定します。 "/" で始まる場合は絶対パスとみなされ、 それ以外は、ServerRootからの相対パスとなります。
PidFile
サーバのプロセス番号を保存するファイルパスを設定します。 "/" で始まる場合は絶対パスとみなされ、 それ以外は、ServerRootからの相対パスとなります。
ServerName
クライアントに返すサーバのホスト名を設定します。 必ず DNS に登録された名前を使用してください。
ServerAdmin
サーバ管理者の電子メールアドレスを設定します。
ErrorLog
サーバのエラーログのパスを設定します。 "/" で始まる場合は絶対パスとみなされ、 それ以外は、ServerRootからの相対パスとなります。 また、"|" で始まる場合は、コマンドへのパイプとなります。

  ErrorLog "|logger"(FreeBSDの場合)

は、syslog 経由でエラーログを出力します。
AccessLog
サーバへのアクセスログのパスを設定します。 "/" で始まる場合は絶対パスとみなされ、 それ以外は、ServerRootからの相対パスとなります。
Timeout
クライアント接続後の要求と応答に関するタイムアウトの最大値(秒)を設定します。 この値の間に処理が終了しない場合は、Request Timeout (408) エラーを返します。 CGI プログラムなどは強制終了させられます。
DocumentRoot
サーバホストのパブリックな HTML文書などを置く トップディレクトリの絶対パスを指定します。
UserDir
ユーザ個人のHTML文書用の ディレクトリ名を指定します。 ユーザのホームディレクトリに UserDir で指定したディレクトリを 作成することで、ユーザもウェブページを公開できます。
DirectoryIndexes
URL がディレクトリ名で 要求された場合にディレクトリに補完するデフォルトのファイル名を指定します。 「,」で区切ることで複数のファイル名を指定できます。 ただし、「,」の前後に空白を挿入してはダメです。
AutoIndexing
「on」にした場合、 mod_autoindex.so モジュールをロードしていて、かつ、 DirectoryIndexes で指定したファイルが存在しないときに、動的にページ作成を行います。
FollowSymLinks
シンボリックファイルを無条件にたどる場合は、「on」にします。 「off」の場合は、ServerRootDocumentRootUserDir ディレクトリ内のシンボリックリンクだけに制限されます。
DefaultType
判別不能ファイルのデフォルトのメディアタイプを指定します。
ErrorDocument
Client Error (4xx) と Server Error (5xx) のエラーメッセージをカスタマイズできます。
ErrorDocument 404 "見つからないよ〜" ファイルが見つからない場合のエラーメッセージとして、 「見つからないよ〜」とエラーページに出力します。
ErrorDocument 404 /error/missing.html ファイルが見つからない場合のエラーメッセージに "/error/missing.html" を使用します
ErrorDocument 404 "http://www.google.com/" ファイルが見つからない場合、 Google に直接リダイレクトさせます。

注意事項
エラードキュメントは、DocumentRoot からのパスとなります。 そのため、バーチャルホスト機能を用いた場合は、 各バーチャルホスト毎の DocumentRoot 以下に作成しなければなりません。

Redirect
指定したパスをリダイレクトします。
書式は Redirect "URL 上でのパス" "転送先 URL" です。

Example:
Redirect /bar http://elsewhere/foo/bar

Alias
指定したパスをサーバ内の絶対パスにマッピングします。
書式は Alias "URL 上でのパス" "サーバ内での絶対パス" です。
デフォルトでは、次の4つが記述されています。

Alias /icons/ /usr/local/wyvern/icons/
Alias /images/ /usr/local/wyvern/images/
Alias /style/ /usr/local/wyvern/style/
Alias /manual/ /usr/local/wyvern/manual/

ScriptAlias
指定したパスをサーバ内の CGI スクリプト用の絶対パスにマッピングします。
書式は ScriptAlias "URL 上でのパス" "サーバ内での絶対パス" です。
デフォルトでは、次のパスが記述されています。

ScriptAlias /cgi-bin/ /usr/local/wyvern/cgi-bin/

AddType
メディアタイプを指定します。
書式は AddType "メディアタイプ" "サフィックス" です。 インストール時の設定ファイルには次の5つが コメントアウトされ記述されています。

AddType application/x-httpd-cgi cgi
AddType text/x-server-parsed-html shtml
AddType "text/html; charset=ISO-2022-JP" html
AddType "text/html; charset=EUC-JP" html
AddType "text/html; charset=Shift_JIS" html

一番目の設定は、サフィックスが cgi のファイルは どこにあっても CGI コマンドとして実行されることを意味します。

二番目は、SSI を利用する場合のファイルのサフィックスです。 SSI モジュールのロード時に自動的に設定されます。

残りの三つは、ウェブサーバで提供する HTML テキストの文字セットを指定します。 それぞれ、JIS コード(ISO-2022-JP)、日本語 EUC コード(EUC-JP)、 シフト JIS コード(Shift_JIS)を表しています。 Netscape Navigator 4.x や Netscape Communicator 4.x では、 これらのいずれかを指定しないと、文字化けするとの情報があります。

Module
機能拡張用モジュールを指定します。 バージョン2.1では、次のモジュールが利用可能です。
Module modules/mod_md5.so レスポンスヘッダに Content-MD5 を追加するモジュール
Module modules/mod_log.so User-Agent と Referer も記録するログモジュール
Module modules/mod_access.so ホスト名あるいはIPアドレスでアクセス制御するためのモジュール
Module modules/mod_auth_db.so Berkeley-DB を使ったユーザ認証用モジュール
Module modules/mod_auth_dbm.so Unix-NDBM を使ったユーザ認証用モジュール
Module modules/mod_autoindex.so ディレクトリ一覧自動作成用モジュール
Module modules/mod_env.so CGI/SSI 用環境変数設定用モジュール
Module modules/mod_cgi.so CGIモジュール
Module modules/mod_ssi.so SSIモジュール(<!--exec #cgi="..."-->は未対応)
Module modules/mod_gzip.so クライアントの Accept-Encoding ヘッダに "gzip" が指定されていた場合に gzip で圧縮して応答するモジュール
<VirtualHost "ServerName">〜</VirtualHost>
HTTP/1.1 の Host フィールドを利用したホスト名ベースの仮想ホスト機能を設定します。 "ServerName",ServerAdmin および DocumentRoot は必須項目です。 ErrorLog と AccessLog を指定しない場合は、 バーチャルホストのログはサーバ本体で指定したログファイルに出力されます。
  <VirtualHost "ServerName">
    ServerAdmin  web-admin@virtual.domain
    DocumentRoot /virtual/path/here
    # 以下の項目はオプショナル
    ErrorLog logs/virtual-error_log
    AccessLog logs/virtual-access_log
    UserDir public_html
    DirectoryIndex index.html
    FollowSymLinks on
    DefaultType text/plain
    Alias /icons/ /virtual/path/icons/
    ScriptAlias /cgi-bin/ /virtual/path/cgi-bin/
  </VirtualHost>