在Centos7上搭建SVN服务器并实现自动同步至web目录

一、安装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
SVN_PATH=/usr/bin/svn   //这里不用改
WEB_PATH=/www/wwwroot/project  //你的web目录,
$SVN_PATH update $WEB_PATH --username 'jjjj' --password '123456' --no-auth-cache

修改用户和给权限

chmod 755 post-commit			//给权限
chown root:root post-commit		//修改用户

完毕

本博客参考:(https://blog.csdn.net/baidu_30000217/article/details/51396016)

你可能感兴趣的:(SVN)