linux centos svn搭建及网站同步更新 替换ftp

以前上线的项目都是用ftp来更新的.后来技术人员多了,ftp的弊端就出来了.所以在这里给大家介绍一下我们现在正在使用的svn同步修改更新的方案.

原理很简单主要是用到了svn的hooks功能.即本地提交到服务器的svn服务器.然后svn服务器调用hooks将服务器相应的svn目录更新.

一 搭建篇

yum install -y subversion

svnserve --version

 

二 创建项目仓库

mkdir /var/svn

cd /var/svn

svnadmin create /var/svn/[项目名]

 

三 配置项目仓库

cd /var/svn/[项目名]/conf

1.修改综合配置

vi svnserve.conf

//找到以下配置项,将前面的#号去掉,然后做相应的配置 [每一项前面不能有空格]

anon-access = none //匿名用户访问权限:无

auth-access = write //普通用户访问权限:读、写

password-db = passwd //密码文件

authz-db = authz //权限配置文件

realm = /var/svn/[项目名] //版本库所在

 

2.修改用户名及密码

vi passwd

[users]

testuser=123456

 

3.修改用户权限 r 读 w写

vi authz

 

[groups]

[/]

testuser= rw

 

四 服务启动重启

1.启动服务

svnserve -d -r /var/svn

 

2.重启服务

killall svnserve

svnserve -d -r /var/svn

 

五 应用

 

1.检出

svn co svn://localhost/[项目名] /data/[项目目录] --username '[用户名]' --password '[密码]'

 

提交

svn add *   //成功的话会显示  A index.php

svn commit * -m "update"

 

2.同步更新

cd /var/svn/[项目名]/hooks

vi post-commit

 

svn status --show-updates

 

#!/bin/sh

export.utf8

SVN_PATH=/usr/bin/svn

WEB_PATH=/data/[项目目录]

$SVN_PATH update $WEB_PATH --username '[用户名]' --password '[密码]' --no-auth-cache

 

ZZ 保存并退出

 

3.权限

chown www:www post-commit

chmod 755 post-commit

 

4.检出

到客户端 

 

清除svn

 find . -type d -name ".svn"|xargs rm -rf

转载请注明出处:http://blog.bitefu.net/post/47.html

©️2020 CSDN 皮肤主题: 大白 设计师:CSDN官方博客 返回首页