私はPHPプログラマーがセットアップして実行するための開発サーバーをしばらくの間持っています。システムはデフォルトのApacheパッケージを備えたDebianです:
# Apache2 -v
Server version: Apache/2.2.9 (Debian)
Server built: Dec 11 2010 18:58:55
プロジェクトごとと開発者ごとに1つずつ、約30の名前ベースのVirtualHostを設定しました。スクリプトを使用して構成を行いますが、今度は約15個の新しいプロジェクトを追加する必要があり、それらはすべて標準のディレクトリ構造であるため、 mod_vhost_alias を使用すると思いました。
私はこれに似た私の設定を持っています:
NameVirtualHost *:80
#Default vhost
<VirtualHost *:80>
DocumentRoot /var/www/404
ServerName dev.example.com
ErrorLog /var/log/Apache2/404.error_log
TransferLog /var/log/Apache2/404.access_log
<Directory "/var/www/404">
allow from all
Options Indexes Includes
AllowOverride All
</Directory>
</VirtualHost>
#this entry is repeated many times
#with different server names, document roots
# and other differences, bu basics stay the same
<VirtualHost *:80>
DocumentRoot /var/www/crm
ServerName crm.dev.example.com
ErrorLog /var/log/Apache2/crm.error_log
TransferLog /var/log/Apache2/crm.access_log
<Directory "/var/www/crm">
allow from all
Options Indexes Includes
AllowOverride All
</Directory>
</VirtualHost>
# I added Vhost_alias virtaul Host today, at the end of the config
<VirtualHost *:80>
# This is for pages similar to some-page.pl.web.example.com
UseCanonicalName Off
ServerAlias *.web.dev.example.com
VirtualDocumentRoot /var/www/web/%-4+/cur
ErrorLog /var/log/Apache2/%-4+.error_log
TransferLog /var/log/Apache2/%-4+.access_log
<Directory /var/www/%-4+>
allow from all
Options Indexes Includes
AllowOverride All
</Directory>
</VirtualHost>
その結果、接続すると http://my-page.com.web.dev.example.com /var/www/404ディレクトリからデフォルトの仮想ホストを取得します。ディレクトリ/var/www/web/my-page.com/が存在し、my-page.comの実際のWebページのコピーが含まれています。
私は何が間違っているのですか? 「標準」のNameVirtualHostとvhost_aliasに別々のIPアドレスが必要ですか?他に何を確認する必要がありますか?
はい、同じ構成でNameVirtualHost
とmod_vhost_alias
を使用できます。 mod_vhost_alias
エントリを次のように変更します。
<IfModule mod_vhost_alias.c>
<VirtualHost *:80>
ServerAlias *.web.dev.example.com
VirtualDocumentRoot /var/www/web/%-4+/cur
ErrorLog /var/log/Apache2/%-4+.error_log
TransferLog /var/log/Apache2/%-4+.access_log
<Directory /var/www/%-4+>
allow from all
Options Indexes Includes
AllowOverride All
</Directory>
</VirtualHost>
</IfModule>
このエントリは、Include conf.d/*.conf
のhttpd.conf
行のすぐ下(RHELシステムでは/etc/httpd/conf/httpd.conf
にあります)、またはUbuntuの場合は/etc/Apache2/conf-enabled/
の新しいファイルに配置します。
編集:私はブログを書きました 詳細情報 。
以前、ワイルドカードサブドメイン用に同様のVirtualDocumentRootベースをセットアップしました。誰かのホームディレクトリ内にディレクトリを作成できると非常に便利です。通常、Sambaを介してディレクトリを共有し、開発者のデスクトップから使用できるようにします。少なくとも開発とテストのために、新しいWebサイトを作成します。
あなたの問題に関しては、私はそれらをデフォルトの仮想ホストなしで異なるIPアドレスに置くだけです。