当使用本地IP地址访问本地Web服务器时,Apache 403禁止错误

尝试浏览存储在本地Web服务器(Apache 2.2)上的页面时,我遇到了一个奇怪的问题。 当我浏览到本地主机或127.0.0.1端口80时,这些页面按预期提供。但是,当我尝试通过引用本地IP地址(192.168.xx)浏览到相同的页面时,收到HTTP 403(禁止)错误。 本质上, http://localhost:80可以工作,但是192.168.xx:80并不能指定本地机器的IP地址。 你可能会想“谁在乎,只用localhost”。 但是,这是解决问题的第一步,为什么我无法从LAN的不同主机上远程访问这些页面。

我假设这不能成为防火墙的问题,因为我只连接到本地计算机。 即便如此,我确认了没有iptables规则可能会有效果。

我检查了Apache错误日志和相应的相关行是:

[Sat Oct 19 07:38:35 2013] [error] [client 192.168.xx] client denied by server configuration:/ var / www /

我检查了大多数的Apacheconfiguration文件,他们似乎没有什么不同,你所期望的默认安装。 我在apache2.conf中看不到任何问题,而且httpd.conf是一个空文件。 这是/ etc / apache2 / sites-enabled / 000-default的摘录:

 <VirtualHost *:80> ServerAdmin webmaster@localhost DocumentRoot /var/www <Directory /> Options FollowSymLinks AllowOverride None </Directory> <Directory /var/www/> Options Indexes FollowSymLinks MultiViews AllowOverride All Order allow,deny allow from all </Directory> 

任何见解,我可以看看旁边find一个解决scheme?

提前致谢。

按照要求。

接下来要检查你的httpd.conf / vhost是否正确,是在目录中find的.htaccess文件。

首先应用Httpd.conf / vhost,然后被请求文件夹中的.htaccess取代(首先由httpd.conf / vhost允许)。 所以我的理论是有一个规则在导致权限错误。

根据您的描述,我假设您使用的是基于Debian的系统。 我想httpd是不是听你192.168.xx的IP地址。 它只在本地主机上侦听。 您可以使用以下命令来validation它。

netstat -tulpn | grep:80

我想你会在输出中看到127.0.0.1:80。 如果是,则检查/etc/apache2/ports.conf文件。 您应该在文件中使用Listen 80来要求httpd监听所有IP地址。 请参阅以下链接。

http://httpd.apache.org/docs/2.2/bind.html http://httpd.apache.org/docs/2.2/mod/mpm_common.html#listen