前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >使用rsync工具构建php项目管理平台

使用rsync工具构建php项目管理平台

作者头像
码缘
发布2019-06-03 15:05:53
8550
发布2019-06-03 15:05:53
举报

对于phper来说部署项目和更新项目是很方便的,只要直接将写好的项目覆盖到项目的根目录就可以啦。但是平时项目开发的时候肯定不是只部署一个环境,一般是三套环境(开发环境、测试环境、生产环境),我们每次在开发环境开发完之后要将项目更新到测试环境和生产环境上,如果每次更新的话都是将项目复制然后手动的去覆盖到项目的根目录下的话就太麻烦啦,而且也容易出错所以我们应该有一套项目管理系统来方便的管理项目的更新迭代,大致结构如下:

画的不好但是意思是对的,这样的话就可以通过一个脚本文件直接更新代码啦,更重要的是我们可以通过php中的 exec() 函数来操作脚本,这意味着我们可以使用php来开发这个项目管理平台,今天只说如何配置rsync。

实验环境:

docker(ubuntu镜像)实例化两台虚拟器

在两台虚拟机上都安装好 rsync 工具,rsync 使用分两种情况,一种是客户端使用(直接执行 rsync 相关命令)另一种是服务器端使用(以daemon模式执行)

配置 rsync 服务端

首先要在 `/etc` 目录下手动添加个 rsyncd.conf 文件并填写相关配置,配置选项解释如下:

port=837  #监听端口默认 873
log file=/var/log/rsync.log  #rsync日志
pid file=/var/run/rsync.pid  #rsync运行时生成的pid存放目录
[abc]  #模块名称
path=/var/www/html  #模块对应的目录
use chroot=yes   #是否限定为模块默认目录
max nonections=4 #指定最大可以连接的客户端数
read only=no  #yes 为改模块内容只允许读,no 为该模块允许读写
list=yes #是否允许 使用 `rsync ip地址::` 列出模块名
uid=root  #以哪个用户的身份来传输
gid=root  #以哪个组的身份来传输
auth users=root  #指定验证用户名,如果不设置则可以不用密码进行传输
secrets file=/etc/rsync.passwd  #指定用户名和密码的存放文件  注:文件需要以 "用户名:密码"的形式存储   并且需要设置权限 chmod 600 rsync.passwd

从客户端读取服务器端文件

rsync --port=837 -avz root@192.168.99.100::abc /myweb

这时会将服务端 /var/www/html 目录下的文件同步到 客户端的 /web 目录下

从客户端推送文件到服务端

rsync --port=837 -avzH /myweb/ root@192.168.99.100::abc

这时会将客户端的 /web 目录下的文件同步到 服务端 /var/www/html 目录下

对于 rsync 命令各个选项的含义 建议看下这篇文章吧,这哥们写的翻译的挺详细的 @骏马金龙 man rsync翻译(rsync命令中文手册)

本文参与 腾讯云自媒体分享计划,分享自作者个人站点/博客。
原始发表:2019-05-11 ,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 作者个人站点/博客 前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体分享计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
相关产品与服务
项目管理
CODING 项目管理(CODING Project Management,CODING-PM)工具包含迭代管理、需求管理、任务管理、缺陷管理、文件/wiki 等功能,适用于研发团队进行项目管理或敏捷开发实践。结合敏捷研发理念,帮助您对产品进行迭代规划,让每个迭代中的需求、任务、缺陷无障碍沟通流转, 让项目开发过程风险可控,达到可持续性快速迭代。
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档