Linux配置SVN服务器
1. 软件版本
Apache (2.2.21)
SVN (1.7.1)
?
?
2. 安装Apache服务
2.1. 下载Apache安装文件:
#wget http://mirror.bjtu.edu.cn/apache//httpd/httpd-2.2.21.tar.gz
?
2.2. 解压缩tar包:
#tar -zxvf httpd-2.2.21.tar.gz
?
2.3. 配置httpd:
#cd httpd-2.2.21#./configure --enable-dav --enable-so --prefix=/usr/local/apache2/
?
2.4. 编译和安装:
#make#make install
?
2.5. 启动Apache:
#/usr/local/apache2/bin/apachectl start
?
2.6. 启动时若端口被占用,则可修改apache端口:
#cd /usr/local/apache2/conf#vi httpd.confListen 88 //默认值是80,修改成任意一个不被占用的端口
?
?
3. 安装SVN服务器
3.1. 在相应目录建立SVN文件夹,例如:
#mkdir /home/svn#cd /home/svn
?
3.2. 下载Linux下的svn安装包,目前的最新版本为1.7.1,使用wget命令:
#wget http://mirror.bjtu.edu.cn/apache/subversion/subversion-1.7.1.tar.gz
?
3.3. 解压缩tar包,使用tar命令:
#tar -zxvf subversion-1.7.1.tar.gz
?
3.4. 进入解压后的目录:
#cd subversion-1.7.1
?
3.5. 配置svn:
#./configure --with-apxs=/usr/local/apache2/bin/apxs --prefix=/usr/local/subversion --with-apr=/usr/local/apache2 --with-apr-util=/usr/local/apache2 --with-ssl --with-zlib=/usr/local/apache2/lib --enable-maintainer-mode
?
3.6. 编译和安装
#make#make install
?
?
4. 配置SVN
4.1. 创建组和用户,修改用户密码:
#groupadd svn#useradd svnroot -g svn#paswd svnroot
?
4.2. 使用svnroot用户登录:
#su - svnroot
?
4.3. 创建repository及版本库(例如work):
#mkdir /home/svnroot/repository#/usr/local/subversion/bin/svnadmin create /home/svnroot/repository/work
4.4. 修改repository目录权限:
#chmod 700 /home/svnroot/repository
#vi /usr/local/apache2/conf/httpd.conf
LoadModule dav_svn_module modules/mod_dav_svn.soLoadModule authz_svn_module modules/mod_authz_svn.so
<Location /svn>DAV svnSVNParentPath /home/svnroot/repository/ //指定SVN根目录AuthzSVNAccessFile /home/svnroot/repository/authz.conf //指定权限控制文件AuthType Basic //指定认证类型AuthName "Welcome to SVN!" //指定连接欢迎语AuthUserFile /home/svnroot/repository/authfile //指定用户名密码配置文件Require valid-user //需要用户验证</Location>
User svnroot //默认为daemonGroup svn //默认为daemon
#cd /usr/local/apache2/bin //进入apache目录#htpasswd -c /home/svnroot/repository/authfile john //新增用户,回车后会提示输入密码,'-c'是创建文件的意思,以后加入用户就不用加'-c'了
[groups]admin = john //admin组的用户为johndev1 = joe, kate //dev1组的用户为joe和katedev2 = alan, geoff //dev2组的用户为alan和geoffdocs = lindar, iain //docs组的用户为lindar和iain[/]@admin=rw //设置对根目录只有admin组有读写权限*=r //其它组(人)对根目录只有读权限[proj1:/]@dev1=rw //对proj1目录dev1组有读写权限@dev2=rw //对proj2目录dev1组有读写权限[/trunk/doc]@docs=rw //对所有的turnk下的doc目录,docs组有读写权限