最近、iMac をフォーマットしてインストールしました。10.6.5 を実行しています。このフォーマットの前に、デフォルトの Apache Web サーバーをいくつかの仮想ホストで実行し、すべてが問題なく動作していました。フォーマット後、すべてを再度設定し直したところ、Apache の動作がおかしくなりました。ここで、何が起こっているのかを説明します。
私の Apache Web サーバーのデフォルトのルート ディレクトリは、外付けハード ドライブを指しています。私の httpd.conf には、次の内容が記載されています。
DocumentRoot "/Storage/Sites"
そしてその下の数行に次の内容が書かれています:
<Directory />
Options FollowSymLinks
AllowOverride All
Order deny,allow
Allow from all
</Directory>
そしてその下には:
<Directory "/Storage/Sites">
Options Indexes FollowSymLinks MultiViews
AllowOverride All
Order allow,deny
Allow from All
</Directory>
このファイルの最後に、ユーザー ディレクトリの include conf ファイルをコメント アウトしました。
Include /private/etc/apache2/extra/httpd-userdir.conf
仮想ホストの設定ファイルのコメントを解除します。
Include /private/etc/apache2/extra/httpd-vhosts.conf
次に、vhosts ファイルに次のエントリを追加します。
<VirtualHost *:80>
DocumentRoot "/Storage/Sites/mysite"
ServerName mysite.dev
</VirtualHost>
また、/etc/hosts ファイルには、mysite.dev を 127.0.0.1 にポイントするホスト レコードがあります (ルーターの IP 192.168.1.2 の使用も試しました)。
私が遭遇している問題は、/Storage/Sites/mysite に PHP ファイルがあるにもかかわらず、サーバーが /Storage/Sites を参照し続けていることです。DocumentRoot に phpinfo() を含む PHP ファイルが含まれているため、このことがわかります (一方、mysite の index.php ファイルには異なるコードが含まれています)。
他の仮想ホストを設定してみましたが、それでも同じことが起こります。また、vhosts ファイルに「NameVirtualHost *:80」があります。別のスレッドで解決策を見つけましたが、違いはないようです。
これについて何かアイデアはありますか? 情報が不十分であればお知らせください。
答え1
メインの httpd.conf ファイルには、すべての VirtualHosts に共通するディレクティブ オプションのみを含めます。Apache によって提供されるすべてのホストを仮想ホストにします。
メインの httpd.conf ファイルから DocumentRoot とブロックを削除します。これらは httpd-vhosts.conf ファイルにのみ含めます。