45

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

/etc/apache2/apache2.conf 第 162 行的语法错误:无效的命令“Order”,可能拼写错误或由未包含在服务器配置操作“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-failed/

我得到错误:

模块 authz_host 不存在!

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

4

5 回答 5

79

我刚刚从 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

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

于 2016-02-08T08:09:35.913 回答
25

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

a2enmod mod_access_compat
service apache2 restart
于 2015-01-15T04:56:06.863 回答
24

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

LoadModule access_compat_module modules/mod_access_compat.so
LoadModule authz_host_module modules/mod_authz_host.so
于 2015-08-05T09:52:16.160 回答
18

您需要启用该authz_host模块。这是关于该模块的 Apache 文档。

我不确定您使用的是什么 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
...
于 2013-10-01T20:41:29.797 回答
0

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

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

如果您从源代码编译 Apache2.4,那么您可以通过使用构建时配置选项(完整列表在这里)遵循相同的指导。

于 2018-02-20T12:45:56.193 回答