繁体   English   中英

设置开发服务器

[英]Setting up a development server

在开发PHP应用程序时,最好有一个你开发/测试的服务器,然后是一个实时服务器,一旦它准备好就放好了。

好的,但是怎么样?

如果您通过托管公司托管,您如何设置自己的开发服务器进行测试,模仿所有LAMP设置作为您的实时服务器? 因为如果它们不同,那么测试一个与现场不同的那个,就会失败了吗?

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

还有什么是用于在“开发服务器”中检查“实时服务器”文件的最佳工作流程,然后将它们检入实时服务器?

谢谢!!

我日常工作中的两点:

  • XAMPP是您在Windows上设置Apache / mySQL / PHP堆栈的一站式商店。 我用它开发并部署到Linux机器,没问题。

  • 如果你想在家庭服务器或虚拟机上设置一个Linux环境,我前一段时间问了一个你可能感兴趣的问题: 预装Linux for Web Developers?

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

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

不要忘记PHP是一种非常便携的语言。 如果你不使用任何特定的命令行工具或完全奇特的扩展,使PHP应用程序在Linux上工作,甚至在Windows上都是一些设置和细节的问题,但不再是一个大问题。

还有什么是用于在“开发服务器”中检查“实时服务器”文件的最佳工作流程,然后将它们检入实时服务器?

这个领域有很多很多意见和做法。 就我个人而言,无论我在哪里使用它,以下工作流程都是理想的 - 我仍然在所有项目和所有客户中实现这一点。

  1. 在IDE中本地编辑文件

  2. 通过IDE的内置FTP功能上传到开发服务器

  3. 测试开发服务器

  4. 一旦功能被测试并在开发服务器上运行(即它已“完成”),请将整个包检查到Subversion(或其他)存储库中

  5. 在实时服务器上,让构建脚本从存储库中检出最新版本,将其下载到具有修订号的目录,完成后,将指向上一版本的符号链接更改为最新版本。

这样,您对实时环境所做的每个更改都会记录在版本控制系统中,如果是秒,则还原到以前的版本是一个问题。 对我而言,与在任何地方使用纯FTP相比,这是一个巨大的解脱。

可能也是一个有趣的问题: 为PHP项目设置部署/构建/ CI循环

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

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

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

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

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

发展,分期和生活。 暂存和实时几乎是一样的,这样我就可以在从开发到分期时消除任何问题。 在推出生活并最终注意到出现问题之前,它为我提供了另一个安全层。

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

[production]

[staging : production]

[testing : production]

[development : production]

在那里,您可以为数据库连接定义不同的选项,即

因此,当您将开发机器上的更改检查到subversion并在实际系统上进行部署时,您不必更改配置。 它应该工作。

就工作流程而言,这通常是针对小型网站的情况。 但是,根据项目的大小,使用Git或Subversion等版本控制可能是个好主意。

在要求托管公司为您设置两个相同的托管环境时,您不需要去任何地方。 大多数时候他们拥有最新版本的php,mysql和apache。 我在Linux机器上开发,已经有灯泡设置,所以我的工作流程非常无缝,我使用带有post-commit钩子的svn上传到实时服务器。 如果您担心您的'dev'服务器和托管服务器之间不兼容,最简单的方法是制作一个phpinfo文件,

<?php phpinfo(); ?>

并检查您的托管服务器是否禁止您在开发服务器上使用的任何特殊功能(托管公司很少阻止重要的事情,如果他们这样做,您可以轻松地发送支持电子邮件,99%的时间他们将帮助您实现您需要的任何细节。但是就设置您的开发环境而言,我会走下去抓取虚拟机的轨道,并安装ubuntu,找到一个教程,让ubuntu成为一个Web服务器(严重的只有几个 - 得到命令),你将吸烟天然气!

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM