【Apache】サブドメインごとに参照するディレクトリを設定する方法

Apacheのサブドメインの設定方法を紹介します。
サブドメインに対応するトップディレクトリを設定する方法です。

[スポンサーリンク]

DNS(ネームサーバ)側の設定はすでに終わっていることを想定として、Apache側のみの設定方法を紹介します。

サイト運営をする上で、サブドメインの運用は外せません。(費用的にも優しいです。)

この章でやること

Apache側のサブドメインの設定方法を紹介します。

Apacheの設定ファイルへ設定を追加する。

まずは、Apacheの設定ファイルを開きましょう

vi /etc/httpd/conf/httpd.conf

httpd.confのNameVirtualHostのコメントアウトを外します。(有効にします。)
(もしなかったら、追加しましょう。)

NameVirtualHost *:80

httpd.confへサブドメインに対応するディレクトリを追加していきます。
以下の例だと、example.comがメインドメインです。

<VirtualHost *:80>
    ServerName example.com
    DocumentRoot /var/www/html/
  <Directory /var/www/html/>
    AllowOverride All
    Options FollowSymLinks
    Order allow,deny
    Allow from all
   </Directory>
</VirtualHost>

<VirtualHost *:80>
    ServerName tool.example.com
    DocumentRoot /var/www/html/tool/
  <Directory /var/www/html/tool/>
    AllowOverride All
    Options FollowSymLinks
    Order allow,deny
    Allow from all
   </Directory>
</VirtualHost>

<VirtualHost *:80>
    ServerName blog.example.com
    DocumentRoot /var/www/html/blog/
  <Directory /var/www/html/blog/>
    AllowOverride All
    Options FollowSymLinks
    Order allow,deny
    Allow from all
   </Directory>
</VirtualHost>

解説

上記の設定例は、
メインドメイン(example.com)のディレクトは、/var/www/html/となります。

サブドメイン(blog.example.com、tool.example.com)のディレクトリは、/var/www/html/tool//var/www/html/blog/となります。

注意!

NameVirtualHostのコメントアウトの外し忘れることが多いので、注意しましょう。
外し忘れていたら、ディレクトリの向き先の振り分けをうまくやってくれません。

おまけ【DNSサーバ側の設定】

DNS(ネームサーバ)へのサブドメイン設定は以下の通りです。
Aレコードに同一IPアドレスを複数持たせることが可能です。

Aレコード example.com 200.100.10.10
Aレコード tool.example.com 200.100.10.10
Aレコード blog.example.com 200.100.10.10

さいごに

サブドメインの使用は、ドメイン維持費が抑えられるので、個人でサイトを運営されている方には必須な運営方法だと思います。

Apach側の設定方法は非常に簡単なので、多用しましょう。
(DNS側の設定も簡単です。次回あたりにこの辺は紹介していきたいと考えています。)

設定自体は簡単なのですが、ディレクトリ構成の運用ルールは、最初にきちんと決めた方がよいです。
後でディレクトリ構成を修正するのって、意外と大変です。(アプリに設定しているパスを変更しないといけないので。。)
それでは!