PHP中的开发和生产环境

时间:2009-01-01 16:12:50

标签: php web testing environment

我想为用PHP编写的新网站设置两个环境。一 - 开发新版本并测试它们。第二次制作我的实际稳定版本的网站将可用。

PHP中的网站将包含许多PHP和其他文件(JS,图像等)。所以我认为如何以最佳方式准备这个环境,以便轻松地进行源代码控制,从开发环境快速复制网站到生产环境,并为网络上的人们提供开发版本,这样他们就能看到实际的工作进度并建议更改或报告错误。

请你给我一些建议,从这个出发点开始?是否有关于这方面的书籍(从实际的角度来看?)或者您是否有经验或提示需要注意什么以及使这个过程变得容易和对我以及参与开发新项目的其他人有益的重要事项?

4 个答案:

答案 0 :(得分:13)

首先使用以下三个:

  1. SVN - 这将为您提供源代码控制并允许您跟踪更改。您可能希望获得最基本的图形用户界面(Tortoise是一种受欢迎的图形用户界面)以简化学习曲线。

  2. RSYNC - 这将允许您使用单个命令简化本地和远程站点之间的同步。 RSYNC使用diff引擎进行同步,这意味着增量同步只需几秒钟即可完成。在激烈的编程过程中,我有时会在一小时内同步4-5次,因为我可以很容易地快速推出一些变化。

  3. MySQLDump - 这将允许您从生产站点导入/导出数据。我通常每周都会这样做一次,以便在我的本地服务器上获取生产数据,这不仅可以为我提供本地备份,还可以让我在本地测试环境中使用生产数据。

  4. 从长远来看,这三个人将为您节省大量时间并允许您扩展。稍后,您可以查看自动构建工具,单元测试框架,xml文档框架等,以构建一些严肃的产品。

答案 1 :(得分:6)

我使用这样的设置,所以我可以给你一些如何做到这一点的提示。我已经做了一段时间了,在这里和那里解决问题,觉得这是一个我可以说老实说非常有效的设置。

小注意:我在OSX上工作,因此如果你是linux / windows用户,所使用的特定应用程序可能与你有点不同。

我在Mac上运行生产'服务器',使用MAMP(www.mamp.info)轻松为我提供带有PHP和MySQL的Apache服务器。您可以使用类似的工具,如XAMPP或手动安装所有内容,这完全取决于您。

然后我有我的实时服务器,我的网站和客户网站都在这里托管。对于每个新的网站项目(让我们以abc.com为例)我创建了一个名为staging.abc.com的子域,我在其上进行测试。在实际上线之前,用完全相同的硬件和软件测试内容总是一件好事。

我使用Subversion(或简称SVN)来满足我的版本需求,并且每当我将新更新的版本发送到SVN服务器时,我都可以轻松添加“钩子”以自动更新我的在线生产服务器。 SVN还允许您轻松地在同一个项目中与多个人合作。有关SVN以及如何使用它的更多信息,我建议在这里找到很棒的(免费的)在线书籍:http://svnbook.red-bean.com/

简而言之:我在MAMP本地工作,为我提供了一个本地“工作”服务器。之后,我在staging.abc.com位置进行在线测试,看看是否一切正常,可能允许其他人看到项目(如果您希望客户看到正在发生的事情,例如,之后我实际上通过将项目放在实际域上来发布项目。

可以采取更多措施来优化您的工作流程,但这应该可以帮助您入门。

希望这有帮助!

-Dave

答案 2 :(得分:3)

如果可能的话,我更喜欢在开发人员本地方框上进行开发。如果涉及其他开发人员,您可能想要设置版本控制,以便可以检查数据库模式,javascript,css和php代码,并在开发人员的个人盒子上轻松设置(假设他们有正确的LAMP / WAMP设置)

我也看到了人们在发生主动开发的服务器上维护测试网站的地方。我会避免这种情况用于主动开发,但是将其用于最新签入代码(最新版本)的黑盒测试。

一旦您的测试网站签出,那么将您的版本控制中的代码导出到实时网站所在的位置。使用svn,您只需使用svn update更新实时代码,指定用于指示当前实时版本的修订版或标记。

我还建议将一些设置(例如db access / username / pass)保存在一个不受版本控制的单独包含文件中。将其保留在其他地方,让开发人员在他们的PC上插入对本地数据库的访问权限。在您的服务器上,插入访问数据库所需的一切。这应该是非常简单的代码(定义一些变量),所以没有它的版本控制不应该是一个大问题。如果你愿意,你可以控制模板版本,但我不会将真正的数据库信息放到版本控制中。

答案 3 :(得分:0)

如果您想使用MAMP或WAMP在本地开发然后将其推送到github,然后从github更新您的实时站点,这是一个非常好的起点: http://www.mybringback.com/bringers/14509/git-local-and-shared-server-development-environment-with-ssh-setup/

希望有所帮助。