您的位置:首页 > 编程语言 > PHP开发

用svn和Rsync和php做本地开发环境、测试服务器、远程服务器同步和更新

2009-02-05 14:44 447 查看
Svn 和 rsync 架构的版本控制和自动更新测试服务器

1、服务器搭建结构

12



2、工作流程原理

1)本地开发环境都保持和svn版本控制服务器一致的文本拷贝

2)当本地更新或者新增数据的时候,提交到svn服务器

3)本地WEB测试服务器的目录也通过svn服务器更新最新的文本拷贝,通过使用 svn--hooks脚本 ,当svn服务器有遇到客户端commit更新的时候自动更新本地wen测试服务器的工作目录。

svn--hooks脚本说明:

打开svn的服务器端目录 /home/svnroot/repository/web/hooks

1、准备工作 cp post-commit.tmpl post-commit ; chmod a+x post-commit;确定相应目录的可写权限;

确认svn认证模式等相关信息。

2、首先确定post-commit文件是否被调用,可以在post-commit其中加入 sleep 10 这样的语句,

如果客户端提交之后等了一段时间,几乎可以肯定执行了这个文件,或者用写日志等方法。

3、post-commit能执行后基本问题都是权限问题,环境变量问题

把需要处理的目录都改成 rw 的,脚本中要写入用户名和密码。

然后就是写shell脚本

#!/bin/sh

cd /www/admin 先进去测试服务器web目录

SVN=/usr/local/bin/svn 定义svn所在路径

WEB=/www/admin 定义变量

export LANG=en_US.UTF-8 输出环境变量

$SVN update $WEB --username xxx --password xxx 相当于在工作目录运行svn up

本例需要输出环境变量en_US.UTF-8,否则如果有中文文件会无法顺利执行。

4)当在本地服务器测试OK后,用rsync上传到远程WEB服务器。

Rsync使用的命令行下运行,为了方便,通过php调用rsync命令,在web端就可以做rsync的上传工作。

3、利用rsync自动更新测试服务器数据到对外应用服务器

Rsync -avzuCP --exclude-from=/www/adm_send.conf /www/admin/ username@xxx.xxx.xxx.xxx::test --progress --password-file=/www/passwd

--exclude-from 表示要排除上传哪些文件或者那些后缀的文件,直接写在/www/adm_send.conf里面,用回车隔开,如下:

admin/doAddProFromcsv/

site_data/

.dat

.log

.txt

.xml

add_admin.php

/www/admin/ 要上传的当前目录

username@xxx.xxx.xxx.xxx::test username表示rsync的用户名,@后面是要上传的服务器IP地址。::后面的test是rsync配置文件里面要上传的rsync目录名称

--progress --password-file=/www/passwd 表示username用户的密码文件放的位置,当需要输入密码的时候直接从密码文件读取。密码文件 /www/passwd 必须只有拥有者可读,设置 chmod 600 /www/passwd

我们的rsync的命令是使用php调用的,而php运行默认只有apache权限,所以前面加一句:

/usr/bin/sudo

完整的更新脚本如下:

/usr/bin/sudo Rsync -avzuCP --exclude-from=/www/adm_send.conf /www/admin/ username@xxx.xxx.xxx.xxx::test --progress --password-file=/www/passwd

4、安全性考虑

1、rsync上传服务端默认是空密码的,必须加上密码。

Rsync密码设置方法:

新建密码文件

vi /etc/rsyncd.passwd

输入用户名密码,用冒号:隔开,如下:

shangdi:shangdi123

修改密码文件的权限

chmod 600 /etc/rsyncd.passwd

修改配置文件,导入密码文件

vi /etc/rsyncd.conf

添加如下一行:

secrets file=/etc/rsyncd.passwd
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: 
相关文章推荐