注:文中svn库路径根据自己磁盘修改
一、svn安装
第一步、通过yum安装svn及依赖插件
yum install httpd httpd-devel subversion mod_dav_svn mod_auth_mysql
第二步、查看安装版本信息
svnserve --version
第三步、创建版本库
mkdir -p /opt/svn/repositories
svnadmin create /opt/svn/repositories
第四步、进入版本库并设置账号,密码,权限。
cd /opt/svn/repositories
a、密码设置路径
conf/passwd
例如:
[users]
# harry = harryssecret
# sally = sallyssecret
test=test@2019
b、权限设置路径
conf/authz
例如:
[/]
*= ### 其中 *= 其它所有账户没有读写权限
[ow:/]
test=rw
c、开启验证
conf/svnserve.conf
例如:
[general]
#匿名访问的权限,可以是read,write,none,默认为read
anon-access=none
#使授权用户有写权限
auth-access=write
#密码数据库的路径
password-db=passwd
#访问控制文件
authz-db=authz
#认证命名空间,subversion会在认证提示里显示,并且作为凭证缓存的关键字
realm=/opt/svn/repositories
第五步、启动并验证是否成功
启动:
svnserve -dr /opt/svn/repositories
验证链接:
svn co svn://127.0.0.1
Checked out revision 0.
二、基于appache、nginx配置http访问
目的: 使svn通过http访问,不再使用 svn://+ip:3690
第一步、安装httpd
yum -y install httpd
第二步、修改appche配置文件(如果没有就是新创建)
vim /etc/httpd/conf.d/subversion.conf
<Location /svn>
DAV svn
SVNParentPath /mnt/svn (svn)
SVNListParentPath on
AuthType Basic
AuthName "Authorization SVN OF TEST"
AuthzSVNAccessFile /mnt/svn/conf/authz (可以和svn共同使用同一组权限 , authz,passwd)
AuthUserFile /mnt/svn/conf/passwd
Require valid-user
</Location>
******* 以上配置中,SVNParentPath: svn文件夹路径; AuthzSVNAccessFile ,AuthUserFile 是svn的权限,密码管理组*****
第三步、修改httpd默认端口
vim /etc/httpd/conf/httpd.conf (修改httpd 默认端口,默认80端口给nginx使用)
第四步、通过httpd加密密码
htpasswd -bc /mnt/svn/conf/passwd admin admin@2019 (第一次加 -bc 执行)
htpasswd -b /mnt/svn/conf/passwd test test@201011728 (第二次和以后添加用户密码 -b 执行)
第五步、新增nginx配置代理appache
location /svn{
proxy_pass http://localhost:1080/svn;
}
第六步,给svn库路径分配appache权限
chown -R apache:apache /data/svn
第七步、设置防火墙
vim /etc/sysconfig/iptables
-A INPUT -m state --state NEW -m tcp -p tcp --dport 80 -j ACCEPT