声明:本教程在centos 32bit 下测试通过完成。如有转载请附出处,并且确保在转载的时候文章copy后的内容一致性,以防误导。
其实一般人搭建svn即可了,之所以加上apache是为了使用https链接来跳过公司的firewall。
首先安装 SVN:
centos下很简单:

1
yum install subversion

安装完成使用

1
svn --version

即可检测是否安装成功。
那么接下来创建你的SVN目录,例如我创建在
/var/www/svn/tmsp 下面,请自行创建自己的目录
执行

1
svnadmin create /var/www/svn/tmsp

来创建你的SVN仓库。会在tmsp目录下建立多个文件, 分别是conf, db,format,hooks, locks, README.txt。

创建完毕可以今次那个apache 整合。

1
yum install apr apr-util httpd httpd-devel subversion mod_dav_svn mod_auth_mysql

在/etc/httpd/conf.d/目录下查看是否存在ssl.conf ,如果没有执行

1
yum -y install mod_ssl

下面来配置SSL

1
2
3
4
5
cd /etc/pki/tls
rm private/localhost.key -f
openssl genrsa 1024 > private/localhost.key
cd certs
make testcert

根据提示来完成配置。
在ssl.conf 配置下开启443端口

#ServerName www.example.com:443
修改为:
ServerName svn.72xit.com:443

去掉前面的# 注释。

然后配置/etc/httpd/conf.d/subversion.conf
根据我上面的配置

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
<location /svn>
DAV svn
SVNParentPath /var/www/svn
#
#   # Limit write permission to list of valid users.
#   <limitexcept GET PROPFIND OPTIONS REPORT>
#      # Require SSL connection for password protection.
SSLRequireSSL
#
AuthType Basic
AuthName "Please Enter password"
AuthUserFile /var/www/svn/tmsp/conf/passwd
AuthzSVNAccessFile /var/www/svn/tmsp/conf/authz
Require valid-user
#   </limitexcept>
</location>

这样就可以通过apache来验证了,剩下的就是给你的SVN添加用户权限。
在tmsp目录下conf 下authz passwd 用来添加权限和用户
eg:
htpasswd passwd xxx
根据提示完成密码。
在authz下添加
[tmsp:/]
用户名=rw

这样很好理解了吧。
重启一下 apache service httpd restart
OK,开始使用你的SVN服务吧。

PS:我一开始在win下commit的时候遇到svn: Can't open file '/var/www/svn/tmsp/db/txn-current-lock': Permission denied
这是因为目录的权限不够,你赋予目录读写权限即可。