PHP开发中更有效的dev/test/prod环境设置是什么。。?
不幸的是,我从来没有高级开发人员或导师向我展示一些最佳实践。因此,我使用WAMP在Windows机器上开发站点(php/mysql),在生产服务器上的隐藏(密码限制)文件夹中进行测试,最后将站点移动到生产文件夹 我希望有一个更流畅/实用/防错的设置,这样从开发>测试>生产,就不会出现问题 重点/问题是(你可能会提出更多):PHP开发中更有效的dev/test/prod环境设置是什么。。?,php,Php,不幸的是,我从来没有高级开发人员或导师向我展示一些最佳实践。因此,我使用WAMP在Windows机器上开发站点(php/mysql),在生产服务器上的隐藏(密码限制)文件夹中进行测试,最后将站点移动到生产文件夹 我希望有一个更流畅/实用/防错的设置,这样从开发>测试>生产,就不会出现问题 重点/问题是(你可能会提出更多): 易用性 现场上线后易于开发/测试修改(避免在生产现场进行测试) 本地/测试/产品之间没有服务器差异(错误报告、apache设置等) 避免DB差异的问题(例如:如果添加了列,
- 易用性
- 现场上线后易于开发/测试修改(避免在生产现场进行测试)
- 本地/测试/产品之间没有服务器差异(错误报告、apache设置等)
- 避免DB差异的问题(例如:如果添加了列,如何将它们添加到prod DB.?)
- 您是跳过测试环境还是在同一环境上进行开发和测试
- 等等
谢谢。我的开发过程仍然有点粗糙,我也期待着答案
对于大型项目,我要做的是在linux桌面和windows桌面上设置git repo。如果可能的话,我会在本地测试。组件完成后,我将把我的更改推送到集中托管的git repo(通常是私有git hub帐户),或者将它们拉到dev(我将dev设置为repo,并从ssh拉)。所有MySQL更新都存储在更新文件中,我使用netbeans进行开发(尽管我使用过eclipse和其他版本,但netbeans只适合我)。以下是我的建议:
- 拥有一个纯粹用于开发的开发环境。根据您可支配的资源,保持一个临时和/或实时环境。登台环境是您测试并确保应用程序没有严重问题的地方。实时环境基本上就是您的生产设置。事实上,staging和live应该始终是相同的。在登台上重现问题并在不修改代码的情况下进行一些故障排除非常有用。请记住,这也适用于任何相关数据库
- 使用SVN或某种形式的版本控制。这样,如果有一天世界分崩离析,您将能够退回到应用程序的任何稳定版本
- 如果您使用的是Linux环境,则可以编写简单的脚本,将安装程序与最新(稳定)的开发环境同步。理想情况下,您进行开发并进行单元测试,以确保一切按照设计进行。运行脚本,登台环境将使用最新的代码库进行更新。对舞台进行功能测试,确保一切按照规范进行。运行另一个脚本,您的最新更改将移动到实时/生产环境中