2012-03-04 58 views
0

一天的美好時光! 我在Windows 7上成功地使用了apache + php,但現在我希望製作幾個虛擬主機。我添加到Apache配置結束這樣的部分:無法在Windows 7下的apache2上配置虛擬主機 - 返回403錯誤

<virtualhost> 
ServerAdmin [email protected] 
ServerName jiifirst 
DocumentRoot "c :/ apache2/web/jiifirst/htdocs" 
ScriptAlias ​​/ cgi-bin/"c :/ apache2/web/jiifirst/cgi-bin /" 
ErrorLog c :/ apache2/web/jiifirst/logs/error.log 
CustomLog c :/ apache2/web/jiifirst/logs/access.log common 
</ virtualhost> 

然後創建適當的文件夾。然而,當我嘗試調用出現http://127.0.0.2/test.php 這樣的錯誤:

錯誤紫禁城 您沒有權限訪問此服務器上的/ test.php的。

與此同時,我仍然可以訪問本地主機沒有問題。我也更改了文件夾的權利。我應該改變哪些apache設置來解決這個問題?

+0

Apache。 Windows 7.沒有迴應。驚訝嗎? – Kaz 2012-03-12 04:12:51

+0

我很驚訝! – 2012-03-14 05:33:06

回答

0

首先,配置中的所有空間是什麼?例如。 "c :/ apache2/web/jiifirst/htdocs"。這不是你真正的配置;你是如何剪切和粘貼的?

其次,你正在與服務器通話爲http://127.0.0.2。是的,這是服務器的IP地址,但是在HTTP(至少1.1和更高版本)中,地址不僅僅是識別計算機上的網卡。它確定了一個網站域名。地址爲該協議,並且網絡服務器可以決定向客戶端提供哪個網站(在相同的IP地址)。

您的VirtualHost定義了一個網站,其域名是jiifirst。這與基於IP的訪問127.0.0.2不匹配。

不管怎樣,仍然可以匹配VirtualHost。你VirtualHost缺少的地址和端口匹配字段,但如果它看起來是這樣的:

<VirtualHost *:80> 

這意味着它有可能爲VirtualHost到如果Apache無法從任何地址的基於IP請求匹配到端口80。找到任何VirtualHost條目中的主機名稱的完全匹配(並且您沒有特殊的默認VirtualHost),它將按照地址上匹配的外觀順序選擇第一個。

缺少<VirtualHost>上的地址可能是事情沒有發生的原因(也可能是空間,如果它們確實是真的)。

0

我的問題的真正解決方案是在第

有FollowSymLinks 設置AllowOverride無 訂單拒絕,允許 所有

我不得不改變所有拒絕所有 到允許拒絕現在一切都很好!