1 概述
本文详细描述了Ubuntu环境下,基于apache2的SVN服务器的搭建过程。
2 安装Ubuntu 11.10服务器
可以是Ubuntu 11.10 Server或者是Desktop。
本教程以root账户作为本服务器日常管理帐户。
另外,为了方便后续的说明,假设服务器的ip地址为192.168.1.100。
安装完成后,需要先运行更新管理器,以获得最新的源列表。
3 安装Apache服务器
在新立得软件包管理器里面,搜索apache2并选择安装Apache2,libapache2-svn。
安装完成后,确认能通过http访问http://192.168.1.100。
正常情况下,会得到如下界面:
说明apache已经正常工作了。
4 创建SVN服务器
4.1 安装SVN
在新立得软件包管理器里面,搜索subversion,并选择安装subversion,subversion-tools。
安装好之后,进入下一步。
4.2 增加组
sudo addgroup subversion
sudo usermod -G subversion -a www-data
sudo usermod -G subversion -a root
当然,修改组也可以直接修改组文件: sudo vi /etc/group。
然后需要注销(我都是直接重新启动)再登录以便能够真正成为subversion 组的一员。
4.3 创建SVN仓库
现在执行下面的命令
# cd /home
# sudo mkdir svn
# sudo chown -R www-data:subversion svn
# sudo chmod -R g+rws svn
最后的一条命令赋予组成员对所有新加入文件仓库的文件拥有相应的权限。
下面的命令用于创建SVN 文件仓库:
#sudo svnadmin create /home/svn
4.4 配置Apache服务器
先备份一下Apache2的配置文件,执行如下命令:
# sudo cp -R /etc/apache2 /etc/apache2_bak
通过WebDAV 协议访问SVN 文件仓库,您必须配置您的Apache 2 Web 服务器。
您必须加入下面的代码片段到您的/etc/apache2/mods-available/dav_svn.conf中:(加在文件最后面即可)
<Location /svn >
DAV svn
SVNPath /home/svn
AuthType Basic
AuthName "welcome to subversion repository"
AuthUserFile /etc/subversion/passwd
#<LimitExcept GET PROPFIND OPTIONS REPORT>
Require valid-user
#</LimitExcept>
</Location>
如果需要用户每次登录时都进行用户密码验证,请将<LimitExcept GET PROPFIND OPTIONS REPORT>与</LimitExcept>两行注释掉。
当您添加了上面的内容,您必须重新启动Apache 2 Web 服务器,请输入下面的命令:
sudo /etc/init.d/apache2 restart
接下来,您需要创建/etc/subversion/passwd 文件,该文件包含了用户授权的详细信息。
要添加用户,您可以执行下面的命令:
sudo htpasswd -c /etc/subversion/passwd admin
它会提示您输入密码,当您输入了密码,该用户就建立了。
您可以通过下面的命令来访问文件仓库:
你还可以继续创建其他用户,但是不能再用-c选项了,因为-c选项表示创建一个新的用户授权文件,一旦选用,原有的授权文件就被覆盖了。
sudo htpasswd /etc/subversion/passwd user_name
此时,应该就可以通过web方式访问svn服务器了。
在浏览器的地址栏输入
http://192.168.1.100/svn/会弹出用户验证的窗口:
然后就可以通过svn命令或客户端进行响应的svn操作了。