*** Apacheでサブドメインを実現してみる [#s1b0df4c]
- [[サブドメイン>http://www.atmarkit.co.jp/flinux/rensai/bind906/bind906a.html]]とは、ドメインに対してそれよりも下の階層を定義委任できる仕組みのことをいいます。
- といっても判りづらいのですが、たとえばよくこんなURLを見たことありませんか?
http://blog.sea-bird.org
http://hoge.sea-bird.org
-- 上記の例は、sea-bird.org ドメインの前に、''blog''や''hoge''ってついたもの。~
一般的には''www''じゃないの?って思いません?~
これは、BIND と、Apacheのバーチャルホスト(名前ベース)によって実現されているのです。
*** BINDの設定 [#e898b67c]
- ''http://blog.sea-bird.org'' が外部のネットワーク(インターネット)から参照され場合に、~
'''sea-bird.org'''サーバの場所を返すようにしなければいけません。
- sea-bird.orgの正引きゾーン情報に、COLOR(RED){''blog''}である場所を返す様に定義します。
www IN CNAME ns.sea-bird.org.
blog IN CNAME ns.sea-bird.org. ← この行です
hoge IN CNAME ns.sea-bird.org. ← ついでに
-- 設定が終わったら、BINDを再起動しておきます。
# /etc/rc.d/init.d/named restart
*** Apacheの設定 [#lf78b857]
- DNSの情報は、一定の時間が経過しないと反映されないのでその間にApacheのバーチャルホスト化を設定します。
- COLOR(RED){''/etc/httpd/conf/httpd.conf''} 以下の定義値を修正または追加する。
# バーチャルホスト化の設定をする場合、ホスト名かサーバアドレスを設定
ServerName 192.168.0.xx ← xxには、アドレス
#
# Use name-based virtual hosting.
#
NameVirtualHost 192.168.0.xx:* ← xxには、アドレス
# httpd.conf の最後に追加する
<VirtualHost 192.168.0.xxx> ← 1.
ServerAdmin hoge@sea-bird.org
DocumentRoot "/var/www/html"
ServerName www.sea-bird.org
ErrorLog logs/error_log
CustomLog logs/access_log combined
</VirtualHost>
<VirtualHost 192.168.0.xxx> ← 2.
ServerAdmin hoge@sea-bird.org
DocumentRoot "/var/www/html/blog"
ServerName blog.sea-bird.org
ErrorLog logs/error_log
CustomLog logs/access_log combined
</VirtualHost>
<VirtualHost 192.168.0.xxx> ← 3.
ServerAdmin hoge@sea-bird.org
DocumentRoot "/var/www/html/hoge"
ServerName test.sea-bird.org
ErrorLog logs/error_log
CustomLog logs/access_log combined
</VirtualHost>
-- 上記の設定の意味は以下の通りです
1.www.sea-bird.org にアクセスがあった場合、ドキュメントルートを "/var/www/html" に
2.blog.sea-bird.org にアクセスがあった場合、ドキュメントルートを "/var/www/html/blog" に
3.hoge.sea-bird.org にアクセスがあった場合、ドキュメントルートを "/var/www/html/hoge" に
: COLOR(RED){はまったこと} |
・ServerName をコメントにしていなかった~
・192.168.0.xxx ここには、サーバの実アドレスを設定していなかった
*** 参考にさせて頂いたサイト様 [#z6fef845]