Windowsのローカルサーバで複数のバージョンのPHPを切り替えて使いたいときのメモです。
前提として、すでにC:\xampp\
直下にポータブル版のxamppファイル群を配置して使っています。この状態で複数のPHPを切り替えて使用するには以下の方法があります。
- 一つのxamppでPHPフォルダと設定ファイルをバージョンごとに切り替える
- バージョンの違うPHPを含んだxamppをそれぞれインストールする
1)の方法は切り替えのたびにコマンドプロンプトでそれぞれのバージョンのPHPフォルダと設定ファイルにシンボリックリンクを作成する必要があり私にとっては難易度が高めだったのと、phpMyAdminに不具合が出るなどの例があるそうなので採用しませんでした。挑戦するなら1つのXAMPPでPHPのバージョンを切り替えて使う最もシンプルな方法 | 25歳でフリーランス28歳で起業したエンジニア -じゃけぇ- のあれこれを参考に。
以下2)の方法についての覚書です。
バージョンの違うPHPを含んだxamppをそれぞれインストールする
C:\xampp\
直下のファイル群をC:\xampp\xampp7\
に移動- 新しくDLしたxamppポータブル版(PHP8)を
C:\xampp\xampp8\
に配置 - それぞれのフォルダ内にある「setup_xampp.bat」をダブルクリック
コマンドプロンプトが立ち上がり設定ファイル内のディレクトリパスの記述を自動で書き換えてくれます - 新しいほうのhttpd.conf内ドキュメントルートのパスを既存のものに書き換え
そのほか細かい個人設定は【2021年版】xamppでfreoを使う・1 、【2021年版】xamppでfreoを使う・2を参考に。また、Cドライブ以外に置いている場合や設定によってはドライブレターを含めたパスでないとエラーが出ることがあります。その場合はエディタや置換ソフト等で「/xampp/xampp」を「D:/xampp/xampp」に一括置換すると楽。一応書き換えが必要になるかもしれない(上記batファイルでディレクトリパス記述を書き換えられる)ファイルをリストアップ。
- apache/conf/httpd.conf
- apache/conf/extra/httpd-autoindex.conf
- apache/conf/extra/httpd-dav.conf
- apache/conf/extra/httpd-manual.conf
- apache/conf/extra/httpd-multilang-errordoc.conf
- apache/conf/extra/httpd-ssl.conf
- apache/conf/extra/httpd-vhosts.conf
- apache/conf/extra/httpd-xampp.conf
- MercuryMail/MERCURY.INI
- mysql/bin/my.ini
- mysql/data/my.ini
- php/php.ini
こうすることでPHP7でのサイト動作確認をしたいときはC:\xampp\xampp7\
の中のxampp-control.exeを、PHP8で確認したいときはC:\xampp\xampp8\
の中のxampp-control.exeを使うことでPHPのバージョンを切り替えることができるようになりました。切り替えるときはすでに立ち上がっているapacheを停止してQuitすることを忘れないように。