OS X 上の Apache と仮想ホストの問題

OS X 上の Apache と仮想ホストの問題

最近、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 ファイルにのみ含めます。

関連情報