CentOS Subversion,基本身份validation密码文件不起作用

所以我已经安装SVN并使用HTTPD远程存储库。 一切正常,直到我使用密码文件。 这根本不起作用。 Apache的error_log说

(13) Permission Denied: Could not open password file

我已经把passwd文件的chmod设置为777,chown设置为apache,我还将repo和passwd文件的父文件夹设置为chown apache和chmod 777 …

我不知道这是一个权限问题了…请任何帮助!

UPDATE

我从中取出了SVN,并在我的一个域上实现了一个标准的基本authentication

 <VirtualHost *:80> ServerName domain.com ServerAlias www.domain.com DocumentRoot "/var/www/www.domain.com/public_www" <Directory "/var/www/www.domain.com/public_www"> Options -Indexes Order allow,deny Allow from all AllowOverride All AuthType Basic AuthName "Basic Authentication" AuthUserFile /path/to/authfile.htpasswd Require valid-user </Directory> </VirtualHost> 

我创build了这样的密码文件

 htpasswd -cm /path/to/authfile.htpasswd username password (and retype) 

最后

 service httpd restart 

你看,auth提示符像以前一样工作,但用户名和密码不是! 这是相当令人沮丧的,我已经双重检查了密码文件和父文件夹的所有权限,所有者等,但我仍然得到

 (13) Permission Denied: Could not open password file 

在Apache的error_log中

如果您使用的是Red Hat Enterprise Linux / Centos / Fedora系统,并且您在/ var / www / html目录之外创建htpasswd文件(由apache拥有),那么htpasswd文件的SELinux上下文/标签也会出现问题。 您可以使用传递给ls命令的-Z选项来检查htpasswd的当前上下文/标签。

 ls -Z 

htpasswd文件应该有一个类型的httpd_sys_content_t 。 你可以用这个命令改变它:

 chcon -t httpd_sys_content_t htpasswd 

有关SELinux的重新标记文件的更多信息:

https://wiki.centos.org/HowTos/SELinux#head-0f6390ddacfab39ee973ed8018a32212c2a02199

也许在我的脸上有一个明显的一巴掌

我之前一直把/path/to/authfile.htpasswd放在apaches home文件夹/ var / www的一边,当我把密码文件放在/var/www/svn-auth/*.htpasswd比它的工作。

无论chown(Apache拥有/ svn-auth和.htpasswd文件)它可能被拒绝,因为它可能是apache(作为用户)主文件夹是/ var / www / *,并被拒绝访问它之外.. 。

学过的知识