我正在用PHP开始一个新项目,我想从其他开发人员那里获得一些关于他们首选的PHP部署策略的反馈.我希望实现一些自动化,这样一旦提交更改,它们就可以快速迁移到开发或生产服务器上.

我有使用Capistrano和Ruby进行部署的经验,还有一些基本的shell脚本.

在我独自开始之前,如果能听到其他人在他们的项目中是如何做到这一点的,那就太好了.

更多信息

目前,开发人员在站点的本地安装上工作,并将更改提交到Subversion存储库.初始部署是通过从SVN导出标记版本并将其上传到服务器来进行的.

其他更改通常是通过手动上载更改的文件来零碎进行的.

推荐答案

对于PHP,可以使用包含Phing个构建脚本的SVN.Phing类似于ANT,但它是用PHP编写的,这使得PHP开发人员更容易根据自己的需要进行修改.

我们的部署程序如下:

  • 每个人在工作时都在同一台本地服务器上开发,每个开发人员在家里的机器上也都有一个 checkout 台.
  • 提交触发更新临时服务器的提交后钩子.
  • 测试在临时服务器上运行,如果通过-继续.
  • 正在运行Phing构建脚本:
  • 关闭生产服务器,将域切换到"正在建设"页面
  • 在生产 checkout 时运行SVN更新
  • 运行模式增量脚本
  • 运行测试
  • 如果测试失败-运行回滚脚本
  • 如果测试通过,服务器将路由回生产签出

还有phpUnderControl个,这是一个持续集成服务器.老实说,我觉得这对网络项目没什么用处.

Php相关问答推荐

Laravel—通过单击处理多条路由

在保留唯一键值对的情况下高效合并嵌套数组

Laravel:从匹配的数组数据中获取记录

PHP:从数组中获取唯一的数字组合

创建一个新的可变产品及其属性以用于WooCommerce中的变体

为什么正则表达式与得到的文本块之前得到的也行?

MULTI UPDATE Laravel为什么只能更新我的第一行

在WooCommerce中设置带有国家/地区和年份前缀的顺序序号

使用列入黑名单的单词和自定义业务逻辑的组合将特定的子字符串包装在HTML标记中

不包括WooCommerce中单独销售的产品

FlySystem v3:使用本地适配器时出现问题

在WooCommercestore 页面上显示库存产品属性的值

Woocommerce单一产品Ajax添加到带有自定义购物车项目数据的购物车

产品页面自定义复选框可对 WooCommerce 购物车小计启用百分比折扣

将产品数量、名称和结帐链接添加到 WooCommerce 添加到购物车消息

如何在PHP中对多个脚本调用进行排队?

显示时间范围内的可用空位,同时考虑已预订的空位

Shopware 6:无法在新的自定义插件中保存关联字段(媒体)

如何故意创建不同的错误(404,500,419)? Lavravel PHP

如何限制for循环php中的条目数