バーチャルホストを設定する

PHP5.4サーバにて作業

バーチャルホストを設定して、複数ドメインを同居できるようにします。

バーチャルドメインの有効化

httpdの設定ファイルを開きます。

# vi /etc/httpd/conf/httpd.conf

おそらくファイルの最後のほうにある下記を先頭の # を外し有効化して保存。

NameVirtualHost *:80

ドメインごとの設定

/etc/httpd/conf.d/ にドメインごとにファイルを作っていきます。
※/etc/httpd/conf/httpd.conf に書いたり、1つのファイルに全部書いたり方法はいろいろありますが、下記の方法に落ち着きました。

httpdではバーチャルホストに設定されていないドメインでアクセスがあった場合、一番最初に読み込まれた VirtualHost の内容が利用されます。
/etc/httpd/conf.d/ の中はファイル名の昇順で読まれるというルールがあります。

そこで下記のように、数字の0で始まるファイル名にすることでこのファイルの内容がデフォルトで使われるようにします。

# vi /etc/httpd/conf.d/00-vh-default.conf
<VirtualHost *:80>
DocumentRoot "/hoge/www/default/httpdocs"
</VirtualHost>

※私はこちらを無効なアクセスとして、エラー表示を行うHTMLだけを設置しています。
※ファイル名「00-vh-default.conf」は好みです。

例) aulta.net を設定

# vi /etc/httpd/conf.d/vh-net.aulta.conf
###############################
# aulta.net
###############################
<VirtualHost *:80>
DocumentRoot "/hoge/www/aulta.net/httpdocs"
ServerName aulta.net
</VirtualHost>

ファイル名 vh-net.aulta.conf は、
VirtualHostの設定なので、vh-
aulta.net をドット区切りを逆にして、 net ドット aulta
拡張子の .conf
としています。
ファイル名は好みなのでこのようなルールがあるわけじゃないですが、たくさんのドメイン・サブドメインを登録していくとこの形が ls -la /etc/httpd/conf.d/ したときに見やすいかなと思っています。

DocumentRoot "/hoge/www/aulta.net/httpdocs"
設置場所は好みです。
web用ディレクトリ(上記では/hoge/www)の下にドメイン名でディレクトリを作り httpdocs をドキュメントルートにしています。

例) server.aulta.net を設定

先述のやり方と同じで次のようになります。

# vi /etc/httpd/conf.d/vh-net.aulta.server.conf
###############################
# server.aulta.net
###############################
<VirtualHost *:80>
DocumentRoot "/hoge/www/server.aulta.net/httpdocs"
ServerName server.aulta.net
</VirtualHost>

他のドメイン・サブドメインも同様のルールで行います。
ポイントは「全体で同じ作成・記述ルール」を決めることで、本ページの内容をアレンジしたら良いと思います。