XAMPPで2つのPHPバージョンを使用する方法はありますか?


157

新しい製品にはPHP 7が必要なため、PHP 7.0でXAMPPを実行しています。

しかしmysql_connect、などの関数を使用する古いプロジェクトがあります。それらはPHP 7.0では削除されています。

それで、XAMPPでPHPバージョンを簡単に変更する方法はありますか?

:古いプロジェクトを新しいバージョンと互換性のあるものにアップグレードすることはお勧めしません。私は開発者(従業員だけ)として決定を下すことができないため、実行する立場にないからです。


アップグレード以外にしたいことには回避策があるとは思いません。また、古いAPIと非推奨のAPIに互換性を持たせる方法を見つけるべきではありません。それらは完全に削除する必要があります。明らかにそれは大変な作業ですが、心の平安を保証します
ロティミ

1
MAMPでPHPのバージョンを切り替えたいときに、Apacheを停止して起動します。それは苦痛ですが、うまくいきます。
スコットCウィルソン

あなたはデュアルブートすることができます

仮想ホストを作成し、それぞれにphpのバージョンを指定できます
Aref Ben Lazrek

2
@IlmariKaronen開発ワークステーションでそれらを切り替えたい。プロジェクトAを実行しているときにPHP 5を使用したい、プロジェクトBを実行しているときにPHP 7を使用したいだけです。非常に大きな評価の回答が機能していなくても、見つかりません...そして、多くのユーザー..
I最も愚かな者である

回答:


133

単一のxamppインストール複数のPHPバージョンを同時に使用できるのに、なぜPHPバージョンを切り替えるのですか?単一のxamppインストールでは、2つのオプションがあります。

  1. 古いプロジェクトのディレクトリに対してのみ古いバージョンのPHPを実行します。 これはほとんどの場合に役立ちます。古いバージョンのPHPで実行する予定の古いプロジェクトが1つまたは2つある可能性があります。これらのプロジェクトディレクトリに対してのみ古いPHPバージョンを実行するようにxamppを構成するだけです。

  2. xamppの別のポートで古いバージョンのPHPを実行する:新しいプロジェクトと古いバージョンのPHPで同じプロジェクトを繰り返し実行する必要があるときに、古いプロジェクトを最新のPHPバージョンにアップグレードしている場合があります。次に、古いポートのPHPを別のポート(たとえば8056)に設定して、http://localhost/any_project/xamppに移動するとPHP 7を実行し、xamppに移動するとhttp://localhost:8056/any_project/PHP 5.6を実行します。

  3. virtualhostで古いバージョンのPHPを実行する: localhostでPHP 7を使用しながら、localhost56などの仮想ホストを作成してPHP 5.6を実行できます。

設定しましょう。

ステップ1: PHPをダウンロードする

そのため、xamppの下でPHP 7を実行していて、古いバージョンのPHPを追加したいとします。php.netからnts(非スレッドセーフ)バージョンのPHP zipアーカイブをダウンロードし(古いバージョンのアーカイブを参照)、でファイルを抽出しますc:\xampp\php56。スレッドセーフバージョンには、php-cgi.exeは含まれていません。

ステップ2:構成php.ini

c:\xampp\php56\php.iniメモ帳でファイルを開きます。ファイルが存在しない場合は、コピーphp.ini-developmentphp.iniてメモ帳で開きます。次に、次の行のコメントを外します。

extension_dir = "ext"

ステップ3: Apacheを構成する

xamppコントロールパネルを開き、Apacheの設定ボタンをクリックして、をクリックしますApache (httpd-xampp.conf)。テキストファイルが開き、ファイルの下部に次の設定が追加されます。

ScriptAlias /php56 "C:/xampp/php56"
Action application/x-httpd-php56-cgi /php56/php-cgi.exe
<Directory "C:/xampp/php56">
    AllowOverride None
    Options None
    Require all denied
    <Files "php-cgi.exe">
        Require all granted
    </Files>
</Directory>

注: 必要に応じて、ステップ1から3に従って、xamppインストールにPHPのバージョンを追加できます。

ステップ4(オプション1): [ディレクトリを追加して特定のPHPバージョンを実行する]

これで、PHP 5.6で実行するディレクトリを設定できます。設定ファイルの最後に以下を追加して、ディレクトリを設定します。

<Directory "C:\xampp\htdocs\my_old_project1">
    <FilesMatch "\.php$">
        SetHandler application/x-httpd-php56-cgi
    </FilesMatch>
</Directory>

<Directory "C:\xampp\htdocs\my_old_project2">
    <FilesMatch "\.php$">
        SetHandler application/x-httpd-php56-cgi
    </FilesMatch>
</Directory>

ステップ4(オプション2): [古いバージョンのPHPを別のポートで実行する]

PHP v5.6をポート8056に設定するには、次のコードを構成ファイルの最後に追加します。

Listen 8056
<VirtualHost *:8056>
    <FilesMatch "\.php$">
        SetHandler application/x-httpd-php56-cgi
    </FilesMatch>
</VirtualHost>

ステップ4(オプション3): [仮想ホストで古いバージョンのPHPを実行する]

http:// localhost56でPHP v5.6を使用するディレクトリ(htdocs56)に仮想ホスト(localhost56)を作成するには、目的の場所にディレクトリhtdocs56を作成し、hostsファイルにlocalhost56を追加して(方法を参照)、次のコードを追加します。 httpd-xampp.confファイルの最後に。

<VirtualHost localhost56:80>
    DocumentRoot "C:\xampp\htdocs56"
    ServerName localhost56
    <Directory "C:\xampp\htdocs56">
        Require all granted    
    </Directory>
    <FilesMatch "\.php$">
        SetHandler application/x-httpd-php56-cgi
    </FilesMatch>
</VirtualHost>

終了: Apacheを保存して再起動します

設定ファイルを保存して閉じ、xamppコントロールパネルからApacheを再起動します。オプション2を選択した場合は、xamppコントロールパネルにリストされている追加のポート(8056)を確認できます。

ここに画像の説明を入力してください

エラーの更新:
スクリプト「php-cgi.exe」の不正なヘッダー不正なヘッダー

上記のエラーが発生した場合は、httpd-xampp.conf再度開き、先頭に#(ハッシュ文字)を付けて次の行をコメント化してください。

SetEnv PHPRC "\\path\\to\\xampp\\php"

9
こんにちは、私はこの方法(ステップ4オプション1)を試していましたが、スクリプト 'php-cgi.exe'から不正な形式のヘッダーを取得します。
Priyanshu

@PriyanshuはPHPのインストールでよろしいですか?php somefile.phpエラーなしでコマンドラインからPHPファイルを実行できますか?
Munim Munna

2
答えには、含めるコードさえ含まれてSetEnv PHPRCいないため、コメント化することはできませんが、それでもエラーが発生します。:(
ブレット

1
こんにちは。localhost:8056を実行すると、オブジェクトが見つからないページが表示されます。
nas

1
誰かがxdebugで複数のphpバージョンを動作させることができますか?私が得たError message: End of script output before headers: php-cgi.exe
ノーマン

87

必要なバージョンのPHPをダウンロードして、独自のディレクトリに配置できます。

c:\php5\

c:\php7\

必要なのは、使用するPHPのバージョンをWebサーバー(Apache)に指示することだけです。これは、適切なモジュールをロードすることによって行います。Apacheでは、ファイルhttpd.confを見つけて適切な行を編集することでこれを行うことができます。

LoadModule php7_module c:\php7\libphp7.so

もちろん、正しいパスを理解する必要があります-これは単に説明のためです。

httpd.confサーバーを保存して再起動します。再起動しないと、変更は有効になりません。

これを行うためのGUIスイッチはありません.conf。ファイルを編集してからApacheを再起動する必要があります。これを行うには数秒しかかからず、バージョンをコメントアウトすることもできるので、「切り替え」には数回のキーストロークしかかかりません。

PHP 5を使用します。

LoadModule php5_module c:\php5\libphp5.so
#LoadModule php7_module c:\php7\libphp7.so

PHP 7を使用します。

#LoadModule php5_module c:\php5\libphp5.so
LoadModule php7_module c:\php7\libphp7.so

XAMPPの複数のバージョン、デュアルブート、別のマシンの使用、または複雑な回避策を提案している他の「ソリューション」は必要ありません。OPはXAMPPを使用して、使用するPHPのバージョンを伝えたいと考えています。これは、これを実行する最も迅速で効率的な方法であり、必要なのは1つのXAMPPインストールだけです。

2017年11月1日編集:.so Windowsにはファイルがないと言う人もいます。私が出した答えは、Macでの設定方法(の.so代わりにファイルを使用する方法)に基づいています.dll。しかし、答えの原則はまだ正確です。Apacheの構成ファイルを使用して、PHPモジュール(または)がシステムのどこにあるhttpd.confかを指定します。したがって、Windowsの唯一の違いは、ファイル名やパスの場所です。私が与えた答えは、Apache / PHPのバニラインストール(XAMPPなし)にも当てはまります。.so.dll


3
もう一度チェックした。見つかりませんでした。私のhttpd.confファイルを確認してください。これはそのコピーです。 freetexthost.com/sjxz4lh1i5変更する必要がある行を見つけた場合はお知らせください。
私は最も愚かな人です

2
XAMPPへのlibphp7.soおよびconfファイルへのLoadModule文字列はありません
Federico Schiocchet

2
このエントリも見つかりませんでした。また、phpディレクトリも検索しましたが、.soファイルはまったく見つかりませんでした。
Eoin 2017年

19
v3.2.2では、この行はxampp / apache / conf / extra / httpd-xampp.confにあります
Manuel

5
1行だけではありません。httpd-xampp.confの適切な部分を編集する必要があります。そのため、必要があるたびにhttpd-xampp.conf全体を切り替えることをお勧めします。
Jeffz

34

私のように2つの異なるxamppsをダウンロードしてインストールできます(最初はphp7、2番目はphp5)。 ここに画像の説明を入力してください

そして、それをしたくない場合は、wampを使用して、ここに示すようにバージョンを変更することをお勧めします。


4
なぜこれを行うのですか?同じソフトウェアをたくさんインストールしますが、わずかな違いがあります(ApacheやMySQLのような残りのソフトウェアがまったく同じである場合、異なるバージョンのPHP)。XAMPPの1つのインストールを使用して、適切なバージョンのPHPを指定するだけのソリューションを投稿しました。
アンディ

15
なぜこれを行うのですか?それが機能するので、時間を節約できれば、複数のapacheとmysqlをインストールしてもかまいません。
Maulik Gangani 2017

23
ここではベストプラクティスを気にする必要はありません。それはローカル環境です
Ricardo Vigatti 2017

2
私はこのアプローチを使用しています。さらに、C:\ ProgramData \ Microsoft \ Windows \ Start Menu \ Programs \ XAMPP56やC:\ ProgramData \ Microsoft \ Windows \ Start Menuなど、インストールごとに特定のスタートメニューエントリを追加することをお勧めします\ Programs \ XAMPP7の例
Ricardo Vigatti 2017

2
これが良い解決策ではない場合、正しい解決策を投稿しないのはなぜですか?実際、同じxamppに2つのバージョンをインストールすることは非常に困難であり、ここでのすべての解決策は間違っています...
Federico Schiocchet

12

私はDockerを使用することをお勧めします。これにより、環境をさまざまなコンポーネントに分割し、必要なコンポーネントをいつでも混合して一致させることができます。

Dockerを使用すると、あるコンテナをMySQLで実行し、別のコンテナをPHPで実行できます。これらは別々のイメージであるため、2つのコンテナー(1つはPHP 5、もう1つはPHP 7)を使用できます。どちらを使用しても起動でき、ポート80を両方のコンテナーにマップできます。

https://hub.docker.comには、事前に構成された幅広いイメージがあり、手間をかけずにインストールして実行できます。

また、イメージとしてportainerを追加しました。これにより、Dockerイメージ内から-Dockerセットアップのさまざまな側面を管理できます(このコンテナーを起動時に開始して、コマンドラインを使用する手間を省きました)。コマンドラインから初めてイメージを構成して起動する方が簡単な場合がありますが、セットアップが完了すると、Webインターフェイスを介してイメージを開始および停止できます。

また、両方のコンテナを同時に実行して、それぞれに個別のポートをマッピングすることもできます。したがって、ポート80はPHP 5に、81はPHP 81(2017年にこれを見ている場合はPHP 7)にマッピングできます。

Dockerをインストールする方法(https://docs.docker.com/engine/installation/)やその他の「ハウツー」タイプの方法のロードに関するさまざまなチュートリアルがあります。開発環境の構成については、http://www.masterzendframework.com/docker-development-environment/を試してください


私はこれを2番目にします。あなたの会社を賛成し、Dockerを実行してください。PHPのバージョンを切り替え、新しい開発者をより早くオンボーディングし、導入を容易にし、本番環境での驚きはありません。
クリスピーリング2017

81からPHP81。PHP7を意味しますか?私たちはまだPHP 81から少し離れていると思います:)
アンディ

2
Errrr ...私は本当に81を意味しました(私は私の答えが将来の証拠であることを保証しています:-/)
Nigel Ren

1
@NigelRen私はそれを投票していませんが、XAMPP内でそれがどのように可能であるかを明らかにするのではなく、完全に異なるソリューション(Docker)を使用して提案しているためだと思います。あなたの答えは問題に対する(非常に良い)代替ソリューションですが、尋ねられた質問への答えではありません。
アンディ

7

私はUniserverを使用しています。

この機能が組み込まれています。

http://www.uniformserver.com/

とても簡単です。

Uniform Serverは、Windows用の無料の軽量WAMPサーバーソリューションです。24MB未満のモジュラー設計には、Apache2、Perl5、PHP(PHP53、PHP54、PHP55またはPHP56の切り替え)、MySQL5またはMariaDB5、phpMyAdminまたはAdminer4の最新バージョンが含まれています。インストールは必要ありません!レジストリのほこりはありません!開梱して起動してください!

それはフラッシュドライブで実行されます。cronエミュレーション、perl、mariaDB、Mysqlのいくつかのバージョン、filezillaサーバーなどのサポート。

ここに画像の説明を入力してください


これは私が考える最良の解決策です。私は自分の命を救った。
skpaul

ウイルスの警告が表示されます。Win32 / Uwamson.A!ml
Norman Huth

6

XAMPPの2つの異なるバージョンを使用できます。

  • これらのファイルをhttps://www.apachefriends.org/download.htmlからダウンロードし、C:\ 5.6.31 \ xamppやC:\ 7.1.18 \ xamppなどの任意のディレクトリにインストールします。
  • すべてのインストールがインストールされたディレクトリ(例:C:\ 5.6.31 \ xampp、C:\ 7.1.18 \ xampp)に移動し、「setup_xampp.bat」を開始すると、次のように表示され ます。
  • デスクトップで「xampp-control.exe」のショートカットを作成し(「xampp-control.exe」を右クリックして[送信]-> [デスクトップ]をクリック)、ショートカットの名前をexに変更できます。「xampp 5.6.31」および「xampp 7.1.8」。
  • 「xampp-control.exe」または以前に作成したショートカットをダブルクリックしてXAMPPコントロールパネルを起動し、ApacheサーバーとMySQLサーバーを起動します。
  • インストールをテストするには、ブラウザーを開き、ロケーションバーに127.0.0.1またはlocalhostと入力します。XAMPPの開始画面が表示されます。
  • 複数のXAMPPコントロールパネルを開かないでください。
  • XAMPPアンインストール?「xampp」ディレクトリを削除するだけです。ただし、その前にApacheとmysqlをシャットダウンしてください。
  • それで全部です。異なるバージョンのphpを使用して、対応するXAMPPコントロールパネルを開くことができます。

それが本当に可能な場合は、1つのインストールでそれを行うのはなぜソリューションを投稿しないのですか?実際、2つのバージョンをインストールすることは非常に困難であり、ここでのすべてのソリューションは間違っています...
Federico Schiocchet 2017年

@Andy DBがそれほど大きくない場合、ダブルインストールは実行可能なオプションです。しかし、あなたの答えは私の賛成を得ました。
ジェフズ2018年

6

私は10年前のプロジェクトに取り組んでいます。したがって、5.6が私のデフォルトです。5.2でのみ機能する古い小規模なプロジェクトもあり、個人用プロジェクトの7.3.8で新しいバージョンで作業したい

これが、デフォルトの5.6バージョンに5.2と7.3.8を追加するために行ったことです。

1-ダウンロードされたphp TSバージョン。

  • v7.3.8(最新):https ://windows.php.net/download/

  • v5.2:https ://www.apachelounge.com/viewtopic.php?t=7349

2-c:\ xampp \ php738およびc:\ xampp \ php52フォルダーに順に抽出されます

3-これらの行をhttpd-xampp.conf(またはhttpd.conf)の最後に追加しました。

***重要な通知:ターゲットフォルダー名としてスクリプトエイリアス名を使用しないでください。これらは異なるものでなければなりません。(たとえば、/ php7xは問題ありませんが、/ php7は問題ありません)

フォルダD:\ www \ php7のPHP 7.3.8

ScriptAlias /php7x "C:/xampp/php738"
Action application/x-httpd-php7-cgi /php7x/php-cgi.exe
<Directory "C:/xampp/php738">
    AllowOverride None
    Options None
    Require all denied
    <Files "php-cgi.exe">
        Require all granted
    </Files>
</Directory>

<Directory "D:\www\php7">
    <FilesMatch "\.php$">
        SetHandler application/x-httpd-php7-cgi
    </FilesMatch>
</Directory>

フォルダD:\ www \ php52のPHP 5.2

ScriptAlias /phpold "C:/xampp/php52"
Action application/x-httpd-phpold-cgi /phpold/php-cgi.exe
<Directory "C:/xampp/php52">
    AllowOverride None
    Options None
    Require all denied
    <Files "php-cgi.exe">
        Require all granted
    </Files>
</Directory>

<Directory "D:\www\php52">
    <FilesMatch "\.php$">
        SetHandler application/x-httpd-phpold-cgi
    </FilesMatch>
</Directory>

いくつかの役立つメモ:

  • 7.3.8へのcomposerスイッチターミナルの使用中にphp5.xで問題が発生した場合
  • php 7.3.8をWindowsのデフォルトのコマンドラインphpインタープリターにしたい場合は、phpのWindows環境パスを7.3.8フォルダーパスに変更するだけです。
  • 各バージョンのフォルダーで必要なため、関連するphp.ini設定を編集することを忘れないでください。

最後のボーナスとして、仮想ホストをいずれかのバージョンで設定する必要がある場合は、同様のアプローチを使用できます。PHP 7.3.8のサンプルlaravel vhost conf;

<VirtualHost *:80>
ServerAdmin admin@laravel.local
DocumentRoot "D:\www\vhosts\laravel.local\public"
ServerName  laravel.local
<FilesMatch "\.php$">
 SetHandler application/x-httpd-php7-cgi # escape for default php version
#SetHandler application/x-httpd-phpold-cgi # unescape for php 5.2
</FilesMatch>

ErrorLog "logs/laravel.local.log"
CustomLog "logs/laravel.local.log" combined

詳細な回答を提供してくれた@Munim Munnaに感謝します。私は、上記の重要な注意事項を含む確実なサンプルを共有したいと思いました。


5

絶対的かつ確実にXAMPPである必要がない限り、WAMPを使用して必要なものを取得することができます。WAMPは別のパッケージでほとんど同じです。

インストールしたら、ここでphpのバージョンを切り替えるだけです。

ここに画像の説明を入力してください

PHPのバージョンは必要な数だけインストールできます。

詳細は次のとおりです。

ここに行くだけです:WAMPダウンロード

次に、ベースサーバーを選択します(例:php7で最新)。

次に、WAMP 3がインストールされたら、フォルダー:アドオンに移動し、後のphpバージョンを選択します。それらはphp 5.3.29から始まるphpフレーバーを提供します。これはmysql_connectで動作するはずです。

アドオンをインストールするには、インストール中(exeファイルをダブルクリック)、WAMP 3がインストールされているフォルダーをポイントするだけです。

次に、アプリケーションなどの他のフォルダーのコンテンツを使用して、機能を追加できます

すべてがインターフェースされているため、環境をハッキングするのではなく、コーディングに集中できます。


4

はい、できます。xamppがすでにインストールされていると思います。そう、

  • すべてのxamppインスタンスを閉じます。タスクマネージャーを使用して、Apacheとmysqldを停止します。
  • 次に、xamppの名前をxampp1またはxampp名の後の名前に変更します。
  • 次に、他のxamppバージョンをダウンロードします。xamppのみのフォルダー名を作成します。ダウンロードしたxamppをそこにインストールします。
  • 要件のxamppバージョンに応じて、ターゲットフォルダーの名前をxampp onlyに変更し、他のフォルダーを別の名前に変更します。

これは、複数のxamppをインストールして使用する方法です


4
この回答が機能し、質問が正確に何を求めているのか、なぜこれが反対票を投じるのかわかりません。改善を提案せずにサイレントダウン投票を行うことは、一般的には賢いことではありません。
FabianSchöner2017

@FabianSchönerありがとう。なぜ私がこの回答に反対票を投じていたのか分かりません。
Shuvro 2017

1
反対票が投じられた理由は、誰かがすでにこの回答を正確に投稿しているためです。そして、第二に、わずかな違いを取得するためだけに同じソフトウェアをすべて再インストールするので、それは物事を行うのにまったく不要な方法です。私が投稿した回答で述べたように、XAMPPの1つのインストールを使用して、それを構成して、異なるバージョンのPHPを使用することができます。
アンディ

3

1つのXAMPPインストールで複数のバージョンのPHPをセットアップすることが可能です。以下の手順はWindowsで機能します。

  1. Windows用の最新のXAMPPバージョンをインストールします(私の場合はPHP 7.1でした)
  2. ApacheがXAMPPコントロールパネルから実行されていないことを確認してください
  3. XAMPPインストールディレクトリのphpディレクトリの名前を、にC:\xampp\phpなるように変更しC:\xampp\php-7.1.11ます。
  4. さらに実行するバージョンのPHPをダウンロードします(例:PHP 5.4.45
  5. phpディレクトリをダウンロードしたバージョンからXAMPPインストールディレクトリに移動します。PHPのバージョンが含まれるように名前を変更します。などC:\xampp\php-5.4.45

次に、XAMPPとApacheの設定を編集する必要があります。

  1. C:\xampp\apache\conf\httpd.conf、PHPのXAMPP設定を見つけます。次のようなものに変更する必要があります。

#他のPHPバージョンを(で)コメントする必要がある場合は、一度に1つだけIncludeが解釈されます。

#XAMPP settings PHP 7
Include "conf/extra/httpd-xampp.conf.7.1"

#XAMPP settings PHP 5.4.45
#Include "conf/extra/httpd-xampp.conf.5.4.45"
  1. 次に、C:\xampp\apache\conf\extraディレクトリ名httpd-xampp.confをに変更しhttpd-xampp.conf.7.1、の新しい構成ファイルを追加しますhttpd-xampp.conf.5.4.45。私の場合、構文はバージョンごとにわずかに異なる可能性があるため、php 5.5のXAMPPの別のインストールのconfファイルをコピーしました。

  2. 編集httpd-xampp.conf.5.4.45httpd-xampp.conf.7.1て、phpディレクトリへのすべての参照を新しいphp-X.Xバージョンに置き換えます。ここでは、ファイルごとに少なくとも10の変更を加える必要があります。

  3. 次に、2つのバージョンのphp.iniを編集する必要があります。PHP 7.1、編集のためにたとえばC:\xampp\php-7.1.11\php.ini、あなたがのためにPHPのディレクトリのパスに置き換えられますinclude_pathbrowscaperror_logextension_dir。..

以上です。これで、XAMPPコントロールパネルからApacheを起動できます。また、バージョンを切り替えるには、C:\xampp\apache\conf\httpd.confApacheを再起動する前に、含まれているPHPバージョンを編集して変更するだけです。


3

これをコマンドプロンプトウィンドウ(cmd.exe)で実行します。

set PATH=C:\xampp\php;%PATH%

php 7のインストール場所に応じて変更してください。


2

あなたは、この構成は、単に使用して、あなたの時間を無駄にする必要はありませんMAMPを :)

MAMPにはインターフェイスにPHPバージョン選択機能があります。


2

これはおそらく質問に対する最も技術的な回答ではありませんが、達成するのが最も簡単でもあります。

C:D:などの2つのドライブがある場合、異なるphpバージョンの両方のドライブにXAMPPの個別のインスタンスをインストールできます。これは、実行に10分もかからず、エラーが発生しにくくなります。

xampp-control.exeへの2つのデスクトップショートカットを作成し、それらのphpバージョンにちなんだ名前を付けます。これが私のような非常に迅速で汚い解決策を好む人に役立つことを願っています。


1

この簡単な手順に従ってください。私は現在PHP 7.2でXAMPPを実行していますが、古いプロジェクトで作業するにはPHP 5.6が必要です

ステップ1

https://windows.php.net/downloadからスレッドセーフバージョンのPHPをダウンロードします。

[ドライブ]:\ xampp \ php5.6にファイルを置きます

  • Phpのバージョンに応じてフォルダの名前を変更します

ステップ2

[ドライブ]:\ xampp \ apache \ conf \ extra \ httpd-xampp.confをコピーします

名前を[Drive]:\ xampp \ apache \ conf \ extra \ httpd-xampp5.6.confに変更します。Phpのバージョンに応じてファイルの名前を変更します

ステップ3

新しく作成した「httpd-xampp5.6.conf」を編集します

基本的に、すべてのPHPソースと.dllを変更する必要があります

LoadFile "C:/xampp/php/php7ts.dll"
LoadFile "C:/xampp/php/libpq.dll"
LoadModule php7_module "C:/xampp/php/php7apache2_4.dll"

LoadFile "C:/xampp/php5.6/php5ts.dll"
LoadFile "C:/xampp/php5.6/libpq.dll"
LoadModule php5_module "C:/xampp/php5.6/php5apache2_4.dll"

これが私のファイルです:https : //gist.github.com/mpalencia/f8a20c31bffb02fe20d371218c23d1ec

ステップ4

[Drive]:\ xampp \ apache \ conf \ httpd.confファイルを編集します

# XAMPP settings
Include "conf/extra/httpd-xampp.conf"

# XAMPP settings
Include "conf/extra/httpd-xampp5.6.conf"
  • 異なるバージョンに切り替えるときにこの行を編集するだけです

ステップ5

PHP 5.6の構成を編集する-php.ini

拡張ディレクトリを追加:extension_dir = "C:\ xampp \ php5.6 \ ext"

ステップ6

Apacheを起動する

ステップ7

WindowsでPHP環境変数のパスを編集する


0

少し遅いかもしれませんが、PHPフォルダーの名前を変更するためにバッチを使用しています(何年か前に見つけたphpswitchを少し変更したバージョン)。

さまざまなフォルダーをXAMPPインストールにコピーします。各PHPフォルダー(アクティブなフォルダーを除く)は、バージョン番号をサフィックスとして受け取ります(例:php_5.6.32)。ではALLスクリプトはこの情報をつかむことができるようにPHPフォルダ、ファイル(PHP_VERSION)は、唯一のそれぞれのバージョン番号が含まれ、作成されます。しかし、それはすべてREADMEで説明されています。

PHP7以来のhttpd-xampp.confの負荷php7ts.dllの代わりphp5ts.dll。そのため、スクリプト(PHPSwitch.php)を拡張して、同じ方法でこれらの構成ファイルの名前も変更する必要がありました。

    $renameCur = new PHPSwitch_Rename($currInst['path'], $this->_cfg['phpInstallationsPath'] . $this->_cfg['phpDirName'] . '_' . $currInst['version']);
    $renameNew = new PHPSwitch_Rename($newInst['path'], $this->_cfg['phpInstallationsPath'] . $this->_cfg['phpDirName']);

    $apache_curent      = $this->_cfg["phpInstallationsPath"]."apache/conf/extra/httpd-xampp.conf";
    $apache_curent_rename   = $this->_cfg["phpInstallationsPath"]."apache/conf/extra/httpd-xampp_".$currInst['version'].".conf";
    $apache_new             = $this->_cfg["phpInstallationsPath"]."apache/conf/extra/httpd-xampp_".$newInst['version'].".conf";
    $apache_new_rename      = $this->_cfg["phpInstallationsPath"]."apache/conf/extra/httpd-xampp.conf";

    $renameCur_apache_conf = new PHPSwitch_Rename($apache_curent, $apache_curent_rename);
    $renameNew_apache_conf = new PHPSwitch_Rename($apache_new, $apache_new_rename);

    $transaction = new PHPSwitch_Rename_Transaction();
    $transaction->add($renameCur);
    $transaction->add($renameNew);
    $transaction->add($renameCur_apache_conf);
    $transaction->add($renameNew_apache_conf);

0

私は同じことをする必要があったので、方法をググってスタックオーバーフローになりました、そこでOPが同じ問題を抱えていました...それで私の発見..私はあらゆる方向からファイルの名前を変更してみました、そして私の結論は基本的に長すぎる。SOOOO私はここからバージョン7をインストールしただけです:

https://www.apachefriends.org/index.html (サービスを終了し、xamppを終了する前に終了してください

ディレクトリ名をどこに置くかを尋ねられたら(別の名前を付けてください):

ここに画像の説明を入力してください

そして

ドネゾ!前後を入れ替える前に、サービスを強制終了して終了することを確認してください。プレイする2つの無菌XAMPP環境があります。

やったー!今私は実際に仕事に取り掛かることができます!


上記の2つの回答、Maulik Ganganiとog1842ですでに提案されていると思います。
Munim Munna 2018年

0

このphpスイッチャーを使用する

あなたはvhost configを介してあなたが望む任意のプロジェクトにphpのバージョンを制御することができます。


0

私はこれが古い投稿であることを知っていますが、PHP 7でmysql_connect()を実行するためのライブラリがあることを共有したいと思います。これは、実際の関数をオーバーライドすることで機能します(mysql_connect()は、このライブラリで機能するmysqli_connect()によってオーバーライドされます)。

私はこのビデオから見つけましたhttps://www.youtube.com/watch?v=Eqd-jJu4sQ4

うまくいけば、それは役立ちます

弊社のサイトを使用することにより、あなたは弊社のクッキーポリシーおよびプライバシーポリシーを読み、理解したものとみなされます。
Licensed under cc by-sa 3.0 with attribution required.