3
4

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

More than 1 year has passed since last update.

XAMPPで複数のPHPを切り替えて利用する(for Windows)

Posted at

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つのバージョンに合わせてApachephpMyAdminphpをコマンドで切り替える環境を構築します。
既にサポート終了している5.6.36とか7.3.28って!!!って思われるかもですが、色々ありますのでここはスルーしてください。

1.XAMPPのダウンロード・インストール

まだインストールされていな方は、こちらのリンクから↓

後々PHPのバージョンは切り替えて使うので、ダウンロードはどのバージョンでも問題ないです。
サクッとダウンロード・インストールしましょう。

ダウンロードとインストールが終わったら、そのままメッセージに従ってインストールを完了させ、起動してください。
既に利用されている方も含め、正常起動している前提で、次に進みます。

既にXAMPPをインストールされている方へ
PHPのバージョンを確認しておいてください。
PHPのバージョンごとにXAMPPをダウンロードするため、ダブりがないようにするためです。
XAMPPのコントロールパネルのShellからphp -vで確認できます。
(コマンドプロンプトからphp -vが使える方はそちらでもOKです)

XAMPP_コントロールパネル_shell.jpg

2.必要なPHPのバージョンのXAMPPをダウンロード

こちらのリンク先で、過去から現在の色々なPHPバージョンのXAMPPがダウンロードできます。
該当のPHPのバージョンリンクをクリックすると、複数のダウンロードファイルのリンクが表示されますので、その中からzipファイルをクリックしてダウンロードしてください。

今回のPHPのバージョンを切り替えてXAMPPを利用する際に、PHPのバージョンごとにapache php phpMyAdminが必要になります。
exeファイルだとダブルクリックでインストーラーが起動してしまうので、(exeでも解凍ソフトで展開すればいけますが)zipにします。

3.必要ファイルのリネーム

前述した通り、PHPのバージョンごとにapache php phpMyAdminが必要になりますので、それ以外のファイルは削除して大丈夫です。
zip展開_必要ファイル02.jpg
apache php phpMyAdminのフォルダにPHPのバージョン名を入れておきます。
例えば、PHP8.1.12をダウンロードした場合はapache8112 php8112 phpMyAdmin8112とします。
これは、PHPの切り替えをする際に覚えやすく、簡単に手入力ができるからです。

インストールされているXAMPPの該当ファイル名も上述したルールに則ってリネームします。
(フォルダの場所は移動しないでください)

4.フォルダの配置

既にインストールされているXAMPPのフォルダC:\xampp\にリネームしたフォルダを配置します。
(画像では、PHPのバージョンは、5.6.367.3.288.1.60です)
phpごとのフォルダ移動.jpg

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(バージョン)

画像の様にできていれば成功です。
シンボリックリンク.jpg
コントロールパネルを起動して正常に動作しているか確認しましょう。
成功.jpg

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の新バージョンのテストが行えます。
ただ、ローカルで大丈夫でも実際本番環境でうまくいかない事も多々ありますので、最終的にはサブドメイン等を用意してテストするのが一番良いかと思います。

参考

私はこちらの記事を参考にしました。感謝!

3
4
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
3
4

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?