Windows 7 上的 WAMP 无法启动。阿帕奇错误 "Illegal override option Require"
WAMP on Windows 7 won't start. Apache error "Illegal override option Require"
WAMP 徽标保持橙色,不会变绿。我通过查看服务确定无法启动的是 Apache。但我无法启动它。 MySQL 已启动,运行 正常。
我的 WAMP 运行 好几个星期了。这是今天突然出现的。
这不是 80 端口/Skype 的问题,这有详细记录,因为我可以很好地测试 80 端口,但它没有被使用。
如何进行更深入的故障排除以找出 WAMP apache 无法启动的原因?
好的,在找到一些帮助后,我已经解决了这个问题。这是一个 apache 配置错误。我仍然不确定是什么原因造成的,但如果您遇到这种情况,我会按照以下方式解决它。
通过在 wamp 目录中使用 CMD,我看到错误在 httpd.conf 文件中。我能够在我的代码编辑器中打开该文件(记事本不显示换行符,因此无法阅读),然后我只是删除了有问题的代码。
解决apache配置错误的步骤:
使用命令行 (CMD) 访问 wamp apache 目录(如果需要,使用 x:
将驱动器更改为驱动器 x
)在 \bin\apache\apache2.x.x\bin
运行 httpd.exe -S
要求 apache 验证 httpd.conf 文件
返回的读取错误(如果有)。确定行号、文件和错误。
在代码编辑器中打开 apache2.x.x\conf\httpd.conf 文件,转到有问题的行,然后更改违规代码。
在这种情况下,验证例程返回:
AH00526: Syntax error on line 241 of V:/wamp/bin/apache/apache2.4.9/conf/httpd.conf:
Illegal override option Require
我打开我的 httpd.conf 文件,在第 240 行找到:
<Directory />
AllowOverride all Require all denied
</Directory>
我简单地删除了 Require all denied
位,保存了 conf 文件,启动了 Apache,瞧。我不明白该选项的目的是什么,或者它是如何设置的,但是 wamp 现在 运行 就像一个魅力,它被删除了。
从你的回答中我看出了你的做法,但实际上是错误的。
那段代码应该是这样的
<Directory />
AllowOverride none
Require all denied
</Directory>
这是设置 Apache 对服务器根文件夹的基本权限的指令,应设置为 denied
。出于明显的安全原因,您首先拒绝访问所有内容,然后仅允许访问实际上应该允许 Apache 查看的文件夹。
您的问题的可能原因是您使用记事本查看了 httpd.conf,并且在 AllowOverride all
之后以某种方式删除了换行符,使其成为非法参数,即同一行上的 2 个单独指令.
由于某些奇怪的原因,WAMPServer 2.5 发布时带有一些具有 UNIX 行结尾而不是 DOS 行结尾的文件!这就是为什么记事本对它们有问题。
最好的办法是下载 notepad++(免费),它可以处理具有 unix 行结尾的文件。
在名为 "WAMPServer 2.5 release notes and corrections"
的 WAMPServer 论坛上 read through this document 可能会有用
WAMP 徽标保持橙色,不会变绿。我通过查看服务确定无法启动的是 Apache。但我无法启动它。 MySQL 已启动,运行 正常。
我的 WAMP 运行 好几个星期了。这是今天突然出现的。
这不是 80 端口/Skype 的问题,这有详细记录,因为我可以很好地测试 80 端口,但它没有被使用。
如何进行更深入的故障排除以找出 WAMP apache 无法启动的原因?
好的,在找到一些帮助后,我已经解决了这个问题。这是一个 apache 配置错误。我仍然不确定是什么原因造成的,但如果您遇到这种情况,我会按照以下方式解决它。
通过在 wamp 目录中使用 CMD,我看到错误在 httpd.conf 文件中。我能够在我的代码编辑器中打开该文件(记事本不显示换行符,因此无法阅读),然后我只是删除了有问题的代码。
解决apache配置错误的步骤:
使用命令行 (CMD) 访问 wamp apache 目录(如果需要,使用
x:
将驱动器更改为驱动器x
)在 \bin\apache\apache2.x.x\bin运行
httpd.exe -S
要求 apache 验证 httpd.conf 文件返回的读取错误(如果有)。确定行号、文件和错误。
在代码编辑器中打开 apache2.x.x\conf\httpd.conf 文件,转到有问题的行,然后更改违规代码。
在这种情况下,验证例程返回:
AH00526: Syntax error on line 241 of V:/wamp/bin/apache/apache2.4.9/conf/httpd.conf:
Illegal override option Require
我打开我的 httpd.conf 文件,在第 240 行找到:
<Directory />
AllowOverride all Require all denied
</Directory>
我简单地删除了 Require all denied
位,保存了 conf 文件,启动了 Apache,瞧。我不明白该选项的目的是什么,或者它是如何设置的,但是 wamp 现在 运行 就像一个魅力,它被删除了。
从你的回答中我看出了你的做法,但实际上是错误的。
那段代码应该是这样的
<Directory />
AllowOverride none
Require all denied
</Directory>
这是设置 Apache 对服务器根文件夹的基本权限的指令,应设置为 denied
。出于明显的安全原因,您首先拒绝访问所有内容,然后仅允许访问实际上应该允许 Apache 查看的文件夹。
您的问题的可能原因是您使用记事本查看了 httpd.conf,并且在 AllowOverride all
之后以某种方式删除了换行符,使其成为非法参数,即同一行上的 2 个单独指令.
由于某些奇怪的原因,WAMPServer 2.5 发布时带有一些具有 UNIX 行结尾而不是 DOS 行结尾的文件!这就是为什么记事本对它们有问题。
最好的办法是下载 notepad++(免费),它可以处理具有 unix 行结尾的文件。
在名为 "WAMPServer 2.5 release notes and corrections"
的 WAMPServer 论坛上 read through this document 可能会有用