一、安装SVN
yum install -y subversion
#检查是否安装成功
svnserve --version
二、创建版本库
//创建目录
mkdir /var/svn/svnrepos
//创建版本库
cd /var/svn/svnrepos
svnadmin create /var/svn/svnrepos/liuke
//创建成功
三、配置文件
进入版本库下的conf文件夹,修改authz、passwd和svnserve.conf文件
authz、passwd按文件提示格式修改,如下修改svnserve.conf:
auth-access = write //普通用户访问权限:读、写
anon-access = none //匿名用户访问权限:无
password-db = passwd //密码文件
# authz-db = authz //注意这里的注释不要打开,有的时候出现认证失败的情况
# realm = My First Repository //(这里修改为版本库的地址 /var/svn/svnrepos/liuke,也可以不修改)
四、开启SVN服务
svnserve -d -r /var/svn/svnrepos/liuke
如果提示:
svnserve: E000098: Can't bind server socket: Address already in use
则需要重启svn,查看svn服务:ps aux | grep svn
再用kill -9 (进程id)
,最后svnserve -d -r /var/svn/svnrepos/liuke
重启
五、开启SVN3690端口
1.在服务器安全组中添加3690
2.在centos中添加3690端口步骤如下:
查看端口
firewall-cmd --list-ports
添加3690端口
firewall-cmd --zone=public --add-port=3690/tcp --permanent
iptables -I INPUT -i eth0 -p tcp --dport 3690 -j ACCEPT
iptables -I OUTPUT -o eth0 -p tcp --sport 3690 -j ACCEPT
重启防火墙
firewall-cmd --reload
CentOS 7 开放防火墙端口systemctl 命令完全指南参考这里
六、同步svn项目到网站web目录
1、在web目录中checkout版本库
这一步是非常关键的一步了:
svn co svn://localhost/liuke /www/wwwroot/project --username jjjj(SVN账号) --password 123456(SVN密码)
进入 /var/svn/svnrepos/liuke/hooks目录下
建立post-commit文件:
cd /var/svn/svnrepos/liuke/hooks
vim post-commit
//在该文件里添加如下代码,保存
#!/bin/sh
#设定环境变量,如果没有设定可能会出现update报错
#设定语言,根据系统语言设置,如果是GBK就设置为 LANG=zh_CN.GBK
export LANG=en_US.utf8
/usr/bin/svn update /www/wwwroot/project --username 'wzj' --password '123456' --no-auth-cache
修改用户和给权限
chmod 755 post-commit //给权限
chown root:root post-commit //修改用户
完毕
本博客参考:(https://blog.youkuaiyun.com/baidu_30000217/article/details/51396016)