web-dev-qa-db-ja.com

XAMPPを複数バージョンのPHPで動作させる

異なるバージョンのPHPで動作するようにXAMPPをインストールするにはどうすればよいですか?

一部のスクリプトはWAMPで実行するとバグが多いため、XAMPPを使用しています。 PHPのさまざまなバージョンをサポートしているため、私はWAMPを使用しています。

しかし、私はそれをXAMPPだけに合理化して、私のWeb開発をより管理しやすくしたいと考えています。

複数のバージョンのPHPで動作するようにXAMPPを構成することは可能ですか?それとも、代替ソリューションで探す必要があるものですか?

注:私はWindows 7で実行しています。

18
Pennf0lio

ご注意ください
この回答は、XAMPPの新しいバージョンでは無効です。


最初に、XAMPPからApacheを停止する必要があります。そして、

Cmdに移動し、XAMPPフォルダーに切り替えます。たとえば、XAMPPフォルダーがC:\にある場合

C:\>cd C:\XAMPP 

このフォルダーには、コマンドラインから実行されるphp-switch.batという名前のファイルがあります。そうでない場合は、php-switch.batを直接実行することもできます。

現在のバージョンと切り替え手順が表示されます。たとえば、4と入力してPHP 4に切り替えてから、手順に従います。

php-switch.bat running in the terminal

PHP 4はXAMPP\PHPディレクトリにインストールされ、正常に切り替わります。次に、Apacheを再度有効にします。

8
Ye Lin Aung

最善の方法は、PHP

/Apache/conf/extra/httpd-xampp.conf

PHP使用したい新しいバージョンを反映する

私の場合、PHP5.4をC:\ XAMPPLITE\PHP5.4に解凍し、このファイルの次のようなキー行を更新しました。

SetEnv PHPRC "C:\\xampplite\\php5.4"

LoadFile "C:/xampplite/php5.4/php5ts.dll"

PHPINIDir "C:/xampplite/php5.4"

また、php5Apache2_2.dllの正しいバージョンがインストールされていることを確認する必要があります

これを確認するために、新しいバージョンのphp5Apache2_2.dllを一意の名前でApacheモジュールディレクトリにコピーし、それに合わせて構成を変更しました。

copy php5.4\php5Apache2_2.dll Apache\modules\php5Apache2_2-5_4.dll

そしてhttpd-xampp.confファイル

LoadModule php5_module modules/php5Apache2_2-5_4.dll
5
Judder

その機能(つまり、Apache、mysql、およびphpコンポーネントのビルドを組み合わせて組み合わせる機能)が必要で、サードパーティのバンドルされたAMPスタックアプリを好む場合は、WindowsのオプションとしてWAMPServer 2.0を検討できます。私が調べたバンドルされたAMPオプション(Windows、Mac、およびLinuxの場合)は、コンポーネントビルドのスワップアウトを許可していません(レガシーコードのために実際に提供されただけなので、コンポーネントビルドとしてPHP4およびPHP5のスイッチを含めていません) PHP5の後方互換性が高くなり、PHP4の量が少なくなるまでの問題)。

ほとんどのサードパーティバンドルAMPスタックアプリ、特にUnixベースのOSビルド(MacおよびLinux)では、「アプリ」ルートディレクトリと同じディレクトリ構造内にスタックコンポーネントを配置するには、特定のディレクティブを使用して各コンポーネントをコンパイルする必要があります。最終的に、いくつかのフォルダー参照とバイナリ署名を各コンポーネントにハードワイヤーする引数は、それ自体を構築します。具体的には、mysqlコンポーネントとphpコンポーネントが共有され、特に参照およびインクルードされる必要があるライブラリオブジェクトがあるためです。ソースのコンパイル中に...(そして、ほとんどの場合、ほとんどの場合、オプションのディレクティブとライブラリをすべて含めてコンパイルするだけではないようです...それが問題を解決するかどうかわかりません私のプロジェクトではまだ答えています)。

もう1つの注意点は、同じコンテキスト内にあるためです...コンポーネントの自律インストールと_AMPPスタックの使用に関するコメントに関しては、3つの自律を使用して設定しようとしたので、残念ながら、上に書いた内容しかわかりませんコンポーネントのソースコードを使用して、ケーキを作って食べようとしましたが、これまでにそれらのいずれかを扱った経験はありませんでした。したがって、開発者が行う理由は2つあります。ローカル開発環境ではスタックを使用する必要があります。

1)プロジェクトがこのテクノロジーを利用しているが、1つのコンポーネントのコア内で明示的に機能を拡張していない場合は、ほとんどの場合、実行することで、必要な作業に取り組むことができます。 3つのコンポーネントが互いにシームレスに通信するために必要なすべての構成を把握するため。どのディレクティブ、モジュール、ライブラリ、コンパイル引数などが必要かを知るために、何日も苦労する可能性があります。あなたがすでにそれを知っているなら素晴らしいですが、あなたがそうするつもりでない限り、知らない人にはそれを勧めないでください。

2)バンドルされたスタックは自律的で、OS構成ファイルから分離されているため、重大な結果なしに開発環境を破棄できます...ファイルを必要な「etc」フォルダーに展開するスクリプトを実行する場合、私はしませんあなたのことは知っていますが、私は時々間違いを犯す可能性があり、../XAMPP/etcフォルダーの間違いは/ etcフォルダーの間違いよりもはるかに簡単です。

3)GUI ... GUI ... GUI ...誰もがコマンドラインモーツァルトであるとは限りません。AMPPスタックはすべて、思いのままにオンとオフを切り替えるための素晴らしいGUIを提供します。 GUIが必要な場合は、AMPPスタックアプリに引き寄せられます...気にしない場合は、ポイント1と#2にどれだけの重量または在庫を置いたかによって異なります。

とにかく、「誰かをあくびにする方法」の論文で申し訳ありませんが、誰かがこれから何かを得られることを願っています。

1
Eric Galuskin

スクリプトにバグがある場合、どのサーバーパッケージを切り替えてもスクリプトはバグのままです。問題がサーバー構成にある場合は、すぐに調べて整理してください。

実際のハードコアソリューションは、サーバーコンポーネント(およびその構成)を手動でインストールおよび管理することです。 WAMPから自己管理型のサーバーインストールに切り替えたので、パッケージ化されたサーバーソリューションの必要性を二度と感じたことはありません。

1
antichris

XAMPPは、複数のバージョンのPHPでコンパイルされています。あなたが選ぶ。

https://www.apachefriends.org/download.html

0
Shai