ローカル環境でのサブドメイン設定

プログラム
date 2012.06.13 tag 未設定
「http://www.example.net/blog/」を「http://blog.example.net/」として運用している場合、後者のURLのことをサブドメインと言います。このサブドメインを設定するためにはサーバのVirtualHostを設定することになります。

今回の記事ではVirtualHostをいじって、サブドメインから特定のディレクトリに関連付けるまでを紹介します。ちなみにローカル環境でXAMPPやMAMPを導入している場合の人向けです。レンタルサーバとかでやりたい場合はサーバのマニュアルを読んでください。(ロリポップとかは簡単にできます。

作業手順

ローカル中でサブドメインを有効にする手順はこんな感じです。最初は意味分からなかったけど慣れてしまえば以外と簡単です!

  1. Apacheの設定
  2. Apacheの再起動
  3. 環境変数の設定
  4. サブドメインにアクセス

1. Apacheの設定

Apacheの方では「httpd.conf」と「httpd-vhosts.conf」を編集します。まずはhttpd.confの方から設定していくのが良さ気。

httpd.conf

Apacheの基本となる設定ファイルといえばこれです。
ファイルを置いてある場所は環境によっていろいろ違います。以下は参考までに。

パッケージ 置いてある場所
XAMPP (Win) C:\xampp\apache\conf\httpd.conf
XAMPP (Mac) /Applications/XAMPP/etc/httpd.conf
MAMP /Applications/MAMP/conf/apache/httpd.conf

httpd.confをテキストエディタで開いたら、下のところにある「# Virtual hosts」という項目を探して次の行の「#」を外します。#はこの一行を無視するよという感じ。外すことで有効になります。

httpd.conf (XAMPP for Macの場合)

[html]
# Virtual hosts
#Include /Applications/XAMPP/etc/extra/httpd-vhosts.conf
[/html]
#Virtual hostsの次の行にある「#」を外します。
[html]
# Virtual hosts
Include /Applications/XAMPP/etc/extra/httpd-vhosts.conf
[/html]

有効化されたこの記述はVirtualHostに関するファイル(httpd-vhosts.conf)を読み込むという意味。というわけで、今度はこのhttpd-vhosts.confの設定を行います。

httpd-vhosts.conf

こいつはVirtualHostの設定を記述していくファイルです。
先程指定されていたhttpd-vhosts.confを開いたら、こんな記述があるか確認してみます。あればオッケーです。

httpd-vhosts.conf

[html]
NameVirtualHost *:80
[/html]

ない場合は一番上に追加しておきましょう。その後、一番下の行まで移動して次のような記述を追加します。

httpd-vhosts.conf

[html]
<VirtualHost *:80>
ServerName localhost
DocumentRoot /Application/XAMPP/xamppfiles/htdocs/
</VirtualHost>

<VirtualHost *:80>
ServerName study.localhost
DocumentRoot /Application/XAMPP/xamppfiles/htdocs/study/php/
</VirtualHost>
[/html]

項目 説明
ServerName サブドメインとなる値
DocumentRoot サブドメインに対応するパス

下の記述は「http://localhost/study/php」を「http://study.localhost」として運用する設定になります。自分の設定を書きましょう!

2. Apacheの再起動

終わったらApacheの再起動。設定ファイルはApacheの再起動を行うことで適応されます。エラーが出たらきっと文法ミスです。

3. 環境変数の設定

Apacheの設定ファイルを編集したけどこれだけではアクセスできません>< 理由は今回設定したサブドメインは自分で勝手に作ったものだから。このサブドメインにアクセスするには、自分のパソコンにサブドメインとIPアドレスの対応を教えてやる必要があります。

そこで登場するのが「hosts」ファイル。これは自分のパソコンの中だけで適応されるIPとドメイン名(ホスト)の独自ルールを設定するもので、次のような特徴があります。

  • 拡張子はありません
  • OSによって置いてある場所が違います
  • 管理者権限がないと編集できません

厄介ですねえ。さて、WindowsとMacのhostsの編集について触れます。事前にコピーしてバックアップは取っておいてくださいね。あと、自分のIPアドレスが必要ですので調べておくべし。

IPアドレスが分かったら以下ようにしてhostsの一番下の行に書き込みます。場所と作業方法の例は3.1と3.2を見てください。

hostsに書き込む内容

[text]
192.168.x.x study.localhost
[/text]

3.1 Windowsのhosts

場所: C:\Windows\System32\drivers\etc\hosts
編集方法 : デスクトップなどにコピーしてから任意のテキストエディタで編集。その後、上記の場所にあるhostsファイルを上書き。

3.2 Macのhosts

場所: /etc/hosts
編集方法: ターミナルを使って編集。慣れてない人にとったら怖い作業かも。

ターミナルの操作

[text]
$ sudo cp /etc/hosts /etc/hosts.org
Password : (パスワードを入力)
$ sudo emacs /etc/hosts
[/text]

オリジナルファイルをコピーし、emacsでhostsを開いて編集。
その後「control + X 、control + S」で保存し、「control + X 、 control + C」で終了。

4. サブドメインにアクセス

hostsの編集が無事終了したらオッケーなはずです!アドレスバーにURLを入力してアクセスしてみましょー。お疲れさまです。
ちなみに複数のサブドメインもこの要領で設定できます。快適なローカル環境を作りましょう。