在开发PHP应用程序时,最好有一台您开发/测试的服务器,然后在一台活动服务器上准备好一切。
好的,但是怎么做呢?
如果您通过托管公司托管,如何设置自己的开发服务器来测试模拟所有LAMP设置作为您的实时服务器?因为如果它们不同,那么在与活动版本不同的版本上进行测试,就会违背目标,对吧?
是不是更好地通过同一家托管公司使用另一台服务器,并要求他们使开发和实时服务器具有完全相同的设置?
还有,从“实时服务器”中检出文件,在“开发服务器”中对其进行操作,然后将它们重新签入到实时服务器时,最好的工作流程是什么?
谢谢!!
发布于 2010-02-23 04:56:24
我的日常工作中有两点:
是不是更好地通过同一家托管公司使用另一台服务器,并要求他们使开发和实时服务器具有完全相同的设置?
如果你买得起第二台服务器,这可能是最好的选择。另一方面,您可以随意升级和摆弄一台本地计算机,所有这些都只需一台第二台租用服务器的长期成本的一小部分。如果有疑问,我会选择本地机器。
别忘了PHP是一种非常可移植的语言。如果您不使用任何特定的命令行工具或完全陌生的扩展,那么让PHP应用程序在line上运行,甚至在Windows上运行都是一些设置和细节的问题,但这不再是什么大问题。
还有什么是最好的工作流程,用来从“实时服务器”中检出文件,在“开发服务器”中处理这些文件,然后再将它们签入到实时服务器中?
在这个领域有很多很多的观点和实践。对我个人来说,下面的工作流程已经被证明是理想的,无论我使用它的地方-我仍然在为所有项目和所有客户实现它的过程中。
<代码>G223
这样,您对实时环境所做的每一次更改都会记录在版本控制系统中,并且恢复到以前的修订版本是一个问题。对我来说,与在任何地方使用纯FTP相比,这是一个巨大的解脱。
可能还有一个有趣的问题:
发布于 2010-02-23 04:56:54
您可以通过phpinfo()检查所有生产服务器的设置,并将它们复制到您的开发环境中,而不需要将它们放在同一个提供程序上。
我通常将代码提交给源代码控制,并在生产环境中签出,通过.htaccess隐藏所有存储库信息,例如,请参阅here。
另一种(不太推荐的)选择是在开发机器中拥有您的主源文件,一旦它准备好通过FTP上传,就会有各种免费的工具,它们只会上传更改过的文件。
发布于 2010-02-23 04:58:39
至于服务器端,您有多种可能性。如果有Apache,就可以使用vHosts,它有两个不同的DocumentRoots:一个用于实时版本,另一个用于开发。或者您可以将开发环境放在本地计算机上,然后将实时(+ staging)放在您的专用服务器/ and空间上。
在我们当前的项目中,我们有一个三层系统:
开发、试运行和上线。staging和live几乎是一样的,所以我可以在从一个开发阶段部署到另一个阶段时消除任何问题。它为我提供了另一个安全层,然后开始使用,并最终注意到出了问题。
考虑到推出的工作流程,您应该创建一个应用程序配置,您可以在其中定义几个应用程序环境(开发和生产),这些环境根据URL、定义的环境变量或其他内容自动选择它们的环境。例如,在Zend Framework中,这种配置驱动的行为被内置到您的应用程序中。在您的config.ini文件中,您有一个如下所示的模板:
[production]
[staging : production]
[testing : production]
[development : production]在那里你可以定义不同的选项,比如说,你的数据库连接。
因此,当您将dev机器上的更改签入subversion并将其部署到您的实时系统上时,您不必更改配置。它应该能正常工作。
https://stackoverflow.com/questions/2314088
复制相似问题