私は、OS X Mavericksを実行している個人のMacintosh上のApache2で3つの仮想ホストを実行していて、混乱に陥りました。これらは、httpd-vhosts.confファイルで次のように構成されています。
<VirtualHost *:80>
DocumentRoot "/Library/WebServer/Documents"
ServerName localhost
ServerAlias localhost
</VirtualHost>
<VirtualHost *:80>
DocumentRoot "/Library/WebServer/Documents/dev1"
ServerName dev1.local
ServerAlias www.dev1.local
</VirtualHost>
<VirtualHost *:80>
DocumentRoot "/Library/WebServer/Documents/dev2"
ServerName dev2.local
ServerAlias www.dev2.local
</VirtualHost>
<VirtualHost *:80>
DocumentRoot "/Library/WebServer/Documents/dev3”
ServerName dev3.local
ServerAlias www.dev3.local
</VirtualHost>
注:最初のエントリでは、「localhost」と入力して、仮想ホストを実行しなくても期待どおりにロードすることができます。
dev1とdev2は正常に機能しますが、「要求されたURL /はこのサーバーで見つかりませんでした」というエラー404が表示されます。ローカルマシンにdev3をロードしようとすると、 3つのDevフォルダーすべてに同じ権限があり、名前を確認しました。 error_logを確認したところ、次のことがわかりました。
[Fri Jan 24 12:55:07 2014] [error] [client 127.0.0.1]ファイルが存在しません:/ Library/WebServer/Documents/dev3\xe2\x80\x9d
Apacheがフォルダパスの最後に「\ xe2\x80\x9d」を追加する理由、またはdev3がロードされない理由を誰かが知っていますか? (これらのランダムに追加された文字が原因だと思います)任意の入力を歓迎します!読んでくれてありがとう!
DocumentRoot "/Library/WebServer/Documents/dev3”
^----- no proper quotation mark :9
PHPがインストールされている場合:
<?php
echo "\xe2\x80\x9d";
// or
echo utf8_decode("\xe2\x80\x9d");
// should give you ”
VirtualHost
設定がありません。
NG:DocumentRoot "/Library/WebServer/Documents/dev2"
OK: DocumentRoot /Library/WebServer/Documents/dev2
DocumentRoot "/ライブラリ/ WebServer/Documents"
そのはず
DocumentRoot/Library/WebServer/Documents
documentRootに「」がない