我正在使用CentOS
昨晚我换了服务器。
我的AuthUserFile
文件有问题。
我总是被封锁。 我确信:
路径是真正的路径:
AuthUserFile /home/rootvideo/.htpasswd
/home/rootvideo/.htpasswd
和.htaccess
文件具有0644
权限。
httpd.conf
在所有文件夹中设为AllowOverride All
。
所有mod_auth
都已加载。
LoadModule authn_file_module modules/mod_authn_file.so
LoadModule authn_alias_module modules/mod_authn_alias.so
LoadModule authn_anon_module modules/mod_authn_anon.so
LoadModule authn_dbm_module modules/mod_authn_dbm.so
LoadModule authn_default_module modules/mod_authn_default.so
LoadModule authnz_ldap_module modules/mod_authnz_ldap.so
有什么想法吗?
答案 0 :(得分:4)
供将来参考:
将文件chmodd到0660的父目录为0755,文件的所有者应该是apache用户。对于debian变体(ubuntu),这是www-data。对于CentOS它的apache。
chmod 0660 /mylocation/.htpasswd
chmod 0775 /mylocation
# centOS
chown apache:apache /mylocation/.htpasswd
# ubuntu
chown www-data:www-data /mylocation/.htpasswd
找到您需要的用户:
grep -e '^User' /etc/apache2/apache2.conf
grep -e '^User' /etc/httpd/conf/httpd.conf
答案 1 :(得分:0)
我刚遇到同样的问题。在我的情况下,我在我的配置中输入了一个拼写错误并编写了AuthType而不是AuthName。因此,AuthType被无效值覆盖。对于遇到此问题的其他人,值得仔细检查您的conf文件中是否有任何不正确的AuthType指令。
答案 2 :(得分:0)
只需要在此处添加我的经验。就我而言,我正在开发最近启用了SELinux的Centos服务器。我在.htpasswd文件中获得了权限被拒绝的错误,即使所有权限都设置得如此。
我最终只是禁用了SELinux,因为它只是一个内部服务器,但最好的解决方案当然是更改SELinux设置以允许对apache webuser读取此文件。
答案 3 :(得分:0)
我遇到了同样的问题,我的问题来自一个"隐形角色"。
我删除了AuthUserFile
的整行,并再次写了(这一次,不是复制粘贴),它已经修好了!
答案 4 :(得分:0)
我的问题是我在该部分中有Require all granted
导致该目录未被任何密码保护。
删除后,密码验证工作正常。
注意:我在ubuntu的apache2 2.4.7上使用WebDAV和密码验证