CakePHP应用程序部署

16

我对如何部署CakePHP应用程序很感兴趣。最近有人找我做一些自由职业的CakePHP开发工作,这将是一个不错的机会让我在展示层方面积累一些经验(在我的全职工作中,我主要从事Java EE开发中的业务和持久性层)。

目前我的想法还有点杂乱无章,但我正在考虑以下情况:

  • 开发人员在IDE中修改了一个文件,该文件会自动(在后台)与本地运行的开发Web服务器同步。这个场景是我理想中的开发方式,即进行更改并能够立即看到更改后的效果,而无需任何额外步骤。

  • 开发人员在IDE中修改了一个文件,该文件会通过FTP自动(在后台)与远程运行的开发Web服务器同步。当我使用我的上网本旅行时(即使没有Web服务器也已经减慢了我的IDE),这种情况会很有用。

  • 管理员从源代码存储库向本地运行的Web服务器部署了最新版本的CakePHP应用程序。
  • 管理员通过FTP从源代码存储库向Web服务器部署了最新版本的CakePHP应用程序。
  • 管理员从源代码存储库向本地运行的Web服务器部署了旧版本的CakePHP应用程序。
  • 管理员通过FTP从源代码存储库向Web服务器部署了旧版本的CakePHP应用程序。

我最熟悉的开发工具是Eclipse、Ant和Subversion,我的偏好是继续使用它们,但如果这样做可以轻松实现这些场景,我也会考虑切换到其他工具。

问题:

  • 这些场景合理吗?或者我需要以不同的方式思考开发和部署?
  • 有哪些工具可以帮助简化开发/部署?是自己使用Ant、脚本等来解决更好呢?
  • 在部署过程中如何处理数据库问题?如何为特定部署指定数据库连接属性?如果升级到CakePHP应用程序的新版本(或回退到旧版本)需要更改数据库模式和数据迁移怎么办?
  • 如何配置在不同部署环境下变化的属性?例如,在开发过程中使用增加的调试和日志级别,防止支付网关在开发过程中发送付款等。
  • 升级或回滚部署会对客户产生什么影响?例如,如果他们正在进行交易(例如购买产品)中怎么办?
  • 我们如何处理不同的CakePHP安装类型?文件可能需要安装在不同的位置,具体取决于安装类型。我们如何知道文件应该安装在哪里?CakePHP手册描述了开发、生产和高级安装。
  • 1个回答

    12
    这些场景合理吗?还是我需要用不同的方式考虑开发和部署?看起来很合理,尽管FTP同步让我想起了Dreamweaver。:)考虑使用一个允许你通过(S)FTP连接到服务器的IDE,或者使用以下工具之一......有哪些工具可以帮助简化开发/部署?我是否最好使用Ant、脚本等自己的解决方案?JenkinsCapistranoPhing、Ant、git push/pullrsync等等。如何处理部署期间的数据库问题?如何为特定部署指定数据库连接属性?如果更新到CakePHP应用程序的新版本(或回滚到旧版本)需要更改数据库模式和数据迁移怎么办?使用cake schema generatecake schema run update。如何配置在部署之间变化的属性?例如,在开发过程中增加调试和日志记录级别,在开发过程中防止向支付网关发送付款等。

    列出不同的文件名(例如 core.php.prdcore.php.dev),并在安装时重命名。

    升级或还原部署如何影响客户?例如,如果他们正在进行交易(例如购买产品)怎么办?

    为了避免应用程序文件处于不一致状态,您应该首先将应用程序的新副本检出到一个新文件夹中。复制任何用户提交的文件,重命名*.prd文件,然后通过重命名或使用符号链接切换旧副本和新副本。会话应存储在可以生存升级的地方(即phpdatabase,而不是cake)。

    我们如何处理不同的 CakePHP 安装类型?根据安装类型,文件可能需要安装在不同的位置。我们如何知道文件应该安装在哪里?CakePHP 书籍描述了开发、生产和高级安装。

    开发安装与使用.htaccess文件重定向请求的任何 PHP 应用程序一样安全(除非您卸载/错误配置mod_rewrite和 PHP,否则人们看不到您的代码)。生产安装略微复杂,除非您可以编辑虚拟主机的文档根目录。高级安装允许您在文件系统中的任何位置安装 Cake,但会增加更多复杂性(因为您的文件位于两个单独的位置,但可能位于单个存储库中)。


    备用的数据库迁移脚本可以在这里找到:https://dev59.com/G3E85IYBdhLWcg3w9orw - deizel.

    网页内容由stack overflow 提供, 点击上面的
    可以查看英文原文,
    原文链接