第一步: 安装SVN服务端
yum install -y subversion
查看版本:
svnserve --version
第二步: 创建SVN版本库
创建svn数据目录(默认数据根目录是/var/svn,开机启动默认也是从这里,我考虑自己电脑分区的容量修改为home目录):
mkdir -p /home/svn/project
创建版本库:
svnadmin create /home/svn/project/repository
如果删除版本库:
rm -rf /home/svn/project/repository
第三步: 配置SVN信息
1、配置 svn服务配置文件svnserve.conf
vim /home/svn/project/repository/conf/svnserve.conf
(通过windows远程用notepad++编辑方便些)
[general]
#匿名访问的权限,可以是read,write,none,默认为read。显示show log
anon-access=none
#使授权用户有写权限
auth-access=write
#使用哪个文件作为账号文件
password-db=passwd
#使用哪个文件作为权限文件
authz-db=authz
#指定版本库命名空间,subversion会在认证提示里显示,并且作为凭证缓存的关键字
realm=/home/svn/project/repository
2、配置用户口令文件passwd
vim /home/svn/project/repository/conf/passwd
[users]
#用户 = 密码
admin = Admin1234
root = root1234
userlzz = lzz1234
usertest = test123456
3、配置权限配置文件authz
vim /home/svn/project/repository/conf/authz
[groups]
#admin为用户组,等号之后的admin为用户
admin = admin,root
user = userlzz
test = usertest
#用户组所对应的用户
[/]
#表示admin组对根目录有读写权限,r为读,w为写
@admin = rw
@user = rw
#其它用户组权限
*=r
#表示testproject目录(/home/svn/project/repository/testproject)
[/testproject]
#表示test组对testproject目录有读写权限
@test = rw
第四步: 启用SVN,配置开机自启
方法一(推荐):
1、查看 systemd 里 svn 的配置文件
vi /lib/systemd/system/svnserve.service
第13行修改为:
[Unit]
Description=Subversion protocol daemon
After=syslog.target network.target
[Service]
Type=forking
EnvironmentFile=/etc/sysconfig/svnserve
ExecStart=/usr/bin/svnserve --daemon --pid-file=/run/svnserve/svnserve.pid -d -r /home/svn/project/repository
#上面这里一定要写绝对路径
[Install]
WantedBy=multi-user.target
2、将 OPTIONS="-r /var/svn" 改为 svn 版本库存放的目录
vi /etc/sysconfig/svnserve
# OPTIONS is used to pass command-line arguments to svnserve.
#
# Specify the repository location in -r parameter:
OPTIONS="-r /home/svn/project/repository"
3、启动服务:
systemctl start svnserve
4、配置开机自启:
systemctl enable svnserve.service
5、查看服务状态:
systemctl list-units --type=service | grep svn
6、查看服务详细状态:
systemctl status svnserve
方法二:
1、启动SVN服务:说明:-d : 守护进程 -r : svn数据根目录
#用root权限启动
# svnserve -d -r /home/svn/project/repository
查看SVN服务:
# ps aux|grep svn #默认端口为:3690
如成功启动,则会有以下类似信息
root 4089 0.0 0.0 197712 1036 ? Ss 14:30 0:00 svnserve -dr /home/svn/project/
root 4531 0.0 0.0 112716 964 pts/0 S+ 14:36 0:00 grep --color=auto svn
2、配置开机启动SVN:# vim /etc/rc.d/rc.local
添加内容
# svnserve -d -r /home/svn/project/repository
注意:升级CentOS7后,需要给/etc/rc.d/rc.local赋予可执行权限
# chmod +x /etc/rc.d/rc.local
第五步: 配置防火墙开放3690端口
firewall-cmd --zone=public --add-port=3690/tcp --permanent
firewall-cmd --zone=public --add-port=3690/udp --permanent
firewall-cmd --reload
命令含义:
--zone #作用域
--add-port=80/tcp #添加端口,格式为:端口/通讯协议
--permanent #永久生效,没有此参数重启后失效
进入版本库目录:
cd /home/svn/project/repository
赋予权限:
chmod -R 777 format
永久关闭:
vim /etc/sysconfig/selinux
值修改为disable.
SELINUX = disable
永久关闭SELINUX后即可解决svn自启后访问权限不足的问题
保存退出 ,然后重启服务器,在客户端 SVN Checkout 测试通过。