CentOS7 SVN安装配置(支持http)

环境

Linux CentOS7.5最小系统安装

网上各种安装教程,不是缺胳膊就是少腿,好心塞,这下终于齐全了。
1、安装
yum install subversion
2、查看安装位置
rpm -ql subversion
3、创建版本库(多库)
mkdir -p /var/svn/repo/repo1
mkdir -p /var/svn/repo/repo2

svnadmin create /var/svn/repo/repo1
svnadmin create /var/svn/repo/repo2

复制repo1/confrepo目录下

cp /var/svn/repo/repo1/conf /var/svn/repo/conf

1、配置密码:

vi passwd
# 添加下面内容
[users]
admin = admin
zhangsan = zhangsan 
lisi= lisi
custom = custom
# 保存
:wq

2、配置权限:

vi authz
# 添加下面内容
[groups]
admin = admin
repo1 = zhangsan,lisi# 多个用户用“,”分隔
custom = custom

[/]
@admin = rw # 读写

[repo1:/]
@repo1 = rw # 读写

[repo2:/]
@custom = r # 只读
# 保存
:wq

3、配置svnserve:

vi svnserve.conf
# 去掉下面项的注释,进行配置
anon-access = none    # 表示禁止匿名用户访问,可选值none,read,write
auth-access = write   # 表示授权用户拥有读写权限
password-db = passwd  # 指定用户名口令文件,即passwd文件,可配绝对路径
authz-db = authz      # 指定权限配置文件,即authz文件,可配绝对路径
realm = svn           # SVN项目的认证域,会在认证提示里显示
# 保存
:wq
4、SVN版本库位置
vi /etc/sysconfig/svnserve
# 添加下面内容
OPTIONS="-r /var/svn/repo" # 默认OPTIONS="-r /var/svn"
# 保存
:wq
5、防火墙配置
vi /etc/sysconfig/iptables
# 添加下面内容
-A INPUT -p tcp -m state --state NEW -m tcp --dport 3690 -j ACCEPT
# 保存
:wq
# 重启防火墙
systemctl restart iptables.service
6、启动SVN服务器
# -d 守护进程启动,-r 指定版本库目录, --config-file 指定配置文件
svnserve -d -r /var/svn/repo/ --config-file=/var/svn/repo/conf/svnserve.conf 
7、 SVN客户端访问
svn://192.168.31.66:3690/repo1
svn://192.168.31.66:3690/repo2
8、配置svn支持http访问
  • 安装httpd,mod_dav_svn
yum install -y httpd mod_dav_svn
  • 检查Apache,mod_dav_svn是否安装成功
httpd -v
find / -name mod_dav_svn.so 
find / -name mod_authz_svn.so
  • 创建账号密码认证(账号和密码与passwd配置一致)
htpasswd -cbm /var/svn/repo/conf/http_passwd admin admin
htpasswd -bm /var/svn/repo/conf/http_passwd zhangsan zhangsan
htpasswd -bm /var/svn/repo/conf/http_passwd lisi lisi
htpasswd -bm /var/svn/repo/conf/http_passwd custom custom

htpasswd命令参数:

​ -c:创建一个加密文件;
-n:不更新加密文件,只将加密后的用户名密码显示在屏幕上;
-m:默认采用MD5算法对密码进行加密;
-d:采用CRYPT算法对密码进行加密;
-p:不对密码进行进行加密,即明文密码;
-s:采用SHA算法对密码进行加密;
-b:在命令行中一并输入用户名和密码而不是根据提示输入密码;
​ -D:删除指定的用户。

  • 修改配置文件/etc/httpd/conf.d/subversion.conf(一般没有该文件,新建一个),內容为:
LoadModule dav_svn_module modules/mod_dav_svn.so 
LoadModule authz_svn_module modules/mod_authz_svn.so
<Location /svn>
    DAV svn
    SVNParentPath /var/svn/repo # 版本库位置
    AuthType Basic
    AuthName "Authorization SVN"
    AuthzSVNAccessFile /var/svn/repo/conf/authz # 权限文件
    AuthUserFile /var/svn/repo/conf/http_passwd # 密码文件
    Require valid-user
</Location>
  • 配置apache对SVN目录权限
chown -R apache:apache /var/svn/repo/
  • 启动Apache
systemctl start httpd   # 启动
systemctl status httpd  # 查看状态
systemctl stop httpd    # 停止
systemctl enable httpd  # 开机自启动
  • Apache 错误日志监控(访问报错时,监控错误信息)
tail -f /var/log/httpd/error_log
  • SVN 客户端访问报错如下错误:
[Tue Nov 27 08:46:22.506678 2018] [authz_svn:error] [pid 28288] (13)Permission denied: [client 192.168.31.1:58874] Failed to load the AuthzSVNAccessFile: Can't open file '/var/svn/repo/conf/authz': Permission denied
[Tue Nov 27 08:46:33.520026 2018] [authn_file:error] [pid 28284] (13)Permission denied: [client 192.168.31.1:58876] AH01620: Could not open password file: /var/svn/repo/conf/http_passwd

解决:

chcon -R -t httpd_sys_content_rw_t /var/svn/repo/
  • 1
    点赞
  • 3
    收藏
    觉得还不错? 一键收藏
  • 1
    评论
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值