所有通过 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 allallow 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:Apache 未运行

在 WAMP 上安装虚拟主机后无法访问默认 localhost

为啥 http://localhost/ 不使用 WAMP 加载任何内容?

Wordpress 链接将我引导至 wamp 服务器配置页面(本地主机)

虚拟主机 - 全部重定向到 WAMP 本地主机“主页”页面

使用 WAMP 堆栈修复 localhost/phpmyadmin/ 地址