web-dev-qa-db-ja.com

PHPには、PythonのvirtualenvまたはRubyのサンドボックスと同等のものはありますか?

私は、Pythonのvirtualenvツールを使用して、作成したプロジェクトのデプロイメント環境を模倣できる個別の環境を作成することに慣れています。

今、私はphpプロジェクトに取り組んでいるので、それに相当するものがあるかどうか疑問に思っていますか?具体的には、Apacheで1つの(古い)バージョンのphpを使用して1つの仮想ホストを実行できることを望んでいます。

私の開発マシンはubuntu 11.04を実行しているので、そのプラットフォームで動作するソリューションが推奨されます。

42
Zxaos

Mod_phpを使用していると仮定すると、複数の異なるバージョンを同じApacheインスタンスにロードする方法はありません。 PHPをCGIまたはFastCGIとして実行している場合は、複数の異なるバージョンを実行できますが、これ自体がmod_phpとの動作にいくつかの違いをもたらします。

10

Apache内でmod_phpを使用して異なるバージョンのphpをロードすることは不可能に思われるため、デプロイと開発のセットアップを模倣する最も簡単な方法は、回避したい仮想マシンを使用することです。

開発者のvmの負担を少し簡単にする1つの方法は、 vagrant のようなものを使用することです。 2つのファイル(vagrantファイルとchef/puppetファイル)を使用すると、VMを「バージョン管理」し、それらを簡単に作成して、プロジェクトごとに、必要に応じて破棄できます。

7
ashwoods

仮想マシンのもう1つの代替手段は docker です。

7
mozey

virtPHPは、単一のマシン上で複数の分離されたPHP=環境を作成および管理するためのツールです。これは、Pythonのvirtualenvに似ていますが、PHP向けです。(README)

https://github.com/virtphp/virtphp

7
ecurbelo

あなたはこれに興味があるかもしれません: https://github.com/phpenv/phpenv

5
smg628

現在のところ、この問題に対する標準の解決策はありません。ここで説明する唯一の解決策は、VagrantとpuPHPet.comです: https://drupal.org/node/2055947 なぜできないのかPythonのvirtualenvまたはRubyのrbenvのような環境がありますか?それは素晴らしいオープンソースプロジェクトを構成しています。 PHPの複数のインスタンスは、グローバルではなくサンドボックスでいくつかのライブラリをテストしたい場合に便利です。Composerなどのパッケージマネージャーを使用して、異なるプロジェクトの依存関係をインストールできます。

1