我原来在apache 2.0.53下用的认证模块没有问题,服务器升级到apache 2.2后,认证出现问题了,一直提示密码不正确,即使我重新用htpasswd设置了密码也不可以。
我原来的.htaccess设置:
authname “mysql of heihe”
authtype basic
authuserfile /etc/apache2/users
require valid-user
google后发现是apache2版本变化的原因,认证模块发生了很大变化。需要激活authz_user模块。
相对于2.0,2.2的身份和权限控制更加精细
当然这也是一大进步刚刚升级到2.2的时候可能会不太习惯
原来的配置文件很可能出错
对于普通大众最常用的AuthType Basic + htpasswd格式密码文件来说
以下模块是需要加载的
auth_basic,用于basic方式认证
authn_file,提供基于文件的认证方式,其他还有dbm,dbd,ldap等。
在配置中加入AuthBasicProvider file启用这个module
由于这也是默认的Basic认证方式
所以也可以不写这行配置,和 Apache 2.0 的配置文件兼容
authz_user,Require valid-user这样的配置需要这个module
加载了这些module之后基本就可以和以前一样工作了authn是认证支持模块
共有authn_alias,authz_anon,authz_dbd,authz_dbm,authz_default,authz_file六个模块
具体用法可以查看官方网站的解释authz是授权支持模块
共有authz_dbm,authz_default,authz_groupfile,authz_host,authz_owner,authz_user六个模块authnz是认证和授权做在一起,只有一个authnz_ldap
auth_basic,然后用AuthBasicProvider ldap调用另外,授权支持模块中
authz_host提供了Order allow,deny的基于主机名,IP或者环境变量认证
Order Allow,Deny
Allow from 10.10.1.0/24, feuvan.net
Deny from all至于那个authz_svn是给svn认证用的。。
不知道是什么的就忽略我说的话吧
我就是在升级的时候svn和trac出错才来折腾的
发表回复