1:环境及相关服务检查
确认是否安装了apache,没有请yum 安装apache
一般情况下,centos自带了svnserver,如果没有运行:

  1. yum install subversion


2: 相关软件包检查
请确认下面软件包有没有安装,如果没有安装,请yum 安装
subversion
mod_dav_svn
如果安装正常的话,应该在/etc/httpd/modules目录下能找到这些模块
mod_authz_svn.so
mod_dav_svn.so

3: 初始化repository
创建svn的项目库父路径,我把/home/svnroot做为svn的项目库父路径。这个目录是任意的,如果是多个项目库则必须在同一个父路径下

  1. #mkdir /home/svnroot

我们通过如下命令初始化一个svn项目库test1

  1. #svnadmin create /home/svnroot/test1

重复上面的命令创建多个项目库,如

  1. #svnadmin create /home/svnroot/test2

或者你指定SVN库的存储方式

  1. #svnadmin create –fs-type fsfs /home/svnroot/test1

4: SVN访问控制
建立用户认证:

  1. htpasswd -cm /home/svnroot/passwd [username]

然后输入用户名密码。打开该文件会看到输入的用户名和一段加密的密码。
在/home/svnroot目录下创建访问控制文件文件svnaccess,名字任意,不过在以后的配置过程中你必须使用正确的名字,文件内容为

  1.         [groups]
  2. 	admin=test1,test2
  3. 	[test1:/]
  4. 	@admin=rw
  5. 	*=r
  6. 	[test2:/]
  7. 	@admin=rw
  8. 	*=r

意思是对于项目库test1和test2,test1和test2用户有读写权限,其他人有读取权限无写入权限。

5: Apache和SVN集成
编辑apache的配置文件/etc/httpd/conf/httpd.conf文件

  1.         <Location /svn>
  2. 	DAV svn
  3. 	SVNParentPath /home/svnroot
  4. 	AuthzSVNAccessFile /home/svnroot/svnaccess
  5. 	AuthUserFile /home/svnroot/passwd
  6. 	AuthName ”SVN Repositorys”
  7. 	AuthType Basic
  8. 	Require valid-user
  9. 	</Location>

6: 安全访问设置[必须设置,否则svn无法访问]
修改目录的属主和访问权限

  1.         #chown apache.apache -R /home/svnroot
  2. 	#chmod 755 -R /home/svnroot

修改SELinux的设置
禁用SELinux(强烈不推荐)或者在SELinux图形管理界面中勾上Disable SELinux protection for httpd daemon这个选项,否则apache这个虚拟用户无法访问/home/svnroot目录,当然你也可以用更好的方法设置apache的访问权限,比如:

  1. chcon -R -h -u system _u -t httpd_sys_content_t /home/svnroot

7: 重新启动Apache服务器
执行如下命令

  1. #service httpd restart

或者

  1. #/etc/init.d/httpd restart

键入下面的url看是否能正确的访问svn。
http://localhost/svn/test1,http://localhost/svn/test2

关于hook稍候会继续发布出“远程同步 or hook更新远程web目录”。敬请关注

发表评论

电子邮件地址不会被公开。 必填项已用*标注