web-dev-qa-db-ja.com

Windowsでphp 5.xとphp 7.0を同時に実行する

PHPプロジェクトのバックアップファイルを作成し、古いxampp(php 5.x.x)をアンインストールしました。その後、最新のxampp version(php 7.0.1)をインストールし、古いxamppのバックアップファイルを配置して、データベースを含む新しいファイルに実行しようとします。問題は、古いファイルを実行しようとすると、多くのエラーが発生することです。新しいphpバージョンで廃止されたコードがたくさんあるようです。古いファイルを再度実行する最良の方法は何ですか?古いxamppを再インストールするかもしれませんが、最新のphpバージョンも使用したいと思います。理想的なことは何ですか?私はそれについていくつかの記事を読みましたが、これについての明確な説明は見つかりませんでした。助けてください。

15
Hope

Xamppを1つインストールするだけで、PHPのバージョンを5.67.、および7.1からすばやく変更するソリューションを見つけました。

現在、問題なくWindowsでローカルに開発するために使用しています。データベースは変更されず、Apache httpd-vhosts.conf設定ファイル:PHPバージョンを変更できます迅速かつ簡単に。

公式のApacheFriends Webサイトから、windows portable versionのXamppの最新3バージョン(コントロールパネル3.2.2)をダウンロードします。

xampp-portable-win32-7.1.7-0-VC14.Zip
xampp-portable-win32-7.0.21-0-VC14.Zip
xampp-portable-win32-5.6.31-0-VC11.Zip

C:\でXampp win32-7.1.7バージョンを解凍します。
C:\ xampp\phpフォルダーの名前をC:\ xampp\php-7.1.7に変更します

Xampp win32-7.0.21バージョンから
\ xampp\phpフォルダーをC:\ xampp\phpに抽出します
そして名前をC:\ xampp\php-7.0.21に変更します

Xampp win32-5.6.31バージョンから
\ xampp\phpフォルダーをC:\ xampp\phpに抽出します
そして名前をC:\ xampp\php-5.6.31に変更します

C:\ xampp\Apache\conf\extraに移動します
そしてhttpd-xampp.confのファイル名を変更しますhttpd-xampp-php-7.conf

Xampp win32-5.6.31バージョンから\ xampp\Apache\conf\extra\httpd-xampp.confファイルをC:\ xampp\Apache\conf\extra\httpd-に抽出しますxampp.conf
そして名前をhttpd-xampp-php-5.confに変更します

C:\ xampp **で、 "** php-switch"という名前の新しいフォルダーを作成し、管理するPHPバージョンごとに1つずつ、3つの.batファイルを作成します。

個々のファイルに含めるコードは次のとおりです。

set-php-5.6.bat

@echo off
rmdir C:\xampp\php
mklink /J C:\xampp\php C:\xampp\php-5.6.31
del C:\xampp\Apache\conf\extra\httpd-xampp.conf
copy C:\xampp\Apache\conf\extra\httpd-xampp-php-5.conf C:\xampp\Apache\conf\extra\httpd-xampp.conf 
echo The version of PHP 5.6.31 is set
pause

set-php-7.0.bat

@echo off
rmdir C:\xampp\php
mklink /J C:\xampp\php C:\xampp\php-7.0.21
del C:\xampp\Apache\conf\extra\httpd-xampp.conf
copy C:\xampp\Apache\conf\extra\httpd-xampp-php-7.conf C:\xampp\Apache\conf\extra\httpd-xampp.conf
echo The version of PHP 7.0.21 is set
pause

set-php-7.1.bat

@echo off
rmdir C:\xampp\php
mklink /J C:\xampp\php C:\xampp\php-7.1.7
del C:\xampp\Apache\conf\extra\httpd-xampp.conf
copy C:\xampp\Apache\conf\extra\httpd-xampp-php-7.conf C:\xampp\Apache\conf\extra\httpd-xampp.conf
echo The version of PHP 7.1.7 is set
pause

さて、すべてが機能するかどうかをテストする時が来ました:
-設定するPHPバージョンの.batファイルを実行します(set-php-7.1.batなど)
-Xamppコントロールパネルを起動し、Apacheを起動します
- http://localhost/dashboard/phpinfo.php ページに移動して、PHPライブバージョンをローカルで確認します。

PHPバージョンを変更するには:
-XamppコントロールパネルからApacheを停止します
-.batファイルを実行して、PHPバージョンを変更します(例:set-php-5.6.bat)
-XamppコントロールパネルからApacheを起動します
- http://localhost/dashboard/phpinfo.php ページに移動して、PHPライブバージョンをローカルで確認します。

考慮事項:

複数のバージョンのXamppを別々のフォルダーにインストールするのに比べて、このソリューションでは、C:\ xampp\Apache\conf \にbatabaseとApacheのカスタマイズを維持しながら、Xamppコントロールパネルを1つだけ持ち、PHPバージョンのみを変更できます。 extra\httpd-vhosts.confファイルは変更されていません。

また、このソリューションは、.batファイル(およびそのコマンド)をLinuxの場合は.shに、Macファイルの場合は.commandに変更するだけでLinuxおよびMacで動作します(個人的にLinuxおよびMacでテストを実行しませんでしたが、問題なく行われます)。

24
Lorenzo Magon