规格:Apache 2.24 操作系统:Suse /RedHat /Windows
Windows:Apache httpd Linux:Apache DS(LDAP)
实现Apache Httpd + LDAP + SSO的任务(mod_session.so)
出现如下所述的错误
"Invalid command 'AuthzLDAPAuthoritative', perhaps misspelled or defined by a module not included in the server configuration"
该设置在 apache Httpd 2.22 + LDAP - SSO 中运行,因此根据文档,mod_session 应该与 apache 2.24 一起工作..... :(
有人有什么解决方案吗?
关于karthik
答案1
你应该读一下这个: http://httpd.apache.org/docs/2.4/upgrading.html#run-time
该指令在 2.4 版之后被删除;
答案2
不确定是否是同样的问题,因为我切换到了 2.4 而不是 2.2.24。使用 httpd 2.2.22 时一切正常,使用 2.4.4 时则停止工作。
我正在 httpd.conf 中加载必要的模块:
LoadModule authnz_ldap_module modules/mod_authnz_ldap.so
LoadModule ldap_module modules/mod_ldap.so
我的 Ldap Conf 如下所示:
<Location />
AuthType Basic
AuthName "LDAP Authentication"
AuthBasicProvider ldap file
AuthzLDAPAuthoritative off
AuthLDAPURL "URL"
AuthLDAPBindDN "BindDN"
AuthLDAPBindPassword "BindPassword"
Require valid-user
Order allow,deny
Allow from all
</Location>
错误信息显示:
/opt/httpd/dev/bin/apachectl -f /opt/httpd/UAT/conf/httpd.conf -k start
AH00526: Syntax error on line 60 of /opt/httpd/UAT/conf/vhosts/_hobbit.conf:
Invalid command 'AuthzLDAPAuthoritative', perhaps misspelled or defined by a module not included in the server configuration
make: *** [start] Error 1
我在邮件列表中发现了同样的错误:邮件列表链接
看起来他找到了解决方案:解决方案链接
我已经按照他说的进行了编译,使用我自己的 apr/apr-util 和所有 ldap 标志(--with-ldap、--enable-ldap,...),但我仍然无法让它工作。
也许有人能弄清楚吗?
编辑/解决方案:好的。从我的虚拟主机配置中删除“AuthzLDAPAuthoritative off”有效。看来这个设置在 2.4 版中被删除了。
2.2 mod_authnz_ldap 文档中存在设置,但 2.4 mod_authnz_ldap 文档中不存在设置。(由于声誉不佳,无法发布链接)
不知道您是否可以将其从配置中删除,但我认为之后它应该可以工作。
答案3
看起来你还没有加载authnz_ldap_module
:
LoadModule authnz_ldap_module modules/mod_authnz_ldap.so
答案4
# sudo apt-get install libapache2-mod-authnz-external
..
# a2enmod
..
Which module(s) do you want to enable (wildcards ok)?
*authnz*
Enabling module authnz_external.
Considering dependency ldap for authnz_ldap:
Enabling module ldap.
Enabling module authnz_ldap.
To activate the new configuration, you need to run:
service apache2 restart
..