这里,我们采用的安装环境为:
操作系统:Debian
服务器:Apache2
所需软件:subversion subversion-tools libapache2-svn apache2
安装方式为:虚拟主机
一、安装SVN
apt-get install subversion subversion-tools apache2 libapache2-svn
启动SVN
svnserver -d
此进,可以检出源码了
svn checkout svn:///var/svn_repos/codes/test
二、建立日志文件
mkdir /var/log/apache2/subversion/
三、创建Subversion 版本库父目录,以存放版本库
mkdir -p /var/svn_repos/codes/
更改文件夹所有者,不然不能被APache2所访问
chown -R www-data:www-data /var/log/apache2/
四、配置SVN
cd /etc/apache2/site-available
创建一个虚拟主机,名为svn,当然,这个虚拟主机的名字可以根据情况自行决定,复制以下内容
<VirtualHost *:80 >
DocumentRoot /var/svn_repos/codes/ #版本库的路径
ServerName svn.jan.tech #虚拟主机的名称
RedirectMatch ^(/repos)$ $1/ #访问时在虚拟主机名的后面要加上repos
ErrorLog /var/log/apache2/subversion/error.log #错误日志
LogLevel warn #日志级别
CustomLog /var/log/apache2/subversion/access.log combined #访问日志
<Location /repos>
DAV svn
AuthType Basic
AuthName "welcome to subversion repository"
AuthUserFile /var/svn_repos/passwd
#<LimitExcept GET PROPFIND OPTIONS REPORT>
Require valid-user
#</LimitExcept>
SVNParentPath /var/svn_repos/codes/ #如果只有一个版本库,则用SVNPath
SVNListParentPath On
SVNAutoversioning On
SVNReposName "捷安科技 代码版本库"
AuthzSVNAccessFile /var/svn_repos/codes/svnaccess.authz #具体目录权限设定
</Location>
</VirtualHost>
五、建立版本库库
svnadmin create --fs-type fsfs /var/svn_repos/codes/test
其中,test为版本库的名称。
更改版本库的所有者,否则,不能读取。
chown -R www-data:www-data /var/svn_repos/codes/test
六、进入/var/svn_repos/codes/目录下,编辑svnaccess.authz文件,该文件为权限访问控制,可以控制用户访问哪个目录。
[groups]
elec = zhangsan,lisi
est = wangwu,maliu
finance = zhaoqi,hujiu
### End generated content: LDAP Groups to Subversion Authz Groups Bridge ###
[/]
* = r
hujiu = rw
[test:/]
* = r
zhangsan = rw
@est = rw
七、创建密码文件/var/svn_repos/passwd,该文件控制用户能否登陆apache2。
使用命令:htpasswd -c /var/svn_repos/passwd zhangsan 然后会提示输入密码。
再建立用户时把-c参数去了就行。
htpasswd /var/svn_repos/passwd lisi
八、重启下apache2
/etc/init.d/apache2 restart
如果我们没有DNS服务器(DNS服务器的架设,请参照Debian下DNS服务器的架设),可以直接修改hosts文件,加入
IP 域名
如:
10.0.0.230 svn.jan.tech
注:windows 的Hosts文件在c:\windows\system32\driver\etc目录下
Linux的hosts文件在/etc/hosts
然后打开浏览器,输入 http://svn.jan.tech/test