Wordpressはデータベースを利用してWEBサイトを動的に表示するCMSですが、作業途中のページ等をお客様や来訪者に見せたくないのが常ですので、ローカル環境をPC上に構築して、ある程度の作業を進める必要があります。
そこで、Windowsのローカル環境構築といったらXAMPP
がメジャーで、私も利用しているので、XAMPP
でPHPの複数のバージョンを切り替えて利用できる環境をこの記事では構築していきます。
なぜ複数のPHPバージョンが必要なのか
特定のお客様だけだったり自社で管理するサーバであれば一律同じバージョンのPHPで良いのですが、WEBサイトの構築のみ行い、サーバはお客様が指定する環境に置くという案件が多々ありました。
また最新のPHPのバージョンだと不具合が起きることもあり、既存のサイトであっても、PHPのバージョンアップを行う前にテストを行いたいとの思いもありました。
プラグインは、個々に対応しているPHPのバージョンを記載していますが、自分でテストしてから反映させたいとも思っています。
その辺も踏まえて「PHPのバージョンを手軽に切り替えてテストできないかな?」と思ったことがきっかけです。
必要スキル
- Windows上でコマンドが起動・利用できる(管理者権限)
コマンドが使えないと、そもそも今回の「PHPのバージョンを切り替える」事ができません。
Windows11ではどうやってコマンドを起動するの?とか、Google先生に聞くと丁寧に教えてくれますので、調べてみてください。
複数のPHPのファイルをPC上に保有するので、ディスク領域を圧迫します。
PCのディスク容量を気にする方には、この方法は向いていないかもしれません。
構築する環境
PHP5.6.36
PHP7.3.28
PHP8.1.60
の3つのバージョンに合わせてApache
とphpMyAdmin
、php
をコマンドで切り替える環境を構築します。
既にサポート終了している5.6.36とか7.3.28って!!!って思われるかもですが、色々ありますのでここはスルーしてください。
1.XAMPPのダウンロード・インストール
まだインストールされていな方は、こちらのリンクから↓
後々PHPのバージョンは切り替えて使うので、ダウンロードはどのバージョンでも問題ないです。
サクッとダウンロード・インストールしましょう。
ダウンロードとインストールが終わったら、そのままメッセージに従ってインストールを完了させ、起動してください。
既に利用されている方も含め、正常起動している前提で、次に進みます。
既にXAMPPをインストールされている方へ
PHPのバージョンを確認しておいてください。
PHPのバージョンごとにXAMPPをダウンロードするため、ダブりがないようにするためです。
XAMPPのコントロールパネルのShell
からphp -v
で確認できます。
(コマンドプロンプトからphp -v
が使える方はそちらでもOKです)
2.必要なPHPのバージョンのXAMPPをダウンロード
こちらのリンク先で、過去から現在の色々なPHPバージョンのXAMPPがダウンロードできます。
該当のPHPのバージョンリンクをクリックすると、複数のダウンロードファイルのリンクが表示されますので、その中からzip
ファイルをクリックしてダウンロードしてください。
今回のPHPのバージョンを切り替えてXAMPPを利用する際に、PHPのバージョンごとにapache
php
phpMyAdmin
が必要になります。
exe
ファイルだとダブルクリックでインストーラーが起動してしまうので、(exe
でも解凍ソフトで展開すればいけますが)zip
にします。
3.必要ファイルのリネーム
前述した通り、PHPのバージョンごとにapache
php
phpMyAdmin
が必要になりますので、それ以外のファイルは削除して大丈夫です。
apache
php
phpMyAdmin
のフォルダにPHPのバージョン名を入れておきます。
例えば、PHP8.1.12をダウンロードした場合はapache8112
php8112
phpMyAdmin8112
とします。
これは、PHPの切り替えをする際に覚えやすく、簡単に手入力ができるからです。
インストールされているXAMPPの該当ファイル名も上述したルールに則ってリネームします。
(フォルダの場所は移動しないでください)
4.フォルダの配置
既にインストールされているXAMPPのフォルダC:\xampp\
にリネームしたフォルダを配置します。
(画像では、PHP
のバージョンは、5.6.36
、7.3.28
、8.1.60
です)
5.シンボリックリンクの作成
シンボリックリンクは、ショートカットのようなものです。
このショートカットの参照先を変えることで、XAMPPでPHP
の切り替えが簡単にできます。
コマンドプロンプトを管理者権限で起動し、シンボリックリンクを作成します。
既にシンボリックリンクを作成している場合はrmdir
で先にシンボリックリンクを削除します。
rmdir C:\xampp\apache
rmdir C:\xampp\phpMyAdmin
rmdir C:\xampp\php
mklink
でシンボリックリンクを作成します。
mklink /D C:\xampp\apache C:\xampp\apache(バージョン)
mklink /D C:\xampp\phpMyAdmin C:\xampp\phpMyAdmin(バージョン)
mklink /D C:\xampp\php C:\xampp\php(バージョン)
画像の様にできていれば成功です。
コントロールパネルを起動して正常に動作しているか確認しましょう。
6.おまけ(バッチファイルで簡単切り替え)
上述したコマンドからの切り替えだと、指定フォルダ名の大文字小文字間違えや綴り間違えなどを起こします(私がそうでした汗)。
なので、bat
ファイルを用意して、バージョンを指定すれば簡単に切り替えができるようにします。
以下コードです。
ご自身の環境に合わせて、PHPのバージョンの書き換えを行ってください。
@echo off
echo.
echo 使いたいPHPのバージョンを選択してください。
echo.
echo 現在のPHPバージョン:
echo.
php -v
echo.
echo 1: PHP 5.6.36
echo 2: PHP 7.3.28
echo 3: PHP 8.1.12
echo C: Cancel
echo.
choice /c 123C /M "使いたいPHPのバージョン."
if %errorlevel% equ 1 goto PHP5_6_36
if %errorlevel% equ 2 goto PHP7_3_28
if %errorlevel% equ 3 goto PHP8_1_12
goto OnExit
:PHP5_6_36
rmdir C:\xampp\apache
mklink /D C:\xampp\apache C:\xampp\apache5636
rmdir C:\xampp\phpMyAdmin
mklink /D C:\xampp\phpMyAdmin C:\xampp\phpMyAdmin5636
rmdir C:\xampp\php
mklink /D C:\xampp\php C:\xampp\php5636
echo PHP5.6.36に切り替えました
pause
goto OnExit
:PHP7_3_28
rmdir C:\xampp\apache
mklink /D C:\xampp\apache C:\xampp\apache7328
rmdir C:\xampp\phpMyAdmin
mklink /D C:\xampp\phpMyAdmin C:\xampp\phpMyAdmin7328
rmdir C:\xampp\php
mklink /D C:\xampp\php C:\xampp\php7328
echo PHP7.3.28に切り替えました
pause
goto OnExit
:PHP8_1_12
rmdir C:\xampp\apache
mklink /D C:\xampp\apache C:\xampp\apache8112
rmdir C:\xampp\phpMyAdmin
mklink /D C:\xampp\phpMyAdmin C:\xampp\phpMyAdmin8112
rmdir C:\xampp\php
mklink /D C:\xampp\php C:\xampp\php8112
echo PHP8.1.12に切り替えました
pause
goto OnExit
:OnExit
私の場合は、PHPのバージョンが切り替わった時点で何かしらのメッセージが欲しかったので、goto OnExit
の前にecho PHP(バージョン)に切り替えました
を表示するようにして、適当なキーを押下することで切り替えが完了するようにしています。
不要な方は、以下の部分を削除してください。
echo PHP5.6.36に切り替えました
pause
拡張子を.bat
にして、うっかり削除してしまうことを避けるため、XAMPPがインストールされているフォルダへ保存します。
コマンドプロンプトの文字コードがShift-JIS
なので、保存する際の文字コードに注意してください。
注意
またこのコードの最初の方で、現在利用しているPHP
のバージョンを表示するようにしていますが、OSに環境変数
の指定をしないとphp -v
が実行できないので、環境変数
の指定をしてください。
(参考にリンクあり:PHPのバージョンを調べる)
私の場合は、作成したバッチファイルのショートカットをデスクトップに配置していますが、直接エクスプローラーから起動でも良いです。その場合、管理者権限で実行するのを忘れずに。
まとめ
これでローカルのテスト環境が整いました。
今後は安心してPHPの新バージョンのテストが行えます。
ただ、ローカルで大丈夫でも実際本番環境でうまくいかない事も多々ありますので、最終的にはサブドメイン等を用意してテストするのが一番良いかと思います。
参考
私はこちらの記事を参考にしました。感謝!