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。 (自述)
(在几年内没有编码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理器为不同的项目安装依赖项。
- 最好的一般SVN忽略模式?
- 如何从Linux shell运行一个与当前不同的工作目录的程序?
- 我如何确定我的rails是否在开发环境而不是testing环境?
- 如何更改默认的Anaconda python环境
- 为我的Rails应用程序创build自定义configuration选项的最佳方法?
- 如何在不同的环境中获取mysqli错误?
- 是否有可能改变在Python中的父进程的环境?
- R中的parent.frame()和parent.env()有什么不同? 他们如何在参考呼叫方面有所不同?
- 错误:registry项'Software \ JavaSoft \ Java Runtime Environment'\ CurrentVersion'?