linux centos svn搭建及网站同步更新
以前上线的项目都是用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 LANG=en_US.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
注:需要开通3690端口