0

一天中的好时光!我在 Windows 7 上成功使用了 apache + php,但现在我决定制作几个虚拟主机。我在 apache config 的末尾添加了这样的部分:

<virtualhost> 
ServerAdmin yourmail@domain.com 
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时会 出现这样的错误:

error Forbidden 您无权访问此服务器上的 /test.php。

同时我仍然可以毫无问题地访问 localhost。我还更改了文件夹的权限。我应该更改哪些 apache 设置来解决此问题?

4

2 回答 2

0

首先,配置中的所有空格是什么?例如"c :/ apache2/web/jiifirst/htdocs"。那不是您的真实配置;你是怎么剪切和粘贴这个的?

其次,您以http://127.0.0.2. 是的,那是服务器的 IP 地址,但在 HTTP(至少 1.1 和更高版本)中,地址不仅仅意味着识别机器上的网卡。它标识一个网站域。该地址进入协议,Web 服务器可以决定向客户端提供哪个网站(在相同的 IP 地址上)。

VirtualHost定义了一个域名为jiifirst. 这与基于 IP 的访问不匹配127.0.0.2

VirtualHost不过,反正还是可以匹配的。您VirtualHost缺少地址和端口匹配字段,但如果它看起来像这样:

<VirtualHost *:80>

这意味着可以将VirtualHost基于 IP 的请求从任何地址匹配到端口 80。如果 Apache 在任何VirtualHost条目中都找不到与主机名完全匹配的内容(并且您没有特殊的默认 VirtualHost),它将选择按出现顺序排列的第一个与地址匹配的。

缺少地址<VirtualHost>可能是事情没有发生的原因(如果它们确实是真实的,也可能是空间)。

于 2012-03-12T04:28:33.127 回答
0

我的问题的真正解决方案是在部分

选项 FollowSymLinks AllowOverride None 命令拒绝,允许拒绝所有

我只需要将拒绝从所有更改为允许从所有现在一切都很好!

于 2012-03-14T05:35:26.473 回答