linux下Subversion服务架设
 

2009-06-12 作者:狂风 来源:狂风的blog

 
一、工具准备
Apache Web服务器:httpd-2.2.4.tar.bz2
Subversion源码包及依赖包:subversion-1.4.3.tar.bz2,subversion-deps-1.4.3.tar.bz2
(下面假设apache和svn源码都解压到了/home/tmp下)
二、安装Apache
Apache的安装就根平时安装Apache没什么两样,都记得要打开dav模块和动态模块选项。安装安装命令如下:
tar xfj httpd-2.2.4.tar.bz2
cd httpd-2.2.4
./buildconf
./configure --enable-dav --enable-so
make
make install
三、安装Subversion
SVN的安装一定要注意:
  • SVN 依赖的APR版本要正确。如果Apache为2.0.x,对应的APR版本应为0.9.x;Apache为2.2.x,对应的APR版本应为1.2.x。 由于subversion-deps包里的APR是0.9.x的,因此编译svn时要删除从deps里解压出来的apr, apr-util,改而使用apache 2.2里提供的。
  • 如果apache不是安装在默认路径,configure必須加上--with-apxs选项,如:./configure --with-apxs=/home/apache2/bin/apxs
安装命令如下:
tar xfj subversion-1.4.3.tar.bz2
tar xfj subversion-deps-1.4.3.tar.bz2
# subversion-deps的文件也会解压到subversion-1.4.3目录中
cd subversion-1.4.3
rm -rf apr
rm -rf apr-util
ln -s /home/tmp/httpd-2.2.4/srclib/apr apr
ln -s /home/tmp/httpd-2.2.4/srclib/apr-util apr-util
./configure && make && make install
安装完成后,查看是否存在文件$APACHE_HOME/modules/mod_dav_svn.so(默认 /usr/local/apache2/modules/mod_dav_svn.so)。另外,如果该机器上以前是装过旧版本的SVN,要把 "/usr/local/lib/libsvn*"文件都删除。
四、在apache中配置svn
创建SVN库:
cd /home/svn
svnadmin create repo1
在Apache 的配置文件httpd.conf中加入以下代码,Apache中就可以配置好一个虚拟主机svn.mydomain.net,并把该域名下的根路径配置给 Subversion。通过AuthzSVNAccessFile和AuthUserFile指令分别配置SVN用户的用户名和密码文件。
<virtualhost *:80>
DocumentRoot /home/svn/htdocs
<directory>
Options Includes
AllowOverride All
Order allow,deny
Allow from all
</directory>

<location />
DAV svn
SVNParentPath /home/svn/svnroot
AuthzSVNAccessFile /home/svn/svnroot/conf/accessfile
Require valid-user
AuthType Basic
AuthName "Subversion System"
AuthUserFile /home/svn/svnroot/conf/passwdfile
</location>

ServerName svn.mydomain.net
DirectoryIndex index.html
</virtualhost>
创建文件/home/svn/svnroot/conf/accessfile:
[groups]
user = jarod
anonymous = guest
[/]
* = r
@user = rw
@anonymous = r
再用htpasswd命令创建/home/svn/svnroot/conf/passwdfile文件:
htpasswd -c /home/svn/svnroot/conf/passwdfile jarod
# 这时会提示输入密码
最后把/home/svn目录的拥有者设为启动apache服务的用户,apache-2.2默认会由daemon用户启动:
chown daemon.daemon -R /home/svn
chmod 777 /home/svn -R
大功告成,通过浏览器或SVN客户端测试http://svn.mydomain.net/repo1

火龙果软件/UML软件工程组织致力于提高您的软件工程实践能力,我们不断地吸取业界的宝贵经验,向您提供经过数百家企业验证的有效的工程技术实践经验,同时关注最新的理论进展,帮助您“领跑您所在行业的软件世界”。
资源网站: UML软件工程组织