前提条件:请先关闭防火墙或者selinux,当然你也可以进行相应的配置,让某些端口通过 我比较暴力,采用关闭处理 systemctl disable firewalld systemctl stop firewalld disable是让其不下次开机启动,stop是结束它。 对于selinux 改/etc/selinux/config文件的”SELINUX=enforcing”为”SELINUX=disabled” 然后执行”setenforce 0″不用重启地关闭selinux 一、安装相应的软件#svn服务器 yum install subversion #apache服务器,让我们的svn 服务器支持http协议访问,而不仅是svn://协议 yum install httpd #apache操作svn模块 yum install mod_dav_svn 二、相应的配置1、创建仓库 默认安装的svn服务器的根仓库(root repository)为/var/svn,所以我们在这个目录创建我们的仓库 svnadmin create repo1 将创建/var/svn/repo1 目录,在repo1目录下有相应的配置文件 2、仓库配置 /var/svn/repo1/conf下的三个配置文件的作用为 svnserve.conf :存放svn服务器的认证授权策略:比如匿名可读,认证的用户可写,以及指定相应的用户信息存储位置(passwd)和认证规则文件的位置(authz) passwd:用户信息存储文件,以username=password键值对的方式存储 authz:认证规则 注意 键值对的等号(=)前后的空格 对于svnserve.conf,取消以下行的注释即可 anon-access = read auth-access = write password-db = passwd authz-db = authz 对于passwd,添加一个用户 root = 123456 对于authz,添加如下信息: [repo1:/] root = rw * = r 表示root具有读写权限,’*’任何人都能读,如果没有这个配置,那么查看log会报异常。 3、测试 启动服务器: systemctl start svnserve.service 使用tortoiseSVN, svn://ip/repo1 ,如果能正常访问,那么配置OK, 三、Http访问方式的配置httpd的默认的配置文件为/etc/httpd/conf/httpd.conf 1、先备份一下,防止改错: cp httpd.conf httpd.conf.bak
2、修改
找到文件的’LoadModule’ LoadModule dav_module modules/mod_dav.so LoadModule dav_svn_module modules/mod_dav_svn.so 在该文件的结尾处添加如下配置 <Location /svn> DAV svn SVNParentPath /var/svn # Authentication: Basic AuthName "Subversion repository" AuthType Basic AuthUserFile /etc/httpd/svn-auth.htpasswd # Authorization: Authenticated users only <LimitExcept GET PROPFIND OPTIONS REPORT> Require valid-user </LimitExcept> </Location> “<Location /svn>”中的”/svn”表示我们的svn的访问URL为”http://ip/svn”, “DAV svn”表示使用”mod_dav_svn”模块,dav是一种http 1.1扩展协议,mod_dav_svn只是该协议的一种应用。 “SVNParentPath /var/svn”表示服务”http://ip/svn”请求时,使用”/var/svn”路径下相应的内容。 AuthName 表示输入用户名和密码时的提示信息 AuthType 认证类型,这里我们使用基本的认证类型 AuthUserFile 表示认证文件的位置,我们待会创建它。 LimitExcept节点指示只对写请求需要用户认证。 3、创建svn-auth.htpasswd 文件 htpasswd -c -m /etc/httpd/svn-auth.htpasswd root 按提示输入两次密码,我们就创建了一个’root’, 4、让apache用户对”/var/svn/repo1″目录拥有写权限。 httpd以apache用户启动的,所以我们要让其拥有对”/var/svn/repo1″的写权限。由于我的环境的”/var/svn/repo1″的拥有者是”root:root”,所以我将apache加入到root组中,让回让root组也拥有权限来解决的。 #将用户apache加入root组 usermod -a -G root apache #让group对/var/svn/repo1目录也有写权限 chmod -R g+w /var/svn/repo1 #查看apache用户属于的组 groups apache 5、测试 systemctl start httpd.service 现在就可以通过”http://ip/repo1″来访问我们的svn 服务器了 提示: httpd 的错误日志文件为/var/log/httpd/error_log,如果出现问题,随时查看该文件获得提示。 参考文献:http://svnbook.red-bean.com/en/1.7/svn.serverconfig.httpd.html (责任编辑:IT) |