所有通过 WAMP 的 localhost 页面都被阻止了吗?
Posted
技术标签:
【中文标题】所有通过 WAMP 的 localhost 页面都被阻止了吗?【英文标题】:All localhost pages via WAMP blocked? 【发布时间】:2011-09-11 20:47:24 【问题描述】:我一直在尝试修复一个奇怪的 403 Forbidden 错误,当我尝试通过 localhost 上的 WAMP 访问我的一个页面时。
在添加规则以通过 apache 使用的 Windows 防火墙打开端口 80 后,我注意到这并不能解决我的问题,而是通过 localhost 为我的所有页面提供 403 禁止。
删除我刚刚制定的规则(导致此问题开始)并不能解决它。禁用 Windows 防火墙并不能修复它。重新启动我的计算机并不能修复它。有什么想法吗?
编辑2: 我可以去 localhost/phpmyadmin 寻找任何有价值的东西。
EDIT3:我的 httpd.conf 的内容: http://www.mediafire.com/?p54a53443efkefs
【问题讨论】:
你想转到什么样的页面? @anirudh:只是一个存储在 C:/wamp/www/ 中的基本 php 页面,当我尝试通过 localhost/ 访问它时,我 www/ 文件夹中的每个页面都会给我一个 403 Forbidden 跨度> 目录下是否有.htaccess文件? 您是否检查了 error_log 以检查 apache 对此错误的看法?在这里给我们一些工作。 您很可能在您的<Directory C:/wamp/www>
指令中有 deny from all
。将其更改为 allow from all
或 allow from 127.0.0.1
应该可以解决问题。我也提交了答案。
【参考方案1】:
您需要 3 个步骤,请确保这 3 件事
1.
首先 TCP 和 UDP 数据包必须允许端口 80 和 443。为此,请在 Windows 防火墙上为端口 80 和 443 为 TPC 和 UDP 创建 2 个入站规则。 (或者如果允许入站规则,您可以禁用整个防火墙进行测试,但永久解决方案)
2.
如果您使用的是 WAMPServer 3,请参阅答案底部
对于 WAMPServer 版本
您需要更改 Apache 上的安全设置以允许从其他任何地方进行访问,因此请编辑您的 httpd.conf
文件。
将此部分更改为:
# onlineoffline tag - don't remove
Order Deny,Allow
Deny from all
Allow from 127.0.0.1
Allow from ::1
Allow from localhost
收件人:
# onlineoffline tag - don't remove
Order Allow,Deny
Allow from all
如果“全部允许”行不适合您,请使用“要求全部授予” 那么它会为你工作。
WAMPServer 3 有不同的方法
在 WAMPServer 的第 3 版和 > 中,为 localhost
预定义了一个虚拟主机,因此根本不要修改 httpd.conf
文件,保持原样。
使用菜单编辑httpd-vhosts.conf
文件。
应该是这样的:
<VirtualHost *:80>
ServerName localhost
DocumentRoot D:/wamp/www
<Directory "D:/wamp/www/">
Options +Indexes +FollowSymLinks +MultiViews
AllowOverride All
Require local
</Directory>
</VirtualHost>
修改为
<VirtualHost *:80>
ServerName localhost
DocumentRoot D:/wamp/www
<Directory "D:/wamp/www/">
Options +Indexes +FollowSymLinks +MultiViews
AllowOverride All
Require all granted
</Directory>
</VirtualHost>
希望您已经为您的项目创建了一个虚拟主机,而不是为您的站点使用wamp\www
文件夹。在这种情况下,不要理会 localhost 定义,只对您的虚拟主机进行更改。
3. 进行此更改后不要忘记重新启动 Wamp 或 Apache 的所有服务
【讨论】:
【参考方案2】:在启动 WAMP 后,我发现对我有用的是,左键单击任务栏上显示的 WAMP 图标,然后单击快速管理下的启动所有服务。然后我就可以使用 IE 访问 localhost。我什至回到 httpd.config 文件并将其设置回默认值。
希望这会有所帮助。
【讨论】:
【参考方案3】:尝试更改 httpd.conf 中的行
Allow from 127.0.0.1
或
Allow from all
参考the documentation
【讨论】:
httpd.conf 中包含任何“允许”语句的任何行都是“全部允许”。 我讨厌听起来迟钝,但是当您更改 httpd.conf 时,您正在重新启动 Apache 以让更改发生,对 @Tory Waterman 是否正确? @Matty:绝对是一个比它应该发生的错误更频繁的错误,但不幸的是,在这种情况下不是这样。 @anirudh:好吧,如果我这样做了,我怎么知道我正在运行哪个 WAMP 实例? localhost/ 的任何地址不会与其他副本模棱两可吗? 应该可以,因为 php 测试脚本在全新安装的 WAMP 上完美运行。 @anirudh:重新安装。仍然是 403。【参考方案4】:简单的解决方案。只需以管理员身份运行 Wamp 安装文件,它们就会像魅力一样工作:)
【讨论】:
Elmizan 下午好 - 如果有已建立 reputation 的用户提出问题,用这种类型的建议发表评论可能更合适(除非您非常有信心这是解决方案)而不是而不是将其作为答案提交:) @Slukehart -- 该帖子还没有离开 cmets 的声誉。但是,由于这个问题确实有一个可接受的答案,我会认为额外的尝试是不合适的。【参考方案5】:Marco Tamanti 解决方案对我有用:
Allow from 127.0.0.1
Allow from ::1:
所以我有:
<Directory "c:/wamp/www/">
Options Indexes FollowSymLinks
AllowOverride all
Order Deny,Allow
Deny from all
Allow from 127.0.0.1
Allow from ::1:
</Directory>
【讨论】:
你遇到了问题。它发生在 Win8 上。 Win8 似乎默认使用 IPv6,而 WAMP 配置默认设置为 IPv4。所以它产生了冲突。【参考方案6】:这可能是 ipv6 问题。所以在你的 httpd.conf 添加你的 ipv6 本地地址:
变化:
Allow from 127.0.0.1
到:
Allow from 127.0.0.1
Allow from ::1:
【讨论】:
你遇到了问题。它发生在 Win8 上。 Win8 似乎默认使用 IPv6,而 WAMP 配置默认设置为 IPv4。所以它产生了冲突。【参考方案7】:在 httpd.conf 中,找到以下部分并确保它们正确:
DocumentRoot "C:/wamp/www"
<Directory />
Options None
AllowOverride None
Order deny,allow
Deny from all
</Directory>
<Directory C:/wamp/www>
Options None
AllowOverride All
Order allow,deny
Allow from all
</Directory>
这些是我在安装中使用的设置,它们工作正常。如果您进行任何更改,请确保重新启动 Apache。
如果您仍然遇到问题,请使用您的 httpd.conf 更新您的原始问题。
编辑:
这很笨拙,我只是在这里抓住稻草,但请尝试向您的虚拟主机添加一个新条目:
<VirtualHost *:80>
DocumentRoot "C:/wamp/www"
ServerName localhost
</VirtualHost>
【讨论】:
仍然是 403。我的 httpd.conf 在我的 OP 中通过 mediafire 链接到。 我将您的确切 httpd.conf 放入我的安装中,并且没有任何问题。你能发布你的 httpd-vhosts.conf 吗?尝试将其放在 pastebin.com 而不是 MediaFire。 @s992:给你。 pastebin.com/raw.php?i=j0nYBA4Q BTW,刚刚重新安装了 WAMP... 仍然是 403。 vhosts 文件看起来不错。编辑了我的答案以尝试另一件事。确保每次更改后都重新启动 Apache。 自己遇到了这个问题,所以作为脚注,我在不同的机器上安装了 64 位版本的 wamp 和 32 位版本。 32 位版本遇到了这个问题,但 64 位版本很好。似乎 64 位版本的默认设置是:'Order Allow, Deny' 'Allow from all' 但 32 位默认设置为:'Order Deny,Allow' 'Deny from all' 'Allow from 127.0.0.1 ' 将 64 位设置复制到 32 位对我有用。【参考方案8】:您的“全部拒绝”是导致 403 错误的原因。您发布的设置用于阻止所有流量,目的是稍后允许特定流量。如果您从不允许特定流量,您将永远无法正常工作。
对于您的 404 错误,请确保您使用的是正确的路径,并且您的 apache 错误日志中没有错误。
http://httpd.apache.org/docs/current/mod/core.html#directory
【讨论】:
我不明白我的 httpd.conf 中具体需要什么。我已经尝试了很多不同的变体,就像你提到的链接中的那个,但仍然没有。以上是关于所有通过 WAMP 的 localhost 页面都被阻止了吗?的主要内容,如果未能解决你的问题,请参考以下文章
在 WAMP 上安装虚拟主机后无法访问默认 localhost
为啥 http://localhost/ 不使用 WAMP 加载任何内容?