php是否具有与python的virtualenv或ruby的沙盒等价的功能?

php是否具有与python的virtualenv或ruby的沙盒等价的功能?,php,configuration,environment,Php,Configuration,Environment,我习惯于使用python的virtualenv工具创建单独的环境,这些环境可以模拟我编写的项目的部署环境 现在,我将在一个php项目上工作,我想知道是否有类似的东西?具体地说,我希望能够在apache上用一个旧版本的php运行一个virtualhost,而其他一切都在正常的最新版本上运行 我的开发机器运行的是Ubuntu11.04,因此最好使用在该平台上工作的解决方案。已经多年没有编写php了,所以这可能已经过时了 据我记忆所及,您只需指向库所在的另一个目录include PATH,使用如下方式

我习惯于使用python的virtualenv工具创建单独的环境,这些环境可以模拟我编写的项目的部署环境

现在,我将在一个php项目上工作,我想知道是否有类似的东西?具体地说,我希望能够在apache上用一个旧版本的php运行一个virtualhost,而其他一切都在正常的最新版本上运行


我的开发机器运行的是Ubuntu11.04,因此最好使用在该平台上工作的解决方案。

已经多年没有编写php了,所以这可能已经过时了

据我记忆所及,您只需指向库所在的另一个目录include 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试图朝着这个方向发展,但相比之下,它非常封闭,很难在多项目环境中进行配置


Phark正在尝试为php构建brew/bundler端口,但尚未准备好部署。

假设您使用的是mod_php,则无法将多个不同版本加载到同一Apache实例中。如果您以CGI或FastCGI的形式运行PHP,则可以运行多个不同的版本,但这本身会在行为上与mod_PHP有所不同。

由于在apache中使用mod_PHP加载不同版本的PHP似乎是不可能的,模仿部署和开发设置的最简单方法是使用virtualmachine,你说过你想避免的


让开发人员减轻vm负担的一种方法是使用类似的工具。有了两个文件——vagrant文件和chef/puppet文件,您就可以对vm进行版本化,轻松地为每个项目创建并在需要时销毁它们。

虚拟机的另一个替代方案是。

到目前为止,还没有现成的解决方案。唯一接近的解决方案是Vagrant和puPHPet.com,如下所述:
为什么我们不能有一个像python的virtualenv或ruby的rbenv这样的环境?它构成了一个不错的开源项目。如果我们想在沙盒中而不是在全局范围内测试某些库,那么多个PHP实例就很方便了。我们可以使用类似Composer的包管理器为不同的项目安装依赖项

您可能对此感兴趣:

virtPHP是一种用于在一台机器上创建和管理多个独立PHP环境的工具。它类似于Python的virtualenv,但适用于PHP。自述


带有PHP选择器的Cloudlinux已经有很多年了。它与流行的控制面板(如CPanel、DirectAdmin等)集成

每个linux帐户都可以有自己的php版本,并可以选择适合它们的任何扩展


你为什么想要这样的东西?你看,PHP是向后兼容的。即使在不同的5.x版本之间,也很少有令人讨厌的差异,即使发生了这些差异,通常也很容易修复。例如,在PHP 5.3和5.2之间,没有发生太多的更改-只有两个新关键字和一些无效代码不再工作…@GlitchMr我正试图在开发服务器上精确复制部署环境,以便在部署时不会出现意外,但我不想为每个部署环境设置一个全新的虚拟机。如果我可以在apache中使用不同的virtualhost和不同版本的PHP,我将在实现这一点上走很长的路。Docker是您的解决方案。这可能适用于库版本,但似乎不适用于更改使用的核心PHP版本。true。我只是在说virtualenv的等价物。pythonbrew替代方案更符合您的需求。不过,截至2015年7月,virtPHP只针对php的命令行php cli实例。不幸的是,这无助于解决上述问题。单独的virt.environments使您能够在IDE中选择不同版本的解释器,以进行linting、代码验证等。因此,这不仅仅是关于使用不同的解释器运行应用程序。