PHP有一个相当于Python的virtualenv或ruby的沙箱?

我习惯使用Python的virtualenv工具来创build单独的环境,可以模仿我编写的项目的部署环境。

现在,我将要开始一个PHP项目,我想知道是否有任何相当的? 具体来说,我希望能够在一个(旧)版本的PHP上运行一个虚拟主机的Apache,而其他一切运行在正常的最新版本。

我的开发机器运行Ubuntu 11.04,所以在这个平台上工作的解决scheme将是首选。

假设你正在使用mod_php,没有办法将多个不同的版本加载到同一个Apache实例中。 如果您将PHP作为CGI或FastCGI运行,则可以运行多个不同的版本,但这本身会引入与mod_php的某些行为差异。

当用mod_php在apache中加载不同版本的php似乎不是可行的时,模仿部署和开发设置的最简单的方法将是一个虚拟机,你说你想避免这个虚拟机。

让开发者更轻松一点的方法就是使用stream浪汉这样的东西。 有两个文件(vagrant文​​件,厨师/ puppet文件),你可以“版本化”你的vm,很容易创build它们并在需要的时候销毁它们。

泊坞窗是虚拟机的另一种select。

virtPHP是在单个机器上创build和pipe理多个孤立PHP环境的工具。 这就像Python的virtualenv,但对于PHP。 (自述)

https://github.com/virtphp/virtphp

(在几年内没有编码PHP,所以这可能是过时的)

据我记得你只需要指向你的库所在的另一个目录(包括PATH),使用如下所示:

include_path = .:/usr/local/lib/php:./include (this goes in php.ini, default libararies) 

并在你的PHP文件中:

 ini_set("include_path", ".:../:./include:../include"); 

PHP从来没有像perl / python / ruby​​这样的健壮的打包系统和库存储库,PEAR试图朝着这个方向发展,但是它相对封闭,很难在多项目环境中configuration。

Phark正在尝试构build一个用于php的brew / bundler端口, https://github.com/lox/phark ,虽然它没有部署就绪。

您可能对此感兴趣: https : //github.com/phpenv/phpenv

到目前为止,这个问题没有解决scheme。 接近的唯一解决scheme是Vagrant和puPHPet.com,如下所述: https ://drupal.org/node/2055947为什么我们不能有像Python的virtualenv或ruby的rbenv这样的环境? 它构成了一个不错的开源项目。 如果我们想在沙箱中testing一些库,而不是在全局范围内testing一下PHP的多个实例,那么可以很方便。 我们可以使用像Composer这样的包pipe理器为不同的项目安装依赖项。