一 下载subversion
wget http://subversion.tigris.org/downloads/subversion-1.6.1.tar.gz
wget http://subversion.tigris.org/downloads/subversion-deps-1.6.1.tar.gz
svn的官方网址是http://subversion.tigris.org
上面二个压缩文件解压后会放到同一个文件下,不要另建文件夹
二 安装apache
参见
三 安装zlib
cd /usr/local
wget http://zlib.net/zlib-1.2.5.tar.gz
tar -xvzf zlib-1.2.5.tar.gz
cd zlib-1.2.5
./configure
make
make install
cd /usr/local
ln -s zlib-1.2.5 zlib
四 安装openssl
#wget http://www.openssl.org/source/openssl-1.0.0a.tar.gz
#tar -zxvf openssl-1.0.0a.tar.gz
#cd openssl-1.0.0a
#./config
#./config -t
#make depend
#make
#make test
#make install
安装之后会在/usr/local下生成一个ssl目录
设置环境变量,在/etc/profile的PATH中增加如下内容:
PATH=/usr/local/ssl/bin:/sbin/:$PATH:/usr/sbin
export PATH
四 安装svn
假设apache安装在/usr/local/apache2下
cd subversion-1.6.1
./configure --prefix=/usr/local/svn --with-apxs=/usr/local/apache2/bin/apxs --with-apr=/usr/local/apr --with-apr-util=/usr/local/apr-util --with-openssl=/usr/local/ssl --with-zlib=/usr/local/zlib
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
五 配置Subversion
创建SVN仓储
假设svn仓储设在目录/usr/local/svnrepo
./svnadmin create /usr/local/svnrepo/projectName #项目名称
chown –R apache /usr/local/svnrepo(与apache的httpd.conf的用户一致)
进入/usr/local/svnrepo/projectName 看看是否多了如下文件:conf/ dav/ db/ format hooks/ locks/ README.txt,如果是说明Subversion安装成功了
建立认证文件
htpasswd –c /etc/.htpasswd usename
然后系统会提示输入两次用户密码,该用户名和密码会保存在.htpasswd文件中
接着在/usr/local/apache2/httpd.conf中加入(认证文件和权限文件):
<Location /repository>
DAV svn
SVNParentPath /usr/local/svnrepo
AuthType Basic
AuthName “Subversion repository”
AuthUserFile /etc/.htpasswd
#for access
AuthzSVNAccessFile /usr/local/svnrepo/authz
#Satisfy Any
Require valid-user
</Location>
设置访问权限
# cd /usr/local/svnrepo/
vi authz.conf
#[groups] // 这个表示群组设置
#developers = harry, sally // 这个表示某群组里的成员
[/] //所有仓库的根目录下
admin = rw
[projectName:/] //projectName仓库的根目录下的访问权限
user1 = rw //projectName仓库user1用户具有读和写的权限
user2 = r // projectName仓库user2用户具有读的权限
#* = r // 这个表示对所有的用户都具有读权限
#@ developers = rw // 如果在前面加上@符号,则表示这是个群组权限设置
设置完成后
启动svn
svnserve -d -r /usr/local/svnrepo
再重启apache,就可以通过http://IP/repository/projectName来访问projectName仓库。
之后修改svn配置文件不用重启svn