无效的命令“订单”,可能拼写错误或由未包含在服务器配置中的模块定义失败

Posted

技术标签:

【中文标题】无效的命令“订单”,可能拼写错误或由未包含在服务器配置中的模块定义失败【英文标题】:Invalid command ‘Order’, perhaps misspelled or defined by a module not included in the server configuration failed 【发布时间】:2012-06-11 03:16:41 【问题描述】:

当我尝试启动或重新启动我的 apache 服务器时,我收到以下消息:

/etc/apache2/apache2.conf 第 162 行的语法错误: 无效的命令“订单”,可能拼写错误或由未包含在服务器配置中的模块定义 操作“configtest”失败。 Apache 错误日志可能包含更多信息。 失败!

我尝试在谷歌上找到这个错误并修复它:

http://linuxindetails.wordpress.com/2009/12/02/invalid-command-order-perhaps-misspelled-or-defined-by-a-module-not-included-in-the-server-configuration -失败/

我得到错误:

模块 authz_host 不存在!

那么,有人帮我修复它吗?

【问题讨论】:

【参考方案1】:

如果您在 Gentoo 上运行 Apache2.4,请确保启用以下 USE 标志,这些标志会将 mod_authz_host 构建到 apache 二进制文件中:

apache2_modules_authz_host : 基于主机(名称或 IP 地址)的组授权 apache2_modules_access_compat :基于主机(名称或 IP 地址)的组授权。作为与以前版本的兼容性模块提供。

如果您是从源代码编译 Apache2.4,那么您可以使用构建时配置选项 (complete list here) 遵循相同的指导。

【讨论】:

【参考方案2】:

对于 Apache 2.4,请取消注释/添加以下模块:

LoadModule access_compat_module modules/mod_access_compat.so
LoadModule authz_host_module modules/mod_authz_host.so

【讨论】:

【参考方案3】:

我刚刚从 openSUSE 13.2 升级到 openSUSE Leap 42.1 时遇到了同样的问题。

问题不是 apache2 配置中缺少模块。

问题是从 apache 2.2 升级到 apache 2.4。 “Order”和“Allow”必须改写如下(示例):

在 2.2 中:

Order allow,deny
Allow from all

在 2.4 中:

Require all granted

您可以在此处找到更多选项和示例: Upgrading apache2

【讨论】:

请注意,mod_access_compat 可用于无法升级配置的情况。【参考方案4】:

在 SUSE 12 上,authz_host 已经启用,所以我需要按照 willoller 的评论启用 mod_access_compat:

a2enmod mod_access_compat
service apache2 restart

【讨论】:

在此之后我现在无法访问我的一些项目。我被拒绝访问,403。我不得不再次使用a2dismod mod_access_compat 禁用它并重新启动apache2 服务。请看TheFan1968的答案,它对我有用。【参考方案5】:

您需要启用authz_host 模块。 Here is the Apache documentation on that module.

我不确定您使用的是哪个 Linux 发行版,但这里有一些示例。

Ubuntu:

sudo a2enmod authz_host
sudo service apache2 restart

RHEL:

vi /etc/httpd/conf/httpd.conf

# Make sure this line is not commented:
...
LoadModule authz_host_module modules/mod_authz_host.so
...

【讨论】:

使用 apache 2.4 你可能还需要mod_access_compat 感谢 'willoller' - 'mod_access_compat' 对我有用。 @Jhill,我已按照您的步骤进行操作,发现错误:sudo a2enmod authz_host。你能帮我解决这个问题吗?

以上是关于无效的命令“订单”,可能拼写错误或由未包含在服务器配置中的模块定义失败的主要内容,如果未能解决你的问题,请参考以下文章

Mod_Wsgi 错误:“无效的无效命令 'WSGIScriptAlias',可能拼写错误或由未包含在服务器配置中的模块定义....”

.htaccess:无效命令“允许”,可能拼写错误或由未包含在服务器配置中的模块定义

无效的命令“WSGIScriptAlias”,可能拼写错误或由未包含在服务器配置中的模块定义操作“configtest”失败

Magento <IfVersion',可能拼写错误或由未包含在服务器配置中的模块定义

Apache:无效命令“SSLEngine”,可能拼写错误或由服务器配置中未包含的模块定义

Apache AH00526 语法错误