ものすごくどハマリしたのでメモ…
【簡単】XAMPP+Windows環境でPHPのバージョンを切り替えて使う
XAMPPのPHPを切り替えたい
結構定番なカスタマイズなんですが、全然やったことがなかったのでメモ。 最もLinux環境をVagrantなんかで複数用意しちゃえば簡単なんですが、WindowsにXAMPP入れてサクッとデザインもリアルタイムで更新してガチャガチャやってさて納品みたいなお仕事の時は一々OS丸ごと用意して本番サーバーと同じ環境をローカルに用意して・・・みたいなことをやってられません。
WindowsローカルのCSSや画像データなど編集したらブラウザの更新をするだけで瞬時に反映されるXAMPP様に助けられる部分は多々あります。
今回はPHP7が入っているXAMPPでPHP5(5.3)を動かしたい。
クライアントの環境がPHP5(5.3)らしいのでXAMPPにPHP5(5.3)を動かせるように準備します。 どうやらXAMPP様が各バージョンのPHPを使えるように過去バージョンのXAMPPをダウンロードできるようにして頂いているようなので、 https://sourceforge.net/projects/xampp/files/XAMPP%20Windows/ ここからダウンロードさせて頂きます。
使いたいバージョンのPHPが入ったXAMPPそのものをダウンロードする形になるようですね。 この記事をご覧の皆様は既にXAMPP環境はありますのでインストーラ版ではなくZip版をダウンロードします。
厳密にはPHP5.3ですので
https://sourceforge.net/projects/xampp/files/XAMPP%20Windows/1.7.7/
の中のxampp-win32-1.7.7-VC9.zip こちらをダウンロードしました。
複数のバージョンを使うためXAMPPのPHPディレクトリをリネームする。
XAMPPの現在バージョンのphpフォルダのリネーム
C:\xampp\php を C:\xampp\php71 にリネームする。
Apacheのhttpd-xampp.confファイルのリネーム
C:\xampp\apache\conf\extra\httpd-xampp.conf を C:\xampp\apache\conf\extra\httpd-xampp71.conf にリネーム
過去バージョンのXAMPPからファイルを移動してくる
まずはPHP5.3本体を用意
xampp-win32-1.7.7-VC9.zipがダウンロードされていると思いますのでこちらを解凍します。
解凍すると上記のようになるので 「php」ディレクトリを「php53」にリネームします。 この「php53」をC:\xampp\に移動します。
こんな感じになります。PHPが2種類になりました。 PHP5系の中でも5.3はphp5apache2_4.dllが必要なのでゲットしてきます。 https://www.apachelounge.com/download/additional/ ここにあります。 文字が小さく非常に見つけにくいので「php5apache2_4.dll-php-5.3-win32.zip」でサイト内検索してください。 ダウンロード後、解凍したら \php5apache2_4.dll-php-5.3-win32\PHP 5.3.10\php5apache2_4.dll を C:\xampp\php53\php5apache2_4.dll に移動 こうなります。
httpd-xampp53.confを用意
\php5apache2_4.dll-php-5.3-win32\apache\conf\extra から C:\xampp\apache\conf\extra に 「httpd-xampp.conf」から「httpd-xampp53.conf」にリネームして移動させます。
さらに「httpd-xampp53.conf」を編集
php5apache2_2.dllを読み込むと起動しませんでしたので httpd-xampp53.confを編集します。
LoadModule php5_module "/xampp/php/php5apache2_2.dll"
変更します ↓
LoadModule php5_module "/xampp/php/php5apache2_4.dll"
これで準備完了です。
シンボリックリンクを作成する。さらにバッチファイルにして使いやすくする。
ボタン一つで切り替えられるようにしたいのでシンボリックリンクを切り替えるバッチファイルを作成します。
まずは一旦動作確認です。
PHP7.1のシンボリックリンクを作成
1.以下のコードを実行します。
mklink C:\xampp\apache\conf\extra\httpd-xampp.conf
実行例:
C:\WINDOWS\system32>mklink C:\xampp\apache\conf\extra\httpd-xampp.conf C:\xampp\apache\conf\extra\httpd-xampp71.conf C:\xampp\apache\conf\extra\httpd-xampp.conf <<===>> C:\xampp\apache\conf\extra\httpd-xampp71.conf のシンボリック リンク が作成されました
2.以下のコードを実行します。
mklink /D C:\xampp\php C:\xampp\php71
実行例:
C:\WINDOWS\system32>mklink /D C:\xampp\php C:\xampp\php71 C:\xampp\php <<===>> C:\xampp\php71 のシンボリック リンクが作成されました
これによってPHP7で実行することが出来ました。
XAMPPが起動できなくなった場合
この辺でXAMPPが起動出来ない方は コンパネ > システム > 設定の変更(システムのプロパティーを開く) > 環境設定タブ > 環境変数 の システム環境変数 > Path に
C:\xampp\php C:\xampp\mysql\bin を追加してみてください。 動くかと思います。
PHPのバージョンの確認
XAMPPのシェルを立ち上げて 「# php -v」を実行してみました。
# php -v PHP 7.2.11 (cli) (built: Oct 10 2018 02:39:52) ( ZTS MSVC15 (Visual C++ 2017) x86 ) Copyright (c) 1997-2018 The PHP Group Zend Engine v3.2.0, Copyright (c) 1998-2018 Zend Technologies
自分のXAMPPがPHP7.1だと思いこんでいましたがPHP7.2だったんですね・・・勘違いしてました・・・。 まあこれはこれでいいとして次はPHP5の設定です。
バッチファイルの作成
シンボリックリンクを切り替えるバッチファイルです。 ほんとはPHP7.2だったけど7.1だった前提で進めています。。。 ちなみに、SJISで保存してください。日本語が文字化けしますので。
echo. echo phpのバージョンを確認します。 echo. php -v echo. echo 1: PHP 5.3 echo 2: PHP 7.1 echo C: Cancel echo. echo 現在のバージョンを変更する場合は1~2を選択してください。 choice /c 12C /M "Choose the version of PHP." echo %errorlevel% if %errorlevel% equ 1 goto PHP_53 if %errorlevel% equ 2 goto PHP_71 goto OnExit :PHP_53 echo php5.3に変更します。 del C:\xampp\apache\conf\extra\httpd-xampp.conf mklink C:\xampp\apache\conf\extra\httpd-xampp.conf C:\xampp\apache\conf\extra\httpd-xampp53.conf rmdir C:\xampp\php mklink /D C:\xampp\php C:\xampp\php53 goto OnExit :PHP_71 echo php7.1に変更します。 del C:\xampp\apache\conf\extra\httpd-xampp.conf mklink C:\xampp\apache\conf\extra\httpd-xampp.conf C:\xampp\apache\conf\extra\httpd-xampp71.conf rmdir C:\xampp\php mklink /D C:\xampp\php C:\xampp\php71 goto OnExit :OnExit
こちらを管理者権限で実行すれば切り替えられるはずです。 やってみましょう。
無事に5.3と7.2を切り替えられるようになりました。
ディスカッション
コメント一覧
まだ、コメントがありません