大家 php 上线都用什么系统啊

2015-06-04 13:25:39 +08:00
 whistle

纯git pull然后同步到其他机器吗 还是有别的工具

8643 次点击
所在节点    PHP
40 条回复
killall
2015-06-04 17:04:17 +08:00
写的 fabric 脚本
timsims
2015-06-04 17:48:03 +08:00
Capistrano + 1

个人项目没所谓,公司项目用ftp一旦出问题回滚不方便
bingx86
2015-06-04 19:04:09 +08:00
用了 Ansible 的 template + synchronization (rsync)。。。。配置,同步 同时搞定
littlehz
2015-06-04 19:59:50 +08:00
小项目直接用 git 控制版本,用Ansible synchronization传文件就好。

严格一点服务器较多的项目自己写脚本(配合Ansible),大概步骤如下:
1、打包tar gz压缩
2、传输 tar.gz 到所有外网服务器
3、解压 tar.gz
4、删除模板文件缓存等本地缓存,设置某些目录的可写权限等
5、清理opcache缓存(opcache设置为手动更新,不检查timestamp方式)
严格项目要考虑到多台服务器文件不一致可能出现问题,尽量是同一时刻更新所有服务器。所以要传压缩包,一起解压的方式。
也不能出现先上传A文件再上传B文件,要同时传所有文件,否则两个文件存在依赖关系,如果一个文件较晚更新,这时访问页面可能出现500服务器内部错误。所以要opcache手动更新。
whistle
2015-06-04 20:01:53 +08:00
我感觉上线前要和线上文件做比对,确认后再发布
mytharcher
2015-06-04 20:05:53 +08:00
即使我是一个人做再小的项目,也是用 git hook,本地一个 push 服务器就自动部署了。于是每次新建项目都要先配置好自动部署环境,所以写了这个工具,欢迎 star:

https://github.com/mytharcher/hookagent
falcon05
2015-06-04 20:22:51 +08:00
用git hook或svn hook是web hook吧,如果同时还用PHP执行git pull,就要求PHP对整站目录有写权限或者用root运行PHP吧,这样是不是有点不安全啊
jakehu
2015-06-04 20:50:45 +08:00
哈哈 我也想知道
ifconfig
2015-06-04 22:07:01 +08:00
@falcon05 php写一个git pull的脚本 ,hook的地址指向这个脚本,你可以设置这个脚本权限为apache:root嘛
endoffight
2015-06-04 22:38:05 +08:00
nigelvon
2015-06-04 23:04:56 +08:00
git+shell
lujiajing1126
2015-06-04 23:19:11 +08:00
capistrano+rsync
fontartist
2015-06-05 09:37:55 +08:00
centos、git、rsync
erevus
2015-06-05 11:33:34 +08:00
scp
zluyuer
2015-06-05 12:40:40 +08:00
[desktop]

git commit, push


[server]

-- deploy.sh --
#!/bin/bash

echo -e "\033[31mPulling source...\033[0m"
cd /env_name/src/app_name
git pull

echo -e "\033[31mBuilding...\033[0m"
composer install

echo -e "\033[31mDeploy complete.\033[0m"
wayne712
2015-06-05 13:53:34 +08:00
请问大家一般怎么用rsync, deamon模式在什么情况下会用到呢
biu1024
2015-06-11 09:04:06 +08:00
*.phar 怎么没人提到?
jakehu
2015-08-24 23:31:13 +08:00
git pull
wushuiyong
2015-10-28 14:26:19 +08:00
看来大家都还不知道 Walle-瓦力,一个 web 部署系统工具,可能也是个持续发布工具,配置简单、功能完善、界面流畅、开箱即用!

支持 git 、 svn 版本管理,支持各种 web 代码发布,静态的 HTML ,动态 PHP ,需要编译的 JAVA 等。主要功能列表:

1.用户分身份注册、登录
2.开发者发起上线任务申请、部署
3.管理者审核上线任务
4.支持多项目部署
5.支持多项目多任务并行
6.快速回滚
7.项目的用户权限管理
8.部署前准备任务 pre-deploy (前置检查)
9.代码检出后处理任务 post-deploy (如 vendor )
10.同步后更新软链前置任务 pre-release
11.发布完毕后收尾任务 post-release (如重启)
12.执行 sql 构建(不要担心忘记测试环境 sql 同步)
13.线上文件指纹确认
14.支持 git 、 svn 版本管理

详见 github 项目地址: https://github.com/meolu/walle-web ,官方主页介绍: http://www.huamanshu.com/walle.html
mingyun
2017-03-06 18:10:42 +08:00
@wushuiyong 这个工具不错

这是一个专为移动设备优化的页面(即为了让你能够在 Google 搜索结果里秒开这个页面),如果你希望参与 V2EX 社区的讨论,你可以继续到 V2EX 上打开本讨论主题的完整版本。

https://www.v2ex.com/t/196046

V2EX 是创意工作者们的社区,是一个分享自己正在做的有趣事物、交流想法,可以遇见新朋友甚至新机会的地方。

V2EX is a community of developers, designers and creative people.

© 2021 V2EX