我对如何部署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应用程序的新版本(或回退到旧版本)需要更改数据库模式和数据迁移怎么办?