Apache2.2 の VirtualHost を SSL を使うサイトにも適用
追記
コメントで指摘を受けたとおり、この設定は Apache2.2
までで有効な設定です。
Apache2.3 以降(多分 2.4 以降を使うのが一般的だとは思うけど)ではこの設定を書くことなく NameVirtualHost を適用することが可能です。
This directive currently has no effect.
とあるので、2.4 では設定があってもエラーにはならないようですが。
(多分今後のバージョンアップでは完全に撤廃されてエラーになるんだろうな)
普通の VirtualHost の設定
Apache の VirtualHostを適用する時、SSL を使わない場合
NameVirtualhost *:80
と設定してから
<VirtualHost *:80>
ServerName virtualhost.example.com
DocumentRoot /var/www/virtualhost.example.com
ErrorLog logs/virtualhost_error_log
CustomLog logs/virtualhost_access_log combined env=!no_log
</VirtualHost>
SSL のついたサイトの VituralHost の設定
SSL を使うサイトでは以下のように設定すれば良いのだけど、それだけじゃ不十分.
<VirtualHost *:443>
ServerName sslvirtual.example.com
DocumentRoot /var/www/sslvirtual.example.com
SSLEngine on
SSLCertificateFile /path/to/file.crt
SSLCertificateKeyFile /path/to/file.key
ErrorLog logs/sslvirtual_error_log
CustomLog logs/sslvirtual_access_log combined env=!no_log
</VirtualHost>
意外と意識から抜けてたけど
NameVirtualhost *:443
この記述も入れておかないと VirtualHost は設定できないので忘れないように.