首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >设置开发服务器

设置开发服务器
EN

Stack Overflow用户
提问于 2010-02-23 04:53:35
回答 5查看 11.8K关注 0票数 9

在开发PHP应用程序时,最好有一台您开发/测试的服务器,然后在一台活动服务器上准备好一切。

好的,但是怎么做呢?

如果您通过托管公司托管,如何设置自己的开发服务器来测试模拟所有LAMP设置作为您的实时服务器?因为如果它们不同,那么在与活动版本不同的版本上进行测试,就会违背目标,对吧?

是不是更好地通过同一家托管公司使用另一台服务器,并要求他们使开发和实时服务器具有完全相同的设置?

还有,从“实时服务器”中检出文件,在“开发服务器”中对其进行操作,然后将它们重新签入到实时服务器时,最好的工作流程是什么?

谢谢!!

EN

回答 5

Stack Overflow用户

回答已采纳

发布于 2010-02-23 04:56:24

我的日常工作中有两点:

  • 是在Windows上设置Apache/mySQL/PHP堆栈的一站式商店。我使用它进行开发并部署到Linux机器上,没有问题。
  • 如果您想在家庭服务器或虚拟机上设置Linux环境,我刚才问了一个您可能感兴趣的问题:

是不是更好地通过同一家托管公司使用另一台服务器,并要求他们使开发和实时服务器具有完全相同的设置?

如果你买得起第二台服务器,这可能是最好的选择。另一方面,您可以随意升级和摆弄一台本地计算机,所有这些都只需一台第二台租用服务器的长期成本的一小部分。如果有疑问,我会选择本地机器。

别忘了PHP是一种非常可移植的语言。如果您不使用任何特定的命令行工具或完全陌生的扩展,那么让PHP应用程序在line上运行,甚至在Windows上运行都是一些设置和细节的问题,但这不再是什么大问题。

还有什么是最好的工作流程,用来从“实时服务器”中检出文件,在“开发服务器”中处理这些文件,然后再将它们签入到实时服务器中?

在这个领域有很多很多的观点和实践。对我个人来说,下面的工作流程已经被证明是理想的,无论我使用它的地方-我仍然在为所有项目和所有客户实现它的过程中。

  1. 在集成开发环境中本地编辑文件
  2. 通过开发服务器上的集成开发环境
  3. 测试的内置FTP功能上载到开发服务器
  4. 在开发服务器上测试并正常工作后,将整个包签入Subversion (或其他) repository
  5. On实时服务器,让构建脚本从存储库签出最新版本,将其下载到具有修订号的目录,完成后,将指向以前版本的符号链接更改为最新版本。

<代码>G223

这样,您对实时环境所做的每一次更改都会记录在版本控制系统中,并且恢复到以前的修订版本是一个问题。对我来说,与在任何地方使用纯FTP相比,这是一个巨大的解脱。

可能还有一个有趣的问题:

票数 14
EN

Stack Overflow用户

发布于 2010-02-23 04:56:54

您可以通过phpinfo()检查所有生产服务器的设置,并将它们复制到您的开发环境中,而不需要将它们放在同一个提供程序上。

我通常将代码提交给源代码控制,并在生产环境中签出,通过.htaccess隐藏所有存储库信息,例如,请参阅here

另一种(不太推荐的)选择是在开发机器中拥有您的主源文件,一旦它准备好通过FTP上传,就会有各种免费的工具,它们只会上传更改过的文件。

票数 3
EN

Stack Overflow用户

发布于 2010-02-23 04:58:39

至于服务器端,您有多种可能性。如果有Apache,就可以使用vHosts,它有两个不同的DocumentRoots:一个用于实时版本,另一个用于开发。或者您可以将开发环境放在本地计算机上,然后将实时(+ staging)放在您的专用服务器/ and空间上。

在我们当前的项目中,我们有一个三层系统:

开发、试运行和上线。staging和live几乎是一样的,所以我可以在从一个开发阶段部署到另一个阶段时消除任何问题。它为我提供了另一个安全层,然后开始使用,并最终注意到出了问题。

考虑到推出的工作流程,您应该创建一个应用程序配置,您可以在其中定义几个应用程序环境(开发和生产),这些环境根据URL、定义的环境变量或其他内容自动选择它们的环境。例如,在Zend Framework中,这种配置驱动的行为被内置到您的应用程序中。在您的config.ini文件中,您有一个如下所示的模板:

代码语言:javascript
复制
[production]

[staging : production]

[testing : production]

[development : production]

在那里你可以定义不同的选项,比如说,你的数据库连接。

因此,当您将dev机器上的更改签入subversion并将其部署到您的实时系统上时,您不必更改配置。它应该能正常工作。

票数 2
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/2314088

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档