ラボ > PHPサーバ:Xampp

xampp 複数のPHPのバージョンを共存させる

PHP5.Xと7.Xの環境がそれぞれ必要になった。

作成日:2018-05-08, 更新日:2019-11-22

基本

FuelPHPのバージョンの絡みでPHPのバージョンを分ける必要が出てきた。

1.必要なバージョンのXAMPPをzip(or 7z)でDL
2.DLした各XAMPPを任意の場所に移動、展開
3A.環境変数に追加
3B.シンボリックリンクを作成
4.各バージョンを起動

私の問題

・すでにXamppを使っている

希望としては、コイツをそのままにしておきたい。

・・・結論、諦めた。

▼最初(7.2系がインスト済み)
・\C:\xampp

▼最終(PHP5.6系、7.2系を共存させる)
・\C:\dev\xampp5634
・\C:\dev\xampp7230 ←「\C:\xampp」のhtdocsの中身で必要なモノを移す
・「\C:\xampp」は、削除
※「\C:\xampp」で使っていたDBは使うテーブルをエクスポートして「\C:\dev\xampp7230」にインポート。

1.必要なバージョンのXAMPPをzip(or 7z)でDL

zip(or 7z)版が必要だそうだ・・・。
※バージョンによってはzip(or 7z)版が提供されていない場合もあり

DL

今回は、PHP5.6、7.2が欲しいので、zip提供ありの「5.6.34」「7.2.3」をDL。
※インストール版じゃなく他のPCへコピペすることも考えポータブル版にする。

  • xampp-portable-win32-5.6.34-0-VC11.7z
  • xampp-portable-win32-7.2.3-0-VC15.7z

※「.zip」だと約150MB、「.7z」だと約70MBだったので、「.7z」をDL。

2.DLした各XAMPPを任意の場所に移動、展開

・それぞれを展開、リネームして移動

XAMPPのバージョンとPHPのバージョンが同じなので、バージョンがそのまま使えるので下記のようにリネーム

  • xampp-portable-win32-5.6.34-0-VC11.7z → xampp5634
  • xampp-portable-win32-7.2.3-0-VC15.7z → xampp7230

さらに現状のWinPCにはXAMPPが入ってたりするので・・・「\C:\dev\」の中に移動。

▼最終

  • \C:\dev\xampp5634
  • \C:\dev\xampp7230

3A.環境変数に追加

環境変数は確かCMDからでも追加できたハズだけど、面倒なのでUIから追加。

ただ・・・ドコに環境変数を追加するトコがあるかが分からない・・・。
Winのバージョンで異なるので、探した情報が使えないってコトも多々ある。

▼私の場合(Win10)
・ローカルディスク(C:)
・上の階層(PC)に移動(「デバイスとドライブ」「ネットワークの場所」があるトコ)
・フォルダ、ファイルを指定せずに「右クリック→プロパティ」
・「コンピューターの基本的な情報の表示」ってのが表示される:システムやメモリ、ライセンス情報が載っているトコ
・「システムの詳細設定」をクリック
・「タブ:詳細設定」→「環境変数」
・「システム環境変数」から「変数:Path」を選択し「編集」(※「ユーザー環境変数」じゃなく「システム環境変数」)
・「C:\xampp\php;」と「C:\xampp\mysql\bin;」を追加

私の場合:結局諦めた内容

既存のXamppを削除する気がないのでPATHの指定を変更する

「C:\xampp\php;」「C:\xampp\mysql\bin;」

「C:\devXampp\php;」「C:\devXampp\mysql\bin;」
とする。

・・・あとで分かったけど、httpd.confとか色々と修正する必要があるっぽい・・・。

3B.シンボリックリンクを作成

各バージョンを指定して起動するのにシンボリックリンクを作成する必要があるそうだ。
面倒なので、バッチファイルにする。

ココで問題があった。
「RMDIR "C:\xampp"」ってのを実行する必要があるらしいんだが・・・コレって削除だよね?
削除されると困るんだが・・・ってコトで諸々、試したけど・・・結局諦めた。

バッチファイル

出来る限りダブルクリックだけで起動させたかったので・・・ファイルをそれぞれ用意する。

修正範囲も少なくしておきたいので、変数も使う。

▼xampp5634.bat

rem 使うバージョンを指定
set XAMPP_VER=5634

RMDIR "C:\xampp"
MKLINK /D "C:\xampp" "C:\dev\xampp%XAMPP_VER%"

php -v
mysql --version
C:\xampp\apache\bin\httpd -v

cd C:\dev\xampp%XAMPP_VER%
call xampp_start.exe
start xampp-control.exe

▼xampp7230.bat

rem 使うバージョンを指定
set XAMPP_VER=7230

RMDIR "C:\xampp"
MKLINK /D "C:\xampp" "C:\dev\xampp%XAMPP_VER%"

php -v
mysql --version
C:\xampp\apache\bin\httpd -v

cd C:\dev\xampp%XAMPP_VER%
call xampp_start.exe
start xampp-control.exe

あとは、使うときに「管理者権限」で実行すればOK。
終了はXamppのコンパネから「Quit」。
※CMDのウィンドウが開きっぱなしってのが気にいらないけど・・・対応するのが面倒だから放置。

まとめ(上記は・・・気にしない)

ひとまず、上記はただのメモ。以下がまとめ。

▼目的
・PHP7.2とPHP5.6のXAMPPを一つのWindowsマシンにいれたい

▼流れ
1.それぞれのXAMPPをDL
2.任意の場所に移動
3.環境変数の設定
4.起動用のバッチファイル作成

XAMPPのDL

▼Xamppのサイトからダウンロード。
・xampp-portable-win32-5.6.34-0-VC11.7z
・xampp-portable-win32-7.2.3-0-VC15.7z

任意の場所に移動

展開後、諸々の事情で下記のようにPATH

・D:\xampp7230
・D:\xampp5634

環境変数の設定

・「D:\xampp\php;」と「D:\xampp\mysql\bin;」を追加

私の場合(Win10)

・ローカルディスク(C:)
・上の階層(PC)に移動(「デバイスとドライブ」「ネットワークの場所」があるトコ)
・フォルダ、ファイルを指定せずに「右クリック→プロパティ」
・「コンピューターの基本的な情報の表示」ってのが表示される:システムやメモリ、ライセンス情報が載っているトコ
・「システムの詳細設定」をクリック
・「タブ:詳細設定」→「環境変数」
・「システム環境変数」から「変数:Path」を選択し「編集」(※「ユーザー環境変数」じゃなく「システム環境変数」)
・「D:\xampp\php;」と「D:\xampp\mysql\bin;」を追加

起動用のバッチファイル作成

▼xampp-control_php7.bat

rem 使うバージョンを指定
set XAMPP_VER=7230

RMDIR "D:\xampp"
MKLINK /D "D:\xampp" "D:\xampp%XAMPP_VER%"

php -v
mysql --version
D:\xampp\apache\bin\httpd -v

d:
cd D:\xampp%XAMPP_VER%
call xampp_start.exe
start xampp-control.exe

▼xampp-control_php5.bat

rem 使うバージョンを指定
set XAMPP_VER=5634

RMDIR "D:\xampp"
MKLINK /D "D:\xampp" "D:\xampp%XAMPP_VER%"

php -v
mysql --version
D:\xampp\apache\bin\httpd -v

d:
cd D:\xampp%XAMPP_VER%
call xampp_start.exe
start xampp-control.exe

あとは使いたいほうのバッチファイルを管理者権限で実行

バッチファイルの中身について

Xamppを「C:」か別のドライブに置くかで少し異なる
・シンボリックリンクとXamppを別ドライブにすると面倒なので同一階層にする
→「MKLINK /D "C:\xampp" ~」だと面倒なコトになるので「MKLINK /D "D:\xampp" ~」にする

rem 使うバージョンを指定
set XAMPP_VER=7230

rem 前回生成したシンボリックリンクを削除
RMDIR "D:\xampp"

rem シンボリックリンクを生成
MKLINK /D "D:\xampp" "D:\xampp%XAMPP_VER%"

php -v
mysql --version
D:\xampp\apache\bin\httpd -v

rem 「d:」ドライブにカレントを移す
d:

cd D:\xampp%XAMPP_VER%
call xampp_start.exe
start xampp-control.exe

メモ

XAMPPとPHP、DBのバージョン

XAMPP Windowsのバージョンの一部(2018/05/08時点)

XAMPP Apache MariaDB PHP zip提供
5.6.34 2.4.29 10.1.31 5.6.34
5.6.35 2.4.33 10.1.31 5.6.35 ×
7.0.28 2.4.29 10.1.31 7.0.28
7.0.29 2.4.33 10.1.31 7.0.29 ×
7.1.15 2.4.29 10.1.31 7.1.15
7.1.16 2.4.33 10.1.31 7.1.16 ×
7.2.3 2.4.29 10.1.31 7.2.3
7.2.4 2.4.33 10.1.31 7.2.4 ×

Wikipediaに各バージョンの組み合わせあり