svn服务器有2种运行方式:svn服务和借用apache运行,也就是http服务.
为什么使用http服务
svn服务是svn默认的访问形式,但是人们通常习惯于使用域名或者ip地址来访问一个项目,如果我们把svn服务器当做一个项目的话,使用http协议来访问svn服务更加符合我们的习惯.而且对于没有接触过svn的其他运维人员或者其他人员,http访问版本服务器要优于svn服务访问.
关于mod_dav_svn模块
由于Subversion需要版本化的控制,因此标准的HTTP协议不能满足需求。要让Apache与Subversion协同工作,就要使用WebDAV(Web-based Distributed Authoring and Versiong)Web分布式创作和版本控制协议。 mod_dav_san模块就是作为Subversion与Apache之间的接口,通过它,Apache就可以访问版本库,并且可以让客户端也使用HTTP的扩展协议WebDAV/DeltaV进行访问。参考http://www.linuxfly.org/post/449/
mod_dav_svn安装
- # yum install mod_dav_svn
创建版本库
与以前的步骤基本相同,唯一不同的是,需要让运行的Apache用户拥有改仓库的权限
- # mkdir /var/www/svn
- # cd /var/www/svn/
- # svnadmin create stuff
- # chown -R apache.apache stuff/
修改apache配置
修改/etc/httpd/conf.d/subversion.conf配置文件的内容为:
- vi /etc/httpd/conf.d/subversion.conf
- LoadModule dav_svn_module modules/mod_dav_svn.so
- LoadModule authz_svn_module modules/mod_authz_svn.so
- #
- # Example configuration to enable HTTP access for a directory
- # containing Subversion repositories, "/var/www/svn". Each repository
- # must be both:
- #
- # a) readable and writable by the 'apache' user, and
- #
- # b) labelled with the 'httpd_sys_content_t' context if using
- # SELinux
- #
- #
- # To create a new repository "http://localhost/repos/stuff" using
- # this configuration, run as root:
- #
- # # cd /var/www/svn
- # # svnadmin create stuff
- # # chown -R apache.apache stuff
- # # chcon -R -t httpd_sys_content_t stuff
- #
- <Location /repos>
- DAV svn
- SVNParentPath /var/www/svn
- # # Limit write permission to list of valid users.
- <LimitExcept GET PROPFIND OPTIONS REPORT>
- # # Require SSL connection for password protection.
- # # SSLRequireSSL
- #
- AuthType Basic # 使用基本认证方式,即用户名、密码认证
- AuthName "Authorization Realm" # 在认证对话框中出现的提示信息
- AuthUserFile /etc/svn/svnusers.conf # 指定存放用户名信息的文件路径
- AuthzSVNAccessFile /etc/svn/accesspolicy.conf # 指定存放用户访问路径信息的文件路径
- Require valid-user # 限定只有用户输入正确的用户名和密码后才能访问该标签所指向的路径
- </LimitExcept>
- </Location>
加入认证信息
1.创建存放用户信息的文件
- # mkdir -p /etc/svn/
- # htpasswd -c /etc/svn/svnusers.conf admin
- New password:
- Re-type new password:
- Adding password for user admin
具体的用户操作可以查看htpasswd指令
2.创建存放用户访问路径的文件
- # mkdir -p /etc/svn/
- # cd /etc/svn/
- # vi accesspolicy.conf
添加如下内容
- [groups]
- admin = admin
- [/]
- *=r
- @admin = rw
- [stuff:/]
- *=rw
- @admin = rw
启动httpd服务:
- # /etc/init.d/httpd restart
访问svn服务
本文出自