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

  • Post author:
  • Post category:其他




一、安装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.csdn.net/baidu_30000217/article/details/51396016)



版权声明:本文为Jaystrong原创文章,遵循 CC 4.0 BY-SA 版权协议,转载请附上原文出处链接和本声明。