バーチャルホストの設定メモ
投稿日:2015年08月27日
最終更新日:
このページでは、サーバーにバーチャルホストを設定するやり方を解説します。
そもそも(名前ベース)バーチャルホストとは?
- 1台のサーバー・1個のIPアドレスで複数のドメイン名を使えるようにするための仕組み。これがないとレンタルサーバーの料金が恐ろしいことになるだろう。
- これを用いることによって、IPアドレスやサーバーの台数を節約できる。
- アクセス時にクライアントから送られる情報を元にドメインを判定し、適切な応答をする。
解説は以下
設定方法
まずはhttpd.confの設定を確認します。
[VIM]
sudo vim /etc/httpd/conf/httpd.conf
#以下httpd.confの内容
Include conf.d/*.conf #こいつが有効になっていればOK(当方では221行目で確認)
#NameVirtualHost *:80 ←こいつはコメントアウトしてあればOK(当方では990行目で確認)
[/VIM]
上記2つの設定を確認できたら、バーチャルホストの設定に移ります。
[VIM]
sudo vim /etc/httpd/conf.d/vhost.conf #このファイルにバーチャルホストの設定を入れていく
[/VIM]
大元のhttpd.confを設定するのは少し大変なので、バーチャルホストの設定は、/etc/httpd/conf.d/vhost.confに入れます。Include conf.d/*.conf(httpd.confの設定)によって、apache起動時にvhost.confも読み込まれます。今回は、
- IPアドレスは1個
- ドキュメントルートは/var/www/html/test1に設定する
- ドメイン名はwww.example.com
この条件で設定していきます。以下vhost.confの内容です。
[VIM]
NameVirtualHost *:80
ServerName www.example.com
ServerAlias example.com #使用するドメイン名の別名を指定できる(今回はwwwがあってもなくても正常に処理できるようにするために使用)
DocumentRoot “/var/www/html/test1”
ErrorLog /var/log/httpd/test1_example-error.log #エラーログを吐かせる場所とファイル名を指定
CustomLog /var/log/httpd/test1_access.log “%h %l %u %t \”%r\” %>s %b” #エラーログを吐かせる場所とファイル名を指定 ファイル名の後の文字列はログの設定(詳細は「apache カスタムログ」でググればOK)
Options FollowSymLinks ExecCGI #このへんの設定は「apache options」とかでググればOK
AllowOverride AuthConfig FileInfo Limit #このへんの設定も「apache allowoverride」とかで(略)
Order allow,deny
Allow from all
[/VIM]
…とまあこんな感じで設定を書いていきます。もっとたくさんのドメイン名を運用するなら、同様にずらずら書き加えていけばOKです。vhost.confが
[VIM]
NameVirtualHost *:80
ドメイン1の設定をゴニョゴニョ
ドメイン2の設定をゴニョゴニョ
ドメイン3の設定をゴニョゴニョ
#以下延々と続く
[/VIM]
こんな感じになります。設定を保存し終わったら、
[VIM]
sudo service httpd restart
[/VIM]
でapacheを再起動しましょう。正常にアクセスできれば成功です。
投稿者名:
Koguma