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.conf
Listen 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


5. 关联Apache和SVN
5.1. 打开apache配置文件:
#vi /usr/local/apache2/conf/httpd.conf 

5.2. 在httpd.conf中添加SVN关联:
LoadModule dav_svn_module modules/mod_dav_svn.so
LoadModule authz_svn_module modules/mod_authz_svn.so
<Location /svn>
DAV svn
SVNParentPath /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>

5.3. 修改用户和组:
User svnroot    //默认为daemon
Group svn    //默认为daemon


6. 设置SVN用户及权限
6.1. 新建SVN用户及密码:
#cd /usr/local/apache2/bin    //进入apache目录
#htpasswd -c /home/svnroot/repository/authfile john    //新增用户,回车后会提示输入密码,'-c'是创建文件的意思,以后加入用户就不用加'-c'了

6.2. 设置用户权限:
[groups]
admin = john    //admin组的用户为john
dev1 = joe, kate    //dev1组的用户为joe和kate
dev2 = alan, geoff    //dev2组的用户为alan和geoff
docs = 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组有读写权限


7. 测试svn连接
使用IE或SVN工具测试:http://hostname(or ip):88/svn/work
会提示输入用户名密码,输入验证,如果有问题需查apache的log。

猜你喜欢

转载自johnshen0708.iteye.com/blog/1275506
今日推荐