centos+apahce+subversion安装配置

由于工作需要,花了一天半的时间配置svn服务,之间遇到了许多的问题,不过总算是大功告成了。

首先说一下系统环境,服务器端使用apache+subversion配置,客户端就使用windows下常用的tortoisesvn。版本都使用最新的,这样比较配套,在官网上都有它们匹配的介绍。因为在网上看到有说版本不匹配会产生许多的问题,因此就选最新的了。

在centos下面安装了subversion之后,就是参数的配置。网上有很详细的说明,大概的意思是说subversion的使用有两种方式,一种是使用subversion的svnserver直接配置,一种是通过apache加载模块使用,这样就只配置apache的httpd.conf就可以了。下面贴上我的参数设置信息:

LoadModule dav_module         modules/mod_dav.so
LoadModule dav_svn_module     modules/mod_dav_svn.so

<Location /svn/>
   DAV svn
   SVNParentPath /usr/local/svn/
   SVNListParentPath on
   AuthType Basic
   AuthName "Subversion repository"
   AuthUserFile /etc/svn-auth.htpasswd
   #AuthzSVNAccessFile /usr/local/svnaccessfile
   Satisfy all
   Require valid-user
</Location>

参数之中的路径当然是可以自己设置了,里面的AuthUserFile是配置访问用户的,这个网上也有详细的介绍,就不多叙述了。只说一下我遇到的一些问题。

1. 版本库的创建

当使用tortoisesvn去checkout目录时,它所check的应该是版本库里的文件,访问网址是http://服务器IP/httpd.conf文件中的设置的location/版本库的名字。如果网址写得不正确,会出现redirect for url XXXX之类的错误。

2. commit

当你想要提交文件的时候,就是需要在服务器的相应目录中创建文件,显然这是需要权限的。我配置好服务之后checkout,update操作是没有问题的,但是不能commit。apache的error_log给出的记录是Could not begin a transaction [500, #13] Can't open file '/usr/local/svn/repos_1/db/txn-current-lock':Permission denied [500, #13]。通过google,大部分的意见是权限问题,我使用chmod命令更改之后还是不行。后来想到这应该是apache的配置问题引起的,就在网上顺着这个方向又搜索了一番,最终找到了一个解决方案,当你安装apache的时候,软件默认只有/var/www下面有修改的权限,如果想要取消这个限制,就在/etc/sysconfig目录下找到selinux这个文件,打开后将其中的SELINUX的值修改为disabled,然后重启一下系统。就可以正常的commit文件了。

        这两天详细了解了SElinux,其实不用关闭这个模块,可以在目录的属性中的权限中进行修改。将SElinux上下文的属性改为httpd_user_rw_content_t即可。

你可能感兴趣的:(apache,centos,服务器,subversion,redirect,tortoiseSVN)