ここでは、Apache の設定ファイルであるhttpd.conf
について解説していきます。行数にして1000行以上ありますが、実際に設定すべき箇所はそれほど多くはありません。けれども、設定しておくと便利なものもたくさんあるので、大まかについて簡単に知っておいた方がいいでしょう。ここでは、それぞれのディレクティブに対して、深く掘り下げては説明しませんが、大まかな概要について説明してありますので是非、参考にしてみてください。
|
|
■Section 1: Global Environment
Global Environment は、Apache 全体に影響を与えるセクションです。
ServerRoot は、Apache をインストールした場所のパスが指定されており、このディレクトリ以下に
conf や logs などのサブディレクトリが格納されます。以降で出現するディレクティブの多くは、このServerRoot
からの相対パスで記述されている事が多いため、通常は、デフォルトのままにして置いてください。
ServerRoot "/usr/local/apache2" |
|
Timeout は、クライアントからの接続要求を受け取ってからタイムアウトになるまでの時間を秒単位で指定します。デフォルトでは、300秒が指定されており、これはたいていのシチュエーションにおいて必要十分な値なので特に変更する必要はありません。ここで設定した時間を過ぎてもパケットが送信されない場合、ブラウザはエラーメッセージを返します。因みに、Apache1.2以前はデフォルトで1200秒が指定されていました。
KeepAlive は、クライアントからの接続要求を受け取った際に、すぐにはHTTPセッションを閉じずに、ある一定の時間までは継続してセッションを保っておく機能です。これは、クライアントからの接続要求があった場合に、クライアントは通常、リンクを辿って他のページを見にいこうとするため、ある一定期間はセッションを保っておこうというものです。当然、有効にしておく事でパフォーマンスの向上に繋がります。
なお、その一定期間の間、セッションを保っておく時間を指定するディレクティブが、
KeepAliveTimeout
で、デフォルトでは15秒に設定されています。要するに、クライアントからの接続要求後、15秒経経過しても再接続要求がない場合は、Apache
はセッションを切断します。
MaxKeepAliveRequests は、KeepAlive がOn の時に、接続要求を受け付ける最大許容値を指定します。この値を考慮するには、1ページあたりのファイル数+アルファを考慮しておかなければなりません(画像なども接続要求に含まれるため)。Apache
のドキュメントを読む限りは、この値を高い値に設定しておく事が推奨されています。なお、値を「0」に設定すると無制限になります。
KeepAlive On
KeepAliveTimeout 15
MaxKeepAliveRequests 100 |
|
1.3から2.0のバージョンアップにより、BindAddress ディレクティブと Port ディレクティブは削除され、より柔軟なListen
ディレクティブに置き換わりました。Listen が設定ファイルになければ、サーバは起動に失敗してしまいますので注意してください。
Listen ディレクティブでは、特定の IP アドレスやポート番号だけを listen することができるので複数のポート番号を指定したり、IPアドレスとポート番号共に指定する事で、
サーバは指定されたポートとインターフェースに対して listen させることができます。なお、VirtualHostを実装する場合は、ここで指定した以外のポート番号は使用する事ができません。あくまで、Listenディレクテイブで指定した範囲内で<VirtualHost>に指定するようにしてください。
◎例1
◎例2
Listen 172.16.50.2:80
Listen 172.16.50.3:8080 |
|
■Section 2: 'Main' server configuration
サーバを実行するためのユーザーとグループを指定します。ここで指定するユーザーとグループに、nobodyを設定する方も多いと思いますが、特定の新しいユーザとグループを作成して、設定する事が推奨されています。その理由として、nobody
ユーザがシステムで 他の役割を担っている可能性もありますので、なんでもかんでも nobody に設定してしまうと今度は逆にnobody
ユーザーが乗っ取られたときの危険性も高くなります。なので、できる限り、専用のユーザーで実行した方が好ましいといえます。
ServerAdmin では、サーバーがエラードキュメントを返す際などに表示される管理者のメールアドレスを指定しておきます。
ServerAdmin root@kororo.jp |
|
ServerName は、サーバ自身が使用するサーバ名とポート番号を指定します。このディレクティブは、Apache2からはデフォルトでコメントアウトされており、BIND
でサーバー名が自動取得できるようになっていれば指定する必要はありませんが、起動時の問題を避けるためにも明示的に指定しておく事が推奨されています。
ServerName linux.kororo.jp:80 |
|
UseCanonicalName では、Apache 自身が自己参照のURLをどのように決定するかを指定します。On
の場合は、ServerName で指定したポート番号とホスト名をクライアントに返します。Off の場合は、クライアントから提供されたホスト名やポート番号をそのまま使用して返します。この他にも、
DNS
を指定する事もできますが、これはIPベースのバーチャルホストで使われる事を想定しており、Hostヘッダーをつけないクライアントをサポートします。基本的には、On
で構わないと思いますが(Apache1.3x ではデフォルトOn だったはず…)、認証を有効にしている場合は、クライアントに対して2度認証を行わせなければならないようです。この辺りは筆者も微妙に理解不足なので、
マニュアルの方も併せて参照してください。
もう説明するまでもないと思いますが、ドキュメントルートを指定します。ここで指定したパスにHTMLドキュメント等を置いておきます。基本的には、ここで指定したパスより上位の階層へはアクセスする事ができませんが、SymbolicLink
やalias を使用すれば、他の階層のディレクトリへアクセスさせる事も可能です。
DocumentRoot "/home/kororo/public_html" |
|
<Directory /> では、サーバルートディレクトリに対する設定を行っています。これは、これより下の行で出てくる<Directory>(ドキュメントルートディレクトリ)とは別のものなので区別するようにしてください。デフォルトでは、シンボリックリンクのみ許可するようになっています。特に設定を変更する必要はないでしょう。
<Directory />
Options FollowSymLinks
AllowOverride
None
</Directory> |
|
2度目に出てくる<Directory>では、ドキュメントルートを指定します。これは、上の行で出てきたDocumentRoot
と同じディレクトリを指定しておきます。なお、この<Directory>内で指定する設定に関しては非常に重要なので
<Directory "/home/kororo/public_html">
Options FollowSymLinks
AllowOverride
All
Order allow,deny
Allow from
all
</Directory> |
|
Multiviews を有効にしておくことで、曖昧なURLを指定した場合でも、クライアントに対して最適な値を検索して返す事ができるようになります。具体的に説明すると、仮にホームディレクトリ内にtest.php
がある場合に、http://linux.kororo.jp/test とブラウザに入力すると、そのようなファイルがないため通常は「ページが表示されません」というエラーが返されますが、Multiviewsが有効になっていると、自動的にtest.*
で始まる全てのファイルを検索し、結果としてtest.php をクライアントに返します。ひとつ注意点としては、
Options
All を指定したとしても、Multiviews は有効にはなりません。必ず、明示的に記述しておく必要があります。
ユーザーにホームページスペースを提供する場合などに指定するのが、
UserDir ディレクティブです。デフォルトでは、public_html
になっています。この指定により、ユーザーのWebサイトのURL は、http://linux.kororo.jp/~kororoという形式になり、実際にコンテンツを置く場所は、/home/kororo/public_html
になります。
ユーザーディレクトリの詳細な設定は、すぐ下に記述されている、
<Directory /home/*/public_html>
中略
</Directory> |
|
の間で指定します。サンプルで用意されているものは、読み取り専用サイトの例を表しています。必要に応じてコメントを削除し、サイトを提供するルールに従って変更してください。
ユーザー用のディレクトリを提供するには、ユーザーのディレクトリである /home/kororo と初期ディレクトリの
piblic_html のパーミッションを変更する必要があります。デフォルトの状態では、ホームディレクトリのパーミッションは、700(rwx------)になっており、他のユーザーには実行権限が付与されていないのでホームページを閲覧することができません。まず、ホームディレクトリのパーミッションを以下のようにして変更します。
同様にして、public_html にも実行権限、参照権限を与えます。デフォルトでは、public_html
のディレクトリは存在しないので新規に作成します。パーミッションが755 になっていなければ、chmod
コマンドで 755 に変更してください。
$ mkdir /home/kororo/public_html
$ chmod 755 /home/kororo/public_html
$ ls -l /home/kororo
合計 4
drwxr-xr-x 2 kororo kororo 4096 12月 28 17:00
public_html |
|
この時、注意しておきたいのは、public_html ディレクトリをroot として作成した場合は、所有者がroot
となっているので、ユーザーkororo はアップロードする事ができません。必ず、以下のようにしてroot
権限でディレクトリの所有者を変更しておきましょう。
# chown kororo.kororo
/home/kororo/public_html |
|
DirectoryIndex は、スラッシュ「/」で終わるURLを指定した際に、デフォルトで表示するファイルを指定するもので、一般的には、index.html
や index.php などを指定しておきます。例えば、http://linux.kororo.jp/ をブラウザで入力した場合、ドキュメントルート最上層にindex.html
が用意されていればそのファイルが表示されます。もしも、DirectoryIndex で指定したファイルが存在しない場合は、サーバーは、404ステータスコードを返し、ページが見つからない旨をクライアントに伝えます。これは、トップページ限らず、例えば、http://linux.kororo.jp/photo/
などを指定した場合にも、index.html が用意されていればページが表示されるし、用意されていなければ、404ステータスコード、もしくは403ステータスコード(Forbidden)を返すようになります。
DirectoryIndex index.html
index.php |
|
AccessFileName は、アクセス制御を行うためのファイルを指定します。.htaccess
はディレクトリごとのアクセス制御をかけるためのファイルのことで、通常はドット「. 」で始まるファイル名を指定し、慣例的には.htaccess
がよく使われています。.htaccess の使い方はここでは詳しく説明しませんが、このファイルをアクセス制限をかけたいディレクトリ内に置いておく事でそのディレクトリに対して認証が行われます。そして、認証をパスしたものだけが、そのディレクトリにアクセスできるようになります。なお、デフォルトでは、.htaccess
を使用した認証を行う事はできないようになっており、有効にするには、
AllowOverrideの値を
All
もしくは、
AuthConfig に設定しておく必要があるので注意してください。
<Files ~ "^\.ht"> 内では、ブラウザからは
.ht で始まるファイル名はアクセスできないように設定しておきます。.htaccess に誰でもブラウザからアクセスできたのでは、その中身を見られてしまうことになるので、このディレクティブは非常に重要な役割を果たしています。
AccessFileName .htaccess
<Files ~ "^\.ht">
Order allow,deny
Deny from all
</Files> |
|
TypesConfig は、MIME タイプ設定ファイルの位置を設定し、ServerRoot
からの相対パスで記述されています。このファイルはファイルの拡張子からコンテントタイプへの デフォルトのマッピングを設定します。/usr/local/apache2/conf/mime.types
を閲覧すれば、どのようなタイプの拡張子が既に登録済みなのかを確認する事ができます。
TypesConfig conf/mime.types |
|
上記のMIME タイプファイル に記述されていないマッピングを追加するためには、
AddType
ディレクティブを使用して上書きをするという方法をとります。なお、mime.types に直接記述したり、あるいは、.htaccess
を設置し、そこにMIMEタイプの記述をするという方法も考えられます。例えば、着メロの拡張子である.mmf
を追加したい場合、以下のようにする事で実現できます。
AddType application/x-smaf
mmf |
|
DefaultType は、MIMEタイプファイルに記述がなかった場合の扱いを指定し、デフォルトでは、text/plain
(テキストファイル)が指定されています。
<IfModule mod_mime_magic.c>では、mod_mine_magic.c
モジュールが組み込まれているかどうか確認し、もし組み込まれていれば、ファイル内容から様々な手がかりを探り出しMIMEタイプを決定できるようにしてくれます。mod_mimeは、リクエストされたファイルの拡張子と振る舞い、内容(MIME
タイプ、言語、文字セット、エンコーディング) とを関連付けるモジュールです。例えば、".gif"
が MIME タイプ image/gif にマップされ、".html" が MIME
タイプ text/html にマップされる場合は、ファイル index.gif.html は MIME
タイプ "text/html" に関連付けられます。これは、同じメタ情報にマップされる拡張子が複数あるときには、
右側にあるものが使用されるためです。
<IfModule mod_mime_magic.c>
MIMEMagicFile
conf/magic
</IfModule> |
|
HostnameLookups は、IPアドレスをホスト名に変換し(逆引き)、ログに記録する機能を提供します。Onにするとパフォーマンスが低下するため、通常はOff
に設定しておき、必要に応じてOn に切り替えるなどしたほうが良いでしょう。また、使う機会はあまりないと思いますが、逆引きを行うのであれば、Apache
に付属の
logresolve を使用する事もできます。
ServerTokens は、HTTPレスポンスヘッダーの値を返し、その中に含まれるサーバーOS
に関する情報、コンパイルされたモジュールなどの情報などを返します。これらの情報を相手に提供するのは決して好ましいとはいえないので、コメントアウトして無効にするか、最低限の情報しか表示させないようにします。ServerTokens
には、いくつかのレベルを設定する事ができ、デフォルトでは
Full に設定されています。最も少ない情報を提供するためには、
Prod
を指定します。以下は、筆者の環境下で試した結果です。
ServerTokens Full
Apache/2.0.48 (Unix) mod_ssl/2.0.48 OpenSSL/0.9.7c DAV/2
PHP/4.3.4 Server at ns Port 80
ServerTokens OS
Apache/2.0.48 (Unix) Server at ns Port 80
ServerTokens Min[imal]
Apache/2.0.48 Server at ns Port 80
ServerTokens Minor
Apache/2.0 Server at ns Port 80
ServerTokens Major
Apache/2 Server at ns Port 80
ServerTokens Prod[uctOnly]
Apache Server at ns Port 80
ServerSignature は、エラーメッセージなどをクライアントに返す際のフッターラインを表示させるかどうかを指定するディレクティブです。これらの情報を隠蔽するには、値をOff
にしておきます。なお、On と Off の他にも、
EMail という値も指定する事ができ、上記のServerTokensの例で言うと、ns
と表示されているところにリンクが貼られるようになります(
mailto:)。
Alias /icons/ は、アイコンが格納されているディレクトリです。
FancyIndexing
を使わないのなら不要なので全てコメントアウトしておきます。Alias とは、ドキュメントルート以外の場所にファイルを保管することを可能にします。この時、注意したいのは、Alias
/icons/ とAlias /icon では、異なる意味を示しています。/icons/ のようにスラッシュが入った場合は、/icons
というURL自体はエイリアスされません。詳しくは、Apacheの
マニュアルを参照してください。
#Alias /icons/ "/usr/local/apache2/icons/"
#
#<Directory "/usr/local/apache2/icons">
# Options Indexes MultiViews
# AllowOverride None
# Order allow,deny
# Allow from all
#</Directory> |
|
AliasMatch は、上記で説明したAlias ディレクティブと同様の役割をしますが、簡単な先頭からのマッチを行なうのではなく、
標準正規表現を利用します。ここでは、マニュアルが格納されているディレクトリへのエイリアスをしており、マニュアルは必要ないため、マニュアルに関するディレクティブを全行コメントアウトしておきます。
# AliasMatch ^/manual(?:/(?:de|en|fr|ja|ko|ru))?(/.*)?$
"/usr/local/apache2/manual$1"
#<Directory "/usr/local/apache2/manual">
# Options Indexes
# AllowOverride None
# Order allow,deny
# Allow from all
#
# <Files *.html>
# SetHandler type-map
# </Files>
#
# SetEnvIf Request_URI ^/manual/de/ prefer-language=de
# SetEnvIf Request_URI ^/manual/en/ prefer-language=en
# SetEnvIf Request_URI ^/manual/fr/ prefer-language=fr
# SetEnvIf Request_URI ^/manual/ja/ prefer-language=ja
# SetEnvIf Request_URI ^/manual/ko/ prefer-language=ko
# SetEnvIf Request_URI ^/manual/ru/ prefer-language=ru
# RedirectMatch 301 ^/manual(?:/(de|en|fr|ja|ko|ru)){2,}(/.*)?$
/manual/$1$2
#</Directory> |
|
ScriptAlias /cgi-bin/ は、CGIスクリプトへのエイリアスを行っており、2番目の引数にCGIスクリプトが格納されているローカルファイルパスを指定しておきます。バーチャルホストを構築している場合、<VirtualHost>ディレクティブ内にScriptAlias
ディレクティブがない場合、デフォルトでここで指定したパスを見に行きます。逆に言えば、バーチャルホストごとにcgi-bin
ディレクトリの位置を変更したい場合は、各VirtualHostディレクティブ内でScriptAlias
ディレクティブを記述しておく必要があります。
ScriptAlias /cgi-bin/
"/home/kororo/public_html/cgi-bin"
<Directory "/home/kororo/public_html/cgi-bin">
AllowOverride
None
Options None
Order allow,deny
Allow from
all
</Directory> |
|
なお、上記で指定したScriptAlias はあくまでCGIスクリプトの場所をApache に教えているだけなので、実際にCGIスクリプトを使えるようにするには、
AddHandlerディレクティブが有効になっている必要があります。AddHandler
は、ファイル名の拡張子を指定されたハンドラにマップする役割を持っており、以下のように記述しておく事で、拡張子
".cgi" で終わるファイルをCGI スクリプトとして処理するこができるようになります。
AddHandler cgi-script
.cgi |
|
cgi-bin ディレクトリ内にgif やjpg などが格納されたディレクトリがあり、そこから画像などを読み込む場合、Apacheはそれらの画像ファイルをスクリプトとしてみなしてしまうため、サーバーエラーが発生します。これを回避するためには、<Direcotry>コンテナ内に、以下のようにAddHandler指示子を追加してあげる必要があります。
ScriptAlias /cgi-bin/
"/home/kororo/public_html/cgi-bin"
<Directory "/home/kororo/public_html/cgi-bin">
AllowOverride
None
Options None
Order allow,deny
Allow from
all
AddHandler text/html .html
AddHandler text/css .css
AddHandler image/gif .gif
AddHandler image/jpg .jpg
</Directory> |
|
Redirect は、URLの転送(リダイレクション)を行うディレクティブです。サーバーを移転する際や、URLを変更したい場合などに、簡単に古いURLから新しいURLへと転送させることができるようになります。この処理は一瞬で行われるため、クライアントにリダイレクトの処理が行われた事を意識させることなく、新URLへ転送させることが可能になります。記述例は以下のようになります。この時注意したいのは、新しいURLとして指定する2番目の引数は必ず、絶対パスで記述しなくてはならないということです。以下の例で説明すると、http://linux.kororo.jp/
は、http://new.kororo.jp へリダイレクトされます。
Redirect / http://new.kororo.jp/ |
|
Redirect には、以下の4つのオプションを付け加える事ができます。
Redirect permanent
永久にリダイレクトをするステータス (301) を返します。リソースが永久に移動した場合に使用します。
Redirect temp
一時的なリダイレクトステータス (302) を返します。
Redirect seeother
"See Other" ステータス (303) を返します。リソースが他のもので置き換えられた場合に使用します。
Redirect gone
"Gone" ステータス (410) を返します。リソースが永久に 削除された場合に使用します。引数は省略しなければなりません。
IndexOptions は、ディレクトリインデックスの様々な挙動を指定するディレクティブです。デフォルトで記述されている
FancyIndexing
は、飾り付きインデックスをオンにします。
VersionSort は、バージョン番号を含んだファイルが
自然な方法でソートされるようにします。仮にfoo-1.7とfoo-1.7.2 とfoo-1.8というファイルがあった場合に、バージョン番号の低いものから順に上からソートされます。IndexOptions
には、様々なオプションがあり、ここでは敢えて説明を割愛させていただきます。詳しく知りたい方は、Apache
の
ドキュメントを参照してください。
IndexOptions FancyIndexing
VersionSort |
|
AddIconByTypeは、FancyIndexing において、ファイルの左側に表示するアイコンを設定します。パスは相対パスを指定しておきます。ディレクトリインデックスを行わない場合は不要となりますので必要に応じてコメントアウトしても構わないでしょう。以下に記述されている
AddIconディレクティブも同様です。
AddIconByType (TXT,/icons/text.gif)
text/*
AddIconByType (IMG,/icons/image2.gif) image/*
AddIconByType (SND,/icons/sound2.gif) audio/*
AddIconByType (VID,/icons/movie.gif) video/* |
|
DefaultIcon は、FancyIndexing において、特定のアイコンがない場合にファイルに表示するアイコンを設定します。これも、ディレクトリインデックスを使わないのなら不要です。
DefaultIcon /icons/unknown.gif |
|
ReadmeName と
HeaderName は、ディレクトリインデックスを使用している場合に表示されるフッターとヘッダーファイルを指定します。ディレクトリインデックスを使用しない場合は、不要なのでコメントアウトしておきます。
# ReadmeName README.html
# HeaderName HEADER.html |
|
IndexIgnore は、ディレクトリインデックスを行う場合に、無視するファイルを指定します(インデックス一覧に表示されないファイル名を指定する)。引数には、無視したい拡張子やファイル名の一部、ワイルドカード表現か完全なファイル名を指定しておきます。ディレクトリインデックスを行わない場合は不要です。
LanguagePriority は、使用する言語の優先順位を指定します。ここでは、日本を表す
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 |
|
ForceLanguagePriority は、 要求に合うドキュメントを一つだけ返すことができないときに、
LanguagePriority ディレクティブを使ってネゴシエーションの結果を返します。デフォルトでは、Prefer
と Fallback が指定されていますが、特に変更する必要はありません。Prefer は、クライアントの
Accept-Language ヘッダをみて、それが同等の優先順位であった場合などには、LanguagePriority
で指定された順に送られます。Fallback は、クライアントのAccept-LanguageからLanguagePriority
で指定された許容言語が見つからなかった場合に、LanguagePriorityで指定された最初のものから順番に送られるという指定になります。
ForceLanguagePriority
Prefer Fallback |
|
AddDefaultCharset は、明示的に指定のないCharset が見つからない場合に、デフォルトで返すCharset
を指定します。デフォルトでは、ISO-8859-1(Latin-1)になっているため、日本語環境では文字化けが発生します。このディレクティブは必ず、無効にしておくか、あるいは明示的にデフォルトのCharset
を指定しておく必要があります。明示的に指定する場合、サイトのコンテンツに合わせて、
none、shift_jis、EUC-JPのどれかをしておけばいいでしょう。
# AddDefaultCharset
ISO-8859-1 |
|
SSI を使用する場合には、以下2行のディレクティブを有効にしておきます。Apache1.3x とはディレクティブの指定が異なり、1.3xの場合は、AddHandler
server-parsed .shtml と指定します。
AddType text/html
.shtml
AddOutputFilter INCLUDES .shtml |
|
なお、SSI を利用するもうひとつの方法として、XBitHack というディレクティブを使用する事もできます。これがOn
になっている場合、HTMLファイルに実行権を与えるだけで(chmod +x index.html )、ファイル名を
.shtml に変更しなくてもいいという利点があります。詳しく知りたい方は、Apache の
ドキュメントを参照してください。
ErrorDocument は、エラーが発生した場合にクライアントに表示するメッセージをカスタマイズすることができます。通常は、Apache
に標準で用意されているエラーメッセージが表示されるか、もしくは、IEやNescape などのブラウザにデフォルトのエラーメッセージが返されます。404ステータスコードの「ページが表示されません」などが代表的な例で、この無味乾燥なエラーメッセージが気にくわない方は自分でカスタマイズしてみてください。指定できるのは、ダブルクォーテーション「"」で囲んだテキストメッセージのパターンと、URLを指定して、そこにエラーメッセージの用のHTMLなどを用意しておくパターンがあります。また、Perl
を用いたCGI を指定する事なども可能です。URLを指定する場合は、相対パス、絶対パスどちらでも構いません。因みに当サイトのエラーメッセージは
こちらをクリックしてください。
ErrorDocument 404
/missing.html
ErrorDocument 403 /forbidden.html |
|
なお、バーチャルホストを構築している場合は、全てのサイトが同じエラーメッセージを返すというのではあまり面白いとはいえないので、以下のようにして<VirtualHost>
ディレクティブ内にもErrorDocument ディレクティブを指定しておいた方がいいでしょう。
<VirtualHost *>
ServerName
linux.kororo.jp
DocumentRoot
/home/kororo/public_html/linux
ErrorDocument
403 /error/403.php
ErrorDocument
404 /error/404.php
</VirtualHost>
<VirtualHost *>
ServerName
new.kororo.jp
DocumentRoot
/home/kororo/public_html/new
ErrorDocument
403 /error/403.php
ErrorDocument
404 /error/404.php
</VirtualHost> |
|
また、デフォルトで用意されているエラーメッセージにエイリアスさせたい場合は、以下の30行のラインのコメントを削除し、ディレクティブを有効にします。ただし、通常は、403、404、500、401ぐらいしか使わないと思うので全てアンコメントする意味はあまり感じませんが…。
# Alias /error/
"/usr/local/apache2/error/"
#
# <Directory "/usr/local/apache2/error">
中略
# ErrorDocument 503 /error/HTTP_SERVICE_UNAVAILABLE.html.var
# ErrorDocument 506 /error/HTTP_VARIANT_ALSO_VARIES.html.var
|
|
■Section 3: Virtual Hosts
<VirtualHost *> は、複数Webサイトを構築する際に必要となるディレクティブです。おそらく自宅サーバーを構築する方なら誰もが複数のWebサイトを構築したいと思うでしょうが、その際に、マシンをわざわざ2台用意する必要はありません。一台のサーバーで、仮想的に複数のWebサイトを運営する事ができるのです。まず、
NameVirtualHost
ディレクティブをアンコメントし、有効にします。
*:80 には、「IPアドレス:ポート番号(Listen)」を指定しますが、アスタリスクの場合は、全てのIPアドレスにマッチします。
NameVirtualHost
*:80
<VirtualHost *>
ServerAdmin
root@kororo.jp
ServerName
linux.kororo.jp
DocumentRoot
/home/kororo/public_html/linux
ScriptAlias
/cgi-bin/ "/var/data/cgi-bin/"
ErrorLog logs/linux-error_log
TransferLog
logs/linux-access_log
ErrorDocument
403 /error/403.php
ErrorDocument
404 /error/404.php
</VirtualHost> |
|