因为公司其他人员需要,需要在服务器上搭建svn服务,途中遇到不少问题,做下记录
第一步,安装svn
默认centos7是已经安装了svn即subversion
检查是否安装
rpm -qa subversion
没有安装的可以通过
yum install subversion
第二步,创建svn版本库
mkdir /home/svn
svnadmin create /home/svn/test
此处库名为test可以根据需要替换
第三步,配置代码库
3.1用户密码配置
vim /home/svn/test/conf/passwd
[users]
# harry = harryssecret
# sally = sallyssecret
用户名=密码
admin=test
3.2权限控制配置
vim /home/svn/test/conf/authz
最后一行插入
[/]
admin=rw
[groups]
project_p = admin
可以根据需要配置其他的组
3.3服务配置
vim /home/svn/test/conf/svnserve.conf
在[general]下插入
#匿名访问的权限,可以是read,write,none,默认为read
anon-access=none
#使授权用户有写权限
auth-access=write
#密码数据库的路径
password-db=passwd
#访问控制文件
authz-db=authz
第四步,编辑svnserver配置文件
vim /etc/sysconfig/svnserve
OPTIONS="-r /home/svn"
默认实在/var/svn的位置
第五步,启动svn
systemctl start svnserve
netstat -tulnp
查看3690端口是否开放
ps aux|grep svn
查看服务是否开启
测试
svn://ip
输入用户名密码
有可能会遇到selinux阻挡了文件访问
setenforce 0
看下是否成功连接
如果是,就是selinux搞的鬼
cat /var/log/message
查看里面selinux中提供的帮助,照着其中做即可
最后setenforce 1恢复selinux
配置apache支持http方式访问
第一步,先安装apache以及apache对svn的支持
yum install httpd
yum install mod_dav_svn
第二步,修改配置文件
vim /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/test>
DAV svn
SVNListParentPath on
SVNPath /home/svn/test
AuthType Basic
Satisfy Any
AuthName "Subversion repos"
AuthUserFile /home/svn/test/conf/accesspwd
AuthzSVNAccessFile /home/svn/test/conf/authz
Require valid-user
</Location>
第三步,创建accesspwd文件
htpasswd -c -m /home/svn/test/conf/accesspwd admin
接着输入密码
第四步,修改库的拥有者为apache
chown -R apache /home/svn/
第五步,开启httpd服务
systemctl start httpd
到这里连接可以成功,但是上传有可能失败,可能是selinux的问题,也是
cat /var/log/message根据建议修改即可