配置SVN的HTTP访问的方式

本文描述了在CentOS 7上配置SVN的HTTP访问的方式。

安装必要的rpm包

yum install -y httpd subversion mod_dav_svn

创建SVN仓库

mkdir -p /var/lib/svn
cd /var/lib/svn
svnadmin create devops
chown -R apache:apache devops

进行SELINUX相关设置

如果开启了SELINUX,则需执行如下两条命令:

chcon -R -t httpd_sys_content_t devops
setsebool httpd_unified=1

注:setsebool httpd_unified=1这个设置可以解决这样的错误:Can’t open file ‘/var/lib/svn/devops/db/txn-current-lock’: Permission denied

创建SVN仓库的用户及设置用户权限

cd /var/lib/svn/devops/conf

修改svnserve.conf文件,取消如下行前的注释并改成相应的值:

anon-access = none
auth-access = write
password-db = passwd
authz-db = authz

将默认的passwd文件改名,创建htpasswd格式的用户名密码文件passwd

mv passwd passwd.default
htpasswd -cm passwd yourname
htpasswd -m passwd myname

修改authz文件,配置用户和组对仓库下各目录的访问权限,文件内容示例如下:

[groups]
devops = yourname,myname

[/]
@devops = rw

[/system]
@devops = rw
[/vnetoss]
@devops = r
yourname = rw

添加httpd配置文件

cd /etc/httpd/conf.d
touch svn.conf

修改svn.conf文件内容如下:

<Location /devops>
   DAV svn
   #SVNParentPath /var/lib/svn
   SVNPath /var/lib/svn/devops
   # 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 /var/lib/svn/devops/conf/passwd
      AuthzSVNAccessFile /var/lib/svn/devops/conf/authz
      Satisfy all
      Require valid-user
   #</LimitExcept>
</Location>

开启httpd服务并添加防火墙放行策略

systemctl enable httpd
systemctl start httpd
firewall-cmd --permanent --add-service=http
firewall-cmd --reload

测试服务及排障

  1. 打开浏览器,访问http://192.168.100.100/devops,看看有无问题
  2. 在Windows系统上安装tortoisesvn客户端,checkout版本库后,提交一个README.md文件试试
  3. 如果无法正常访问(如403错误)或正常提交,可以看看服务器上/var/log/httpd下的access_log和error_log内容,看看是否之前的一些步骤有遗漏。

猜你喜欢

转载自blog.csdn.net/huzhenwei/article/details/80229309