[Apache]


この日記のはてなブックマーク数 このエントリーを含むはてなブックマーク

ApacheのバーチャルホストにはIPベースのバーチャルホストとネームベースのバーチャルホストの二種類あります。ひとつのIPで複数のサイトを運用する場合には後述のネームベースの方を利用します。まずhttpd.confにあるNameVirtualHostListenディレクティブを以下のように設定します。



NameVirtualHost 218.219.203.56:80 <-- バーチャルホストで使用するIP
Listen 80


次に以下のようなサンプルの箇所を探し、そのうしろにバーチャルホストの設定を追加していきます。バーチャルホストは<VirtualHost> から始まり</VirtualHost> で終わります。その間にはさむ形でバーチャルホストごとの設定を追加していきます。サンプルを見ていただくと分るかと思いますが、基本的にはその他の箇所で設定されている内容と大差ありません。ただ単に有効範囲がこのバーチャルホストの中にのみ適応されるだけです。



#<VirtualHost *>
# ServerAdmin webmaster@dummy-host.example.com
# DocumentRoot /www/docs/dummy-host.example.com
# ServerName dummy-host.example.com
# ErrorLog logs/dummy-host.example.com-error_log
# CustomLog logs/dummy-host.example.com-access_log common
#</VirtualHost>


<VirtualHost 218.219.203.56:80> <-- IPアドレスとポートを記述
ServerName www.ksknet.net <-- サーバ名を記述
ServerAlias ksknet.net <-- サーバのエイリアスを記述
User username
Group gropuname
ServerAdmin username@example.com
DocumentRoot /var/www/html
ScriptAlias /cgi-bin/ "/var/www/cgi-bin/"
CustomLog logs/www.ksknet.net-access_log combined
ErrorLog logs/www.ksknet.net-error_log


<Directory "/var/www/html">
Options ExecCGI Indexes FollowSymlinks
AllowOverride All
<Directory>


<Directory "/var/www/cgi-bin">
Options ExecCGI IncludesNoexec
AllowOverride All
<Directory>

</VirtualHost>


#--- 次のバーチャルホストが続く ---#


バーチャルホスト内ではSuExecが効きますので、CGIなどはここのUserやGroupで指定されたユーザ権限にて動きます。ちなみにApache2.xでは書式が変わってSuexecUserGroup User Groupになったようです。


バーチャルホストの設定が終わったら、httpd -S もしくは httpd -t -D DUMP_VHOSTS で正しく有効になっているかどうか確かめましょう。



[root@server root]# httpd -S
VirtualHost configuration:
218.219.203.56:80 is a NameVirtualHost
default server server.ksknet.net (/etc/httpd/conf/httpd.conf:1254)
port 80 namevhost server.ksknet.net (/etc/httpd/conf/httpd.conf:1254)
port 80 namevhost www.ksknet.net (/etc/httpd/conf/httpd.conf:1262)


以下のようなエラーが出た場合は正しく設定できていません。


※バーチャルホストが重複してしまってます。一番最初の設定が最優先され、後は無視されます。



[Mon Jun 28 18:55:36 2004] [warn] _default_ VirtualHost overlap on port 80, the first has precedence
[Mon Jun 28 18:55:36 2004] [warn] _default_ VirtualHost overlap on port 80, the first has precedence
[Mon Jun 28 18:55:36 2004] [warn] _default_ VirtualHost overlap on port 80, the first has precedence
[Mon Jun 28 18:55:36 2004] [warn] _default_ VirtualHost overlap on port 80, the first has precedence


※ポート指定が重複してしまっている可能性があります。NameVirtualHostもしくはListenディレクティブを確認しましょう。



[crit] (98)Address already in use: make_sock: could not bind to port 80


※ポート指定有りとなしのバーチャルホストが存在しています。


VirtualHost *:80 -- mixing * ports and non-* ports with a NameVirtualHost address is not supported, proceeding with undefined results



関連記事
ScriptLog - CGIスクリプトのエラーログ
mod_proxy_balancerによる負荷分散
MultiViews - 拡張子の自動判別
CGIファイルがあるのに No such file とログにでる
ドキュメントルート直下でファイルの一覧が見れない
MIMEの設定
mod_auth_pgsql
Redirect - URLのリダイレクト
自己署名証明書の作成
Turbolinux - SSLの起動
apache + mod_ssl のインストール
mod_perlのインストール
keytool error: java.io.IOException: AVA parse, quoted strings NYI
tomcat - SSLの設定
tomcatの起動と停止
外部参照の禁止
PHPのソースが表示されてしまう
ファイル名によるアクセス制限
Apacheのバージョンを調べるには
Invalid method in request
file permissions deny server access
SetEnvIfNoCase
LogFormat - アクセスログの出力形式を指定
mod_usertrack - トラッキングクッキーの発行
SSIの主な使用方法
RewriteCond - RewriteRuleの条件を設定
suexecのコンパイル時の設定確認
apacheのバージョン情報を隠すには
SSIを使用するには
CustomLog - アクセスログの保存場所を指定
seg fault or similar nasty error detected
SSLの起動
ユーザエージェントによるアクセス制限
バーチャルホストの設定をするには - NameVirtualHost
バーチャルホストの一覧を見るには
apacheのアクセスログに出現するfavicon.icoとは
httpd.confのsyntaxをチェックをするには
mod_perlに関して
SetEnvIfを使用したログの振り分け
ErrorDocument - エラーメッセージのカスタマイズ
IPによるアクセス制限
AddHandler default-handler
リソース制限
RedirectMatch - URLのリダイレクト
パスワードによる基本認証
Apache2.Xの文字化け
SSL証明書のインストール方法
CSRの作成方法 (Apache+ModSSL)
広告