所以我已经安装SVN并使用HTTPD远程存储库。 一切正常,直到我使用密码文件。 这根本不起作用。 Apache的error_log说
(13) Permission Denied: Could not open password file
我已经把passwd文件的chmod设置为777,chown设置为apache,我还将repo和passwd文件的父文件夹设置为chown apache和chmod 777 …
我不知道这是一个权限问题了…请任何帮助!
我从中取出了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 / *,并被拒绝访问它之外.. 。
学过的知识