如何确保开发环境= staging = production?

我在一个小小的初创公司工作,我们的预算紧张,但我们有一个。 目前,所有的开发人员都使用单独的虚拟主机在单个服 这是有问题的,因为每个需要他自己的php包括命令行脚本的path,但这不适用于虚拟主机…我知道每个开发者理想情况下都有自己的盒子,但预算不允许这样做。 分段和生产有自己的服务器和专用包含path。 什么是确保发展尽可能接近舞台/生产的好方法? 有没有一家托pipe公司可以提供某种虚拟机的生产克隆? 还有其他的策略我们应该使用吗?

我们目前正在运行CentOS,MySQL 5.1.x,Apache 2.x,PHP 5.1.x

如果你有一些预算,为什么不购买一台机器作为一个Xen服务器运行,并给开发人员虚拟机,他们可以玩? 虚拟机可以来自相同的映像,并具有与testing和生产框相同的软件设置。

你实际上可以在你的办公室购买一个专用的或设置的(成本不高),安装centos和openVZ (这是Parallels Virtuozzo Containers的开源版本)。

创build一个容器(这是一个虚拟的私人服务器)并安装,调整私人服务器,一旦你完成它,你可以closures它,并将其包装为一个模板。

完成之后,您可以使用该模板在几秒钟内触发多个私有服务器,这样您就可以为开发人员提供用于其开发/暂存/生产环境的理想服务器。

谢谢,

你不在本地开发吗? 为什么不让开发人员使用他们的本地机器进行开发,然后在开发之前进行testing。 我知道这不是确切的环境,但在我的商店运作良好。

实际上,你可以为不同的虚拟主机设置单独的path,但是我肯定会沿着虚拟机路线(我们使用标准化的KVM映像在人们的工作站上运行)和configurationpipe理(例如Puppet)来确保事物保持同步。

我几乎不知道这是否会更好地问在stackoverflow。

我喜欢的方法通常是使用脚本/程序自动化创build开发/分段/生产环境。 然后,当你有一个可以自动设置关键细节的系统后,偶尔擦掉所有的东西,并迫使开发者处理一个干净的环境。 如果您已经正确地完成了备份,并且他们正在进行VCS,并且您的设置脚本是完美的,那么他们应该永远不会有任何问题。

使用虚拟机将是理想的,但取决于你可能不需要的开发。

你提到你在命令行脚本中的php includepath有问题吗? 为什么不简单地使用php cli选项–php-ini选项来指定一个configuration文件,这个configuration文件是根据需要设置的,它们的包含path被设置为每个环境/开发者的个性化configuration文件?