httpd-.tar.gz
subversion-.tar.gz
TortoiseSVN-.7501-win32-svn-1.4.0.msi
服务器端安装
以root身份执行
# tar xzvf httpd-.tar.gz
# cd httpd-
安装apr
# cd srclib/apr
# ./configure --prefix=/usr/local/apr
# make
# make install
安装apr-util
# cd ../apr-util/
# ./configure --prefix=/usr/local/apr-util --with-apr=/usr/local/apr
# make
# make install
# cd ../../
安装apache
#./configure --prefix=/usr/local/apache2 --enable-so --enable-rewrite --enable-mods-shared=most --with-apr=/usr/local/apr --with-apr-util=/usr/local/apr-util
# make
# make install
安装Subversion
#tar zxvf subversion-.tar.gz
#cd subversion-
#./configure --prefix=/usr/local/svn --with-apxs=/usr/local/apache2/bin/apxs --with-apr=/usr/local/apr --with-apr-util=/usr/local/apr-util
#make clean
#make
#make install
SVN服务器安装结束,确认httpd.conf文件中有以下内容(安装SVN后自动加的):
LoadModule dav_svn_module modules/mod_dav_svn.so
LoadModule authz_svn_module modules/mod_authz_svn.so
安装window客户机端
直接安装TortoiseSVN--UNICODE_svn-1.1.1.msi,方法同一般软件安装相同。
创建SVN中央仓储与test仓库
# ./svnadmin create /usr/local/svnrepo
# chown –R nobody /usr/local/svnrepo(与apache的httpd.conf的用户一致)
进入/usr/local/svnrepo看看是否多了如下文件:conf/ dav/ db/ format hooks/ locks/ README.txt,如果是说明Subversion安装成功了
# ./svnadmin create /usr/local/svnrepo/test
# chown –R nobody /usr/local/svnrepo/test
建立认证文件
# htpasswd –c /etc/.htpasswd usename
然后系统会提示输入两次用户密码,该用户名和密码会保存在.htpasswd文件中
接着在/usr/local/apache2/httpd.conf中加入(认证文件和权限文件):
<Location /svn >
DAV svn
SVNParentPath /usr/local/svnrepo
AuthType Basic
AuthName “Subversion repository”
AuthUserFile /etc/.htpasswd
#for access
AuthzSVNAccessFile /usr/local/svnrepo/conf/svnserve.conf
#Satisfy Any
Require valid-user
</Location>
设置访问权限
# cd /usr/local/svn/conf
vi svnserve.conf
[/] //所有仓库的根目录下
admin = rw
[test:/] //test仓库的根目录下的访问权限
user1 = rw //test仓库user1用户具有读和写的权限
user2 = r // test仓库user2用户具有读的权限
[test:/src] // test仓库下目录src下的访问权限
user2 = rw //test仓库user2用户具有读和写的权限
user1 = //test仓库user1没有任何权限
#[/] // 这个表示在所有仓库的根目录下
#* = r // 这个表示对所有的用户都具有读权限
#[groups] // 这个表示群组设置
#developers = harry, sally // 这个表示某群组里的成员
#[svn1:/]
#@ developers = rw // 如果在前面加上@符号,则表示这是个群组权限设置
设置完成后,重启apache,就可以通过http://IP/svn/test来访问test仓库。