【发布时间】:2015-07-27 10:03:25
【问题描述】:
使用 Bower 组件和 Gulp 任务部署 PHP 网站的最佳方式是什么?
- 是否可以在生产服务器上安装 npm 以运行 Gulp 任务?
- 如果不是,是否可以在 Git 中提交缩小文件(CSS、JavaScript、压缩图像)?
- 如果不是,是否可以使用 rsync 准备和(推送)部署项目到远程服务器,然后使用部署后脚本设置 chmods、更新数据库等?
也许有更好的方法来做到这一点?
【问题讨论】:
-
这不是为了在 Git 中提交东西,不。如果您想进行缩小,请在构建过程中使用 Gulp 来创建缩小和丑化版本,并且不要提交它们。您的 Bower 和 Composer 依赖项未提交,它们是相同的。
-
您可以根据自己的选择在服务器上或关闭服务器上进行构建 - 我认为其中一个没有优势。 Rsync 作为一种传输机制很好。在新构建准备好之前不要让新构建生效 - 您可以切换符号链接,或修改虚拟主机并为此反弹 Apache,所有这些都作为部署后脚本的一部分。关于部署的广泛主题,也许是this will help?
-
@halfer 感谢您的回答。到目前为止,我使用 rsync 和用 bash 编写的 post-script。我的 post 脚本设置了 chmods、迁移、缓存等。这很好吗?
-
听起来不错。如果它是健壮的,并且在出现问题时退出(例如迁移导致 SQL 错误) - 如果出现问题,该过程不得关闭您的服务。当然,您可以只在 staging 中进行测试部署,并且只有在 staging 干净返回时才实时运行它。
-
谢谢,这些信息真的很有帮助。 phing + jenkins 怎么样? Jenkins 提供测试/构建工具,可以与 phing 集成。但对我来说缺点是重复工作。我的工作是海关。在某些日子里,我需要部署项目两次或更多次,其他时间为零。
标签: php git gulp web-deployment rsync