2012-03-04 57 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无 订单拒绝,允许 所有

我不得不改变所有拒绝所有 到允许拒绝现在一切都很好!