配置SVN的HTTP访问的方式

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

安装必要的包

  • CentOS
yum install -y httpd subversion mod_dav_svn
  • ubuntu
apt install -y apache2 libapache2-mod-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
      SVNAdvertiseV2Protocol Off
   #</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内容,看看是否之前的一些步骤有遗漏。
  4. 提交时报错:svn: E175002: Unexpected HTTP status 400 ‘Bad Request’ on ‘xxx/!svn/me’,可以通过在apache配置文件中加上SVNAdvertiseV2Protocol Off来解决。
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值