我最近格式化並安裝了我的 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>
在此文件的末尾,我註解掉了用戶目錄包含conf檔:
Include /private/etc/apache2/extra/httpd-userdir.conf
並取消註解虛擬主機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 檔案具有不同的程式碼)。
我嘗試過設定其他虛擬主機,但他們仍然在做同樣的事情。另外,「NameVirtualHost *:80」位於我的虛擬主機檔案中。我在這裡看到了另一個線程的解決方案。似乎沒有什麼差別。
對此有什麼想法嗎?如果這還不夠,請告訴我。
答案1
僅在主 httpd.conf 檔案中包含所有 VirtualHost 通用的指令選項。將 Apache 服務的所有主機虛擬化。
從主 httpd.conf 檔案中刪除 DocumentRoot 和區塊。僅將它們放在 httpd-vhosts.conf 檔案中。