Ubuntu下SVN+apache2搭建加密服务的SVN服务器

  1. 安装SVN/apach2
 sudo apt install subversion apache2 libapache2-svn

安装好后,执行以下命令

enable dav_svn module for apache: a2enmod dav_svn
enable authz_svn module for apache: a2enmod authz_svn
  1. 创建SVN的Repository
 svnadmin create  /home/test/svn/repo/test
  1. 将apach2的运行用户名称加入到当前创建SVN目录的群组.
    apach2的运行用户名称可以在以下文件中设置:
    /etc/apache2/
export APACHE_RUN_USER=www-data
export APACHE_RUN_GROUP=www-data

确定svnadmin create /home/test/svn/repo/test所在目录的所有子目录和各层集父目录的群组都包括了www-data用户。
设置test目录下的owe和群组都为www-data

chown -R www-data:www-data /home/test/svn/repo/test

这样保证apach2在访问svn目录是不会出现访问权限不够问题。

  1. 配置apach2中的svn配置
vi /etc/apache2/sites-available/000-default.conf
<Location /svn>
  DAV svn
  SVNParentPath /home/test/svn/repo
  AuthType Basic
  AuthName "subversion repository"
  AuthUserFile /etc/subversion/passwd
  AuthzSVNAccessFile  /home/test/svn/repo/test/conf/authz
  Require valid-user
</Location> 
  1. 添加SVN用户账号和加密的密码
sudo htpasswd -c /etc/subversion/passwd user_name
  1. 启动apach2
/etc/init.d/apache2 restart

7.常见问题
debug调试

  • 打开debug调试:
vi /etc/apache2/apache2.conf
LogLevel debug  <= 设置log level 为debug
/etc/init.d/apache2 restart
cat /var/log/apach2/error.log

权限问题:
文件访问问题主要是因为apache运行的user、group和访问的user的权限没有设置对导致,可以通过下面几个步骤基本解决问题。
[authz_svn:debug] [pid 22535:tid 140716650968832] mod_authz_svn.c(450): [client 109.104.152.49:50098] Path to authz file is /mnt/raid/xxx/db-repo/conf/authz
[authz_svn:error] [pid 294947:tid 139948191442688] (13)Permission denied: [client 109.104.152.49:54433] Failed to load the mod_authz_svn config: Can't open file '/mnt/raid/xxx/repo/data/conf/authz': Permission denied

Could not open the requested SVN filesystem
403 forbidden (13: Permission denied)
  • 检查/etc/apache2/sites-available/000-default.conf中配置的SVNParentPath 权限是否是www-data

  • 检查/etc/apache2/envvars中配置的APACHE_RUN_USER、APACHE_RUN_GROUP是否正确

    export APACHE_RUN_USER=www-data
    export APACHE_RUN_GROUP=www-data
    
  • 查看/ete/group里面是否把PC访问的user name添加到www-data群组,或者www-data是否在user name群组,不在就用usermod 添加

  • 检查了以上问题后在重启/etc/init.d/apache2 restart
    最终通过: http://ip/svn/xxx
    忘记密码可通过htpasswd重置:

sudo htpasswd -c /etc/subversion/passwd user_name

参考文献:
https://help.ubuntu.com/lts/serverguide/subversion.html

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值