半路出家的justow 2009-07-04
目 录
1 概述... 3
2 安装Ubuntu 8.10服务器... 3
3 安装Apache服务器... 3
4 创建SVN服务器... 3
4.1 安装SVN.. 3
4.2 增加组... 4
4.3 创建SVN仓库... 4
4.4 配置Apache服务器... 4
5 配置SSL. 6
6 远程修改svn用户口令... 10
6.1 修改Apache2的配置文件... 10
6.2 安装mod_perl默认包... 10
6.3 相关配置... 10
6.4 获得修改口令的Perl脚本... 11
6.5 修改脚本执行权限... 11
7 设置SVN的权限... 12
7.1 修改Apache的配置... 12
7.2 认证文件的配置... 13
8 参考文献... 14
附录A:远程修改SVN用户口令工具使用方法... 14
附录B:Ubuntu 8.10修改IP地址... 15
附录C:Ubuntu下配置SSH服务... 15
1 概述
本文详细描述了Ubuntu环境下,SVN+Apache+SSL架构的SVN服务器的搭建过程。通过https来访问SVN服务器,采用基于Apache的用户认证管理。用户的权限使用authz配置。
2 安装Ubuntu 8.10服务器
可以是Ubuntu 8.10 Server或者是Desktop。安装过程中创建一个用户名为administrator的系统帐户,作为本服务器日常管理帐户。另外,为了方便后续的说明,假设服务器的ip地址为192.168.19.3。
安装完成后,需要先运行更新管理器,以获得最新的源列表。
3 安装Apache服务器
在新立得软件包管理器里面,搜索apache2并选择安装Apache2,libapache2-svn。安装完成后,确认能通过http访问http://192.168.19.3。正常情况下,会得到如下界面:
说明apache已经正常工作了。
4 创建SVN服务器
4.1 安装SVN
在新立得软件包管理器里面,搜索subversion,并选择安装subversion,subversion-tools。安装好之后,进入下一步。
4.2 增加组
方法如下:
l 在 Ubuntu 菜单上选择“系统->系统管理->用户和组”;
l 切换到“组”标签;
l 点击“添加组”按钮;
l 组名为“subversion”;
l 将您自己(administrator)和“www-data”(Apache 用户)加入组成员中;
l 点击“OK”以确认修改,关闭该程序。
或者直接使用命令,增加组和成员:
sudo addgroup subversion
sudo usermod -G subversion -a www-data administrator
当然,修改组也可以直接修改组文件: sudo vi /etc/group。
然后需要注销(我都是直接重新启动)再登录以便能够真正成为 subversion 组的一员。
4.3 创建SVN仓库
现在执行下面的命令
# cd /home
# sudo mkdir svn
#/usr/local/svn# sudo chown -R www-data:subversion svn
#/usr/local/svn# sudo chmod -R g+rws svn
最后的一条命令赋予组成员对所有新加入文件仓库的文件拥有相应的权限。
下面的命令用于创建 SVN 文件仓库:
#sudo svnadmin create /home/svn
4.4 配置Apache服务器
先备份一下Apache2的配置文件,执行如下命令:
#/usr/local/svn# 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 superman
它会提示您输入密码,当您输入了密码,该用户就建立了。您可以通过下面的命令来访问文件仓库:
你还可以继续创建其他用户,但是不能再用-c选项了,因为-c选项表示创建一个新的用户授权文件,一旦选用,原有的授权文件就被覆盖了。
sudo htpasswd /etc/subversion/passwd user_name
此时,应该就可以通过web方式访问svn服务器了。在浏览器的地址栏输入http://192.168.19.3/svn/会弹出用户验证的窗口:
输入正确的用户名和口令后,就能看到如下界面:
pub_svnserve.conf的 pub_authz.conf的配置文件有非法字符的原因引起,需要查找pub_authz.conf提的非法内容比如多余的空格删除或直接将pub_authz.conf