众所周知,Subversion有两种运行方式,一种是基于HTTP,另一种是基于Subversion Standalone Server的。本文的目的是要配置一个基于Apache HTTP服务器的SVN服务器。这样的服务器有以下几个好处:
1、能使用WebDAV协议;
2、能使用浏览器作为客户端工具浏览源码库;
3、支持SSPI和LDAP认证;
4、能获得Apache的安全认证支持,如:SSL连接等。
废话不多说,开始配置步骤吧。
一、SVN安装
安装方式:yum install
安装如下模块:
yum install httpd httpd-devel
yum install subversion
yum install mod_dav_svn
必须安装mod_dav_svn模块。
安装成功后,可用svn --version命令验证。
二、Apache配置
一定要保证下面的两句话存在于apache配置文件(/etc/init.d/conf/httpd.conf)中,否则将无法加载svn模块:
LoadModule dav_svn_module modules/mod_dav_svn.so
LoadModule authz_svn_module modules/mod_authz_svn.so
三、SVN配置
1、代码仓库目录配置
代码仓库就是存放代码目录结构的服务器目录,我们在/var/local下新建一个svn目录,这样/var/local/svn就可以作为所有项目的根目录。
以firstapp为例,来配置Subversion:
# mkdir -p /var/local/svn
# cd /var/local/svn
# svnadmin create firstapp
创建完成后,可以看到生成了firstapp的目录。
2、用户权限配置
用户权限配置在firstapp/conf/authz文件中。
添加用户组和权限(具体方式不细说)。
3、生成用户密码文件
因为Apache基于HTTP传输的密码是加密的,所以需要用htpasswd命令来建立用户文件,并对密码进行加密。
# htpasswd -c /usr/local/svn/firstapp/conf/passwd testusername
要增加用户,使用下面命令:
# htpasswd /usr/local/svn/firstapp/conf/passwd addusername
四、Apache配置文件
修改/etc/httpd/conf/httpd.conf文件,为末尾加上:
<Location /petapp>
DAV svn
SVNPath /usr/local/svn/firstapp/
AuthType Basic
AuthName "svn for firstapp"
AuthUserFile /usr/local/svn/firstapp/conf/passwd
AuthzSVNAccessFile /usr/local/svn/firstapp/conf/authz
Satisfy all
Require valid-user
</Location>
重启Apache服务器,打开浏览器输入:http://ipaddress/firstapp,就可以看到效果了。