今までapacheを名前ベース(NameVirtualHost)をエラーが出たまま使ってたので、ちゃんと調べてみた。
例えばport 8080でVirtualHostを使いたい場合以下のようになります。
NameVirtualHost *:8080 <VirtualHost *:8080> DocumentRoot "/var/www/mazn" ServerName www.abcd.com ServerAdmin webmaster@localhost ErrorLog /var/log/apache2/error.log TransferLog /var/log/apache2/saccess.log ServerAlias www.efgh.com </VirtualHost>
これでwww.abcd.comにアクセスした場合、/var/www/mazn/ のドキュメントが表示されるようになります。またServerAliasでwww.efgh.comが設定されているので、www.efgh.comへアクセスした場合も同じものが表示されます。
複数のVirtualHostを書いた場合、一番上に書いた物が優先され、どれにもマッチしない場合も一番上のVirtualHostが表示されます。