OXY NOTES

XAMMP導入時にApacheのVirtualHostを設定する方法

ローカルに導入したXAMMPでサブドメインを利用したい

FacebookのOAuthをローカル環境でテストする際に、App Domainsに利用するドメインを指定する必要があります。当然のごとくlocalhostは指定できません。

そこでApacheVirtualHostを設定してサブドメインを登録しようという趣旨の記事です。


Apacheのhttpd-vhosts.confを設定

ありがたいことにバーチャルホスト専用のファイル「C:\xampp\apache\conf\extra\httpd-vhosts.conf」が用意されています。(Cドライブ直下にXAMMPを導入した場合)
最終行に以下の記述を追加。
example.com」の部分は自分のドメインに変更してください。

<VirtualHost *:80>
	DocumentRoot C:/xampp/htdocs/
	ServerName localhost
</VirtualHost>

<VirtualHost *:80>
	DocumentRoot C:/xampp/htdocs/xampp/example.com
	ServerName localhost.example.com
</VirtualHost>

上がXAMMP導入時にデフォルトで指定されるディレクトリとサーバー名。これを忘れると今まで「http://localhost/xampp/hoge」等で参照していたページにアクセスできなくなります。

下が新しく追加したバーチャルホスト用の設定。「localhost.example.com」という名前でアクセスしてきた場合、「C:/xampp/htdocs/xampp/example.com」フォルダを参照するという設定です。

設定が終わったら忘れずにXAMPP Control Panel(C:\xampp\xampp-control.exe)でApacheを再起動します。

STOP」をクリックした後に「START」という表示に変わるので再度クリックすると再起動できます。


hostsの設定

このままでは「localhost.example.com」にアクセスするとインターネットに接続しようとしてしまいます。そこで「localhost.example.com」にアクセス時にローカル(127.0.0.1)へアクセするように変更します。

C:\Windows\System32\drivers\etc\hosts」を開いて最後に追記します。

127.0.0.1 localhost.example.com

以上で「localhost.example.com」にアクセスすると「C:/xampp/htdocs/xampp/example.com」を参照するようになります。


Facebookの設定

FacebookのApp Domainsに登録したドメインを追加します。

Facebookの「Developersページ」へアクセスして登録しているドメインを選択して「Settings > Basic > App Domains」で「localhost.example.com」を追加。

これで無事にローカル環境でOAuthをテストすることができるようになりました。

今回はFacebookの例でしたが、他のアプリでも同様に設定すればローカルでテストすることができます。