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。