PHP
bat
xampp

xamppで複数のバージョンのphpを切り替えて使いたい!!!

windows10上でphp7.1が入ってるxampp上でphp5.3を起動したかったので調べて実行したよ。
ついでに、5.5も起動できるようにした。

xamppの各バージョンのDL

7.1のDL

ここで欲しいXamppのバージョンを選ぶ

今回は7.1.8をチョイス
https://sourceforge.net/projects/xampp/files/XAMPP%20Windows/7.1.18/に飛ぶから
xampp-win32-7.1.18-0-VC14.zipをクリックしてDLする。

5.5のDL

xampp5.5.37
xampp-win32-5.5.37-0-VC11.zip
をDLする。

5.3のDL

xampp1.7.7
xampp-win32-1.7.7-VC9.zip
をDLする。

解答してディレクトリ作って配置する

さっきDLした7.1のxampp-win32-7.1.18-0-VC14.zipを解答して中身を
C:\xampp
にぶちまける

複数Ver用にファイルとフォルダをリネーム

7.1のphpフォルダのリネーム

C:\xampp\php

C:\xampp\php71
にリネーム

7.1のhttpd-xampp.confファイルのリネーム

C:\xampp\apache\conf\extra\httpd-xampp.conf

C:\xampp\apache\conf\extra\httpd-xampp.conf71
にリネーム

5.5の必要なファイルとフォルダだけ移動

先にDLしてるxampp-win32-5.5.37-0-VC11.zipを解凍する。

5.5のphpフォルダをリネームして移動

解答フォルダ\xampp\php
フォルダを
解答フォルダ\xampp\php55
にリネームして
C:\xampp\php55
に移動

5.5のhttpd-xampp.confファイルをリネームして移動

解答フォルダ\xampp\apache\conf\extra\httpd-xampp.conf

解答フォルダ\xampp\apache\conf\extra\httpd-xampp.conf55
にリネームして
C:\xampp\apache\conf\extra\httpd-xampp.conf55
に移動

5.3の必要なファイルとフォルダだけ移動

先にDLしてるxampp-win32-1.7.7-VC9.zipを解凍する。

5.3のphpフォルダをリネームして移動

解答フォルダ\xampp\php
フォルダを
解答フォルダ\xampp\php53
にリネームして
C:\xampp\php53
に移動

5.3のhttpd-xampp.confファイルをリネームして移動

解答フォルダ\xampp\apache\conf\extra\httpd-xampp.conf

解答フォルダ\xampp\apache\conf\extra\httpd-xampp.conf53
にリネームして
C:\xampp\apache\conf\extra\httpd-xampp.conf53
に移動

5.3とApache2.4をつなぐdllをDL

php5.3だけ起動しなかったので追記

エラーのキャプチャは取れなかったけど、
要はphp5.3用のphp5apache2_4.dllが必要みたいです。

Apache LoungeのAdditional & Goodies Downloads
のページの中ほどに有る
php5apache2_4.dll-php-5.3-win32.zip
をDLして解答し
解答フォルダ\php5apache2_4.dll-php-5.3-win32\PHP 5.3.10\php5apache2_4.dll

C:\xampp\php53\php5apache2_4.dll
に移動

これ。5.3.10用のdllだけど動いたので良し!!

7.1のシンボリックリンクを作る

コマンドプロンプトで

cd C:\xampp
mklink C:\xampp\apache\conf\extra\httpd-xampp.conf C:\xampp\apache\conf\extra\httpd-xampp.conf71
mklink /D C:\xampp\php C:\xampp\php71

を実行
とりあえず、7.1で起動するようにした。

Xamppを起動できるようにする。

環境変数を設定する。

コンパネ > システム > 設定の変更(システムのプロパティーを開く) > 環境設定タブ > 環境変数

システム環境変数 > Path

  • C:\xampp\php
  • C:\xampp\mysql\bin

を追加する。

xamppが起動できるか確認する。

C:\xampp\xampp_start.exe
を実行してエラーが無いか確認する。
エラーが無かったら
C:\xampp\xampp-control.exe
を実行してapacheとmysqlを起動して動作するか確認後
phpinfoとphpmyadminを開いて正しく動作したらOK!

phpのバージョンを切り替えるバッチを作る。

やりたい事はこんな感じ

php7.1から5.5に変更したい時
1. php7.1のphpフォルダのシンボリックリンクを削除
2. php7.1のhttpd-xampp.confのシンボリックリンクを削除
3. php5.5のphpフォルダのシンボリックリンクを作成
4. php5.5のhttpd-xampp.confのシンボリックリンクを削除

これをBatファイルでどのバージョンに変更したいか選択し、バージョン変更できたらOKですよね?

Batファイル

ファイル名:C:\xampp\php_ver_chenge.bat

php_ver_chenge.bat
@echo off

echo.
echo phpのバージョンを確認します。
echo.
php -v
echo.
echo 1: PHP 5.3.8
echo 2: PHP 5.5
echo 3: PHP 7.1
echo C: Cancel
echo.
echo 現在のバージョンを変更する場合は1~3を選択してください。

choice /c 123C /M "Choose the version of PHP."
echo %errorlevel%
if %errorlevel% equ 1 goto PHP_53
if %errorlevel% equ 2 goto PHP_55
if %errorlevel% equ 3 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-xampp.conf53
rmdir C:\xampp\php
mklink /D C:\xampp\php C:\xampp\php53
goto OnExit

:PHP_55
echo php5.5に変更します。
del C:\xampp\apache\conf\extra\httpd-xampp.conf
mklink C:\xampp\apache\conf\extra\httpd-xampp.conf C:\xampp\apache\conf\extra\httpd-xampp.conf55
rmdir C:\xampp\php
mklink /D C:\xampp\php C:\xampp\php55
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-xampp.conf71
rmdir C:\xampp\php
mklink /D C:\xampp\php C:\xampp\php71
goto OnExit


:OnExit

実行すると

作ったBatファイルを実行すると以下のような画面が表示される。

説明
03.jpg

で今回はphp7.1の3にしたかったので、キーボードの3をクリックすると
下の図のようになる。

02.jpg

うまくいったので、
なんかキーボードのキーをクリックするとコマンドラインが消える。

phpのVerの確認

C:\xampp\xampp-control.exeを実行する

04.jpg

apacheを起動する

05.jpg

apacheが起動できたら、apacheのAdminをクリック

06.jpg

クリックするとブラウザが立ち上がってURLはhttp://localhost/dashboard/になってるはず
この画面の右上PHPInfoをクリックする

07.jpg

PHPInfoをクリックすると
http://localhost/dashboard/phpinfo.phpに遷移してる
下の画像の所でphpのバージョンを確認できる

08.jpg