因为公司其他人员需要,需要在服务器上搭建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根据建议修改即可