Mac OX X 10.10.2、XAMPP 1.8.2-5でWebアプリの開発をしております。
例えばこれまで、localhost/sub というURLで開発しておりましたが、
サブドメインを使って、sub.localhostというURLで開発したいと思います。
ネット検索したところ、「httpd.conf、httpd-vhosts.conf、hostsを編集→Apatch再起動」という以下のような解説ページがたくさん見つかりました。
XAMPP for Macでのバーチャルホスト設定
http://qiita.com/devsparks/items/c4f6a5d4897301e832a7
同じように変更しているものの、サブドメインでアクセスすることができません。
具体的には、ブラウザのURLにsub.localhost を入力すると、XAMPPのようこそ画面が表示されてしまいます。
アプリ(フレームワークはFuelphp)は以下のフォルダに配置しております。
/Applications/XAMPP/xamppfiles/htdocs/sub/public
お教えいただきたい点が2点あります。
■上記のような解説サイトに書かれている以下のファイル(httpd.conf、httpd-vhosts.conf、hosts)が、どのパスにあるファイルなのかを再確認、お教えいただきたい。
■どうやったらsub.localhostでサイトを表示できるようになりますか?問題箇所の特定と解決方法をお教えください。
sub.localhostにアクセスすると、sub.localhost/xamppが開く(リダイレクト?)ので、ようこそ画面が表示されていると思われます。
/Applications/XAMPP/xamppfiles/htdocs/index.php が動いているのかなぁ?なんでここが動くんだろう??謎です。
■上記のような解説サイトに書かれている以下のファイル(httpd.conf、httpd-vhosts.conf、hosts)が、どのパスにあるファイルなのかを再確認、お教えいただきたい。
httpd.conf は、/Application/XAMPP/etc/httpd.conf です。
httpd-vhosts.conf は、httpd.conf に書かれているように、/Applications/XAMPP/etc/extra/httpd-vhosts.conf です。
hosts は /private/etc/hosts です。
■どうやったらsub.localhostでサイトを表示できるようになりますか?問題箇所の特定と解決方法をお教えください。
定義ファイルを見ないと何とも言えませんが httpd-vhosts.conf の sub.localhost の定義は以下のようになっているのではありませんか。
<VirtualHost *:80> DocumentRoot "/Applications/XAMPP/xamppfiles/htdocs" ServerName sub.localhost </VirtualHost>
であれば、質問に書かれたような表示は正しい動作だと思いますが。
VirtualHost ディレクティブで Directory の設定がないので、index.php が無い場合にファイルリストが表示されているのだと思います。
上記の定義であればURLは http://sub.localhost/sub/public になります。
URLを http://sub.localhost/ でアクセスしたいのであれば、VirtualHost の定義は以下のようになると思います。
ファイルの一覧を出したくなければ、Directory の設定もやりましょう。
<VirtualHost *:80> DocumentRoot "/Applications/XAMPP/xamppfiles/htdocs/sub/public" ServerName sub.localhost <Directory /var/www/html/tool/> AllowOverride All Options -Indexes FollowSymLinks Order allow,deny Allow from all </Directory> </VirtualHost>
Directory の設定はあくまでも一例です。
■上記のような解説サイトに書かれている以下のファイル(httpd.conf、httpd-vhosts.conf、hosts)が、どのパスにあるファイルなのかを再確認、お教えいただきたい。
httpd.conf は、/Application/XAMPP/etc/httpd.conf です。
httpd-vhosts.conf は、httpd.conf に書かれているように、/Applications/XAMPP/etc/extra/httpd-vhosts.conf です。
hosts は /private/etc/hosts です。
■どうやったらsub.localhostでサイトを表示できるようになりますか?問題箇所の特定と解決方法をお教えください。
定義ファイルを見ないと何とも言えませんが httpd-vhosts.conf の sub.localhost の定義は以下のようになっているのではありませんか。
<VirtualHost *:80> DocumentRoot "/Applications/XAMPP/xamppfiles/htdocs" ServerName sub.localhost </VirtualHost>
であれば、質問に書かれたような表示は正しい動作だと思いますが。
VirtualHost ディレクティブで Directory の設定がないので、index.php が無い場合にファイルリストが表示されているのだと思います。
上記の定義であればURLは http://sub.localhost/sub/public になります。
URLを http://sub.localhost/ でアクセスしたいのであれば、VirtualHost の定義は以下のようになると思います。
ファイルの一覧を出したくなければ、Directory の設定もやりましょう。
<VirtualHost *:80> DocumentRoot "/Applications/XAMPP/xamppfiles/htdocs/sub/public" ServerName sub.localhost <Directory /var/www/html/tool/> AllowOverride All Options -Indexes FollowSymLinks Order allow,deny Allow from all </Directory> </VirtualHost>
Directory の設定はあくまでも一例です。
xamppをインストールした時に書かれているパスが
#Include Applications/XAMPP/xamppfiles/etc/extra/httpd-vhosts.conf
で、先頭の#を削除したのが問題でした。
Include Applications/XAMPP/xamppfiles/etc/extra/httpd-vhosts.conf
ここに書かれているその他のパスも、先頭スラッシュが怪しいものが含まれているので注意が必要です。
後に見つけたのですが、以下コマンドでvirtual host が正しく設定できているか確認できるようです。
/Applications/XAMPP/xamppfiles/bin/httpd -S
apache のコマンドラインには、チェックのためのオプションがいくつかあります。
http://mathtti.hatenablog.com/entry/20110911/p1
-t は、けっこう使う場面があります。
お二人にポイントを分配したいのに、id:dilutionistさんが書いてくれたのは回答ではなくgizmo5さんの回答に対するコメントになってしまっていますね。
xamppをインストールした時に書かれているパスが
2015/02/22 23:15:38#Include Applications/XAMPP/xamppfiles/etc/extra/httpd-vhosts.conf
で、先頭の#を削除したのが問題でした。
Include Applications/XAMPP/xamppfiles/etc/extra/httpd-vhosts.conf
ここに書かれているその他のパスも、先頭スラッシュが怪しいものが含まれているので注意が必要です。
後に見つけたのですが、以下コマンドでvirtual host が正しく設定できているか確認できるようです。
/Applications/XAMPP/xamppfiles/bin/httpd -S
apache のコマンドラインには、チェックのためのオプションがいくつかあります。
2015/02/24 23:02:39http://mathtti.hatenablog.com/entry/20110911/p1
-t は、けっこう使う場面があります。