subversion集成apache时的目录权限问题

LunaZhang 2011-10-19

环境:

RHEL 6.1 32位

步骤:

1. yum安装httpd和subversion,以及mod_dav_svn

2. 建立一个用户ci,主目录在/home/ci下

3. 在ci用户下使用svnadmin create repos初始化一个subversion库,这个库位于/home/ci/repos,其目录所有者为ci:ci

4. 修改/etc/httpd/conf.d/subversion.conf,形如

...
<Location /svn>
DAV svn
SVNPath /home/ci/repos
</Location>

问题:

这时候,重启httpd服务,发现通过web并不能正确访问svn,报告这样的错误

<D:error>
<C:error/>
<m:human-readable errcode="13">Could not open the requested SVN filesystem</m:human-readable>
</D:error>

 通过后台日志,发现是apache不能访问读取/home/ci/repos/format这个文件,此时实际上SELinux已经设置为关闭,于是,使用chown -R apache.apache /home/ci/repos 更改svn仓库的目录。发现问题依旧(这个症状很奇怪,/home/ci是属于ci:ci的,但/home/ci/repos是属于apache:apache的,居然httpd集成的svn还是无法读取format文件!)。

找到的解决办法有2,其一:

修改apache的运行用户,在/etc/httpd/conf/httpd.conf中,将User和Group均更改为ci,重新启动apache

其二:

在根处建立一个属于apache用户及组的目录,在此目录下初始化svn仓库,将subversion.conf的配置指向这个目录。

相关推荐