人力検索はてな
モバイル版を表示しています。PC版はこちら
i-mobile

Mac+XAMPP環境でバーチャルホストが効かない

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でサイトを表示できるようになりますか?問題箇所の特定と解決方法をお教えください。

1424546030
●拡大する

●質問者: eroshigin
●カテゴリ:ウェブ制作
○ 状態 :終了
└ 回答数 : 1/1件

▽最新の回答へ

質問者から

sub.localhostにアクセスすると、sub.localhost/xamppが開く(リダイレクト?)ので、ようこそ画面が表示されていると思われます。
/Applications/XAMPP/xamppfiles/htdocs/index.php が動いているのかなぁ?なんでここが動くんだろう??謎です。


1 ● gizmo5
●500ポイント ベストアンサー

■上記のような解説サイトに書かれている以下のファイル(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 の設定はあくまでも一例です。


eroshiginさんのコメント
■/Applications/XAMPP/etc/httpd.conf の以下行は、コメントが外れて有効になっております。 Include Applications/XAMPP/xamppfiles/etc/extra/httpd-vhosts.conf ■Applications/XAMPP/xamppfiles/etc/extra/httpd-vhosts.conf には、以下が記載されていました。 <VirtualHost *:80> DocumentRoot "/Applications/XAMPP/xamppfiles/htdocs" ServerName localhost </VirtualHost> <VirtualHost *:80> DocumentRoot "/Applications/XAMPP/xamppfiles/htdocs/sub/public" ServerName sub.localhost </VirtualHost> ■ちなみにhostsは、以下のようになっています。 127.0.0.1localhost 255.255.255.255broadcasthost ::1 localhost 127.0.0.1sub.localhost ■ DocumentRootも正しそうですし、Directoryを記載しても動作は変わらずで、 http://sub.localhost/にアクセスするとhttp://sub.localhost/xampp/に リダイレクトされてしまいます。

dilutionistさんのコメント
>> ■/Applications/XAMPP/etc/httpd.conf の以下行は、コメントが外れて有効になっております。 Include Applications/XAMPP/xamppfiles/etc/extra/httpd-vhosts.conf << 最初のスラッシュはないのでしょうか、それともコピペのミスなんでしょうか。 Include /Applications/XAMPP/xamppfiles/etc/extra/httpd-vhosts.conf

gizmo5さんのコメント
元々の httpd.conf には mod_rewrite の設定があるのでしょうか。 VirtualHost の定義でリダイレクトになるとは考えにくいので、mod_rewrite の記述をはずして切り分けをしてみたはいかがでしょうか。

eroshiginさんのコメント
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

gizmo5さんのコメント
apache のコマンドラインには、チェックのためのオプションがいくつかあります。 http://mathtti.hatenablog.com/entry/20110911/p1 -t は、けっこう使う場面があります。

質問者から

お二人にポイントを分配したいのに、id:dilutionistさんが書いてくれたのは回答ではなくgizmo5さんの回答に対するコメントになってしまっていますね。


関連質問

●質問をもっと探す●



0.人力検索はてなトップ
8.このページを友達に紹介
9.このページの先頭へ
対応機種一覧
お問い合わせ
ヘルプ/お知らせ
ログイン
無料ユーザー登録
はてなトップ