概要
Node.jsのnvmのように、複数バージョンを切替できるような記事があったので試してみる。
準備
買い替えたばかりのMacだったので「Homebrew」が入っていませんでした💦
$ which brew
brew not found
とりあえず、インストールします。
$ /bin/bash -c "$(curl -fsSL https://raw.githubusercontent.com/Homebrew/install/HEAD/install.sh)"
※ 公式サイト: https://brew.sh/
brewコマンドが使えるようにパスを通す。
$ which brew
brew not found
$ echo >> /Users/reflet/.zprofile
$ echo 'eval "$(/opt/homebrew/bin/brew shellenv)"' >> /Users/reflet/.zprofile
$ eval "$(/opt/homebrew/bin/brew shellenv)"
$ which brew
/opt/homebrew/bin/brew
Homebrewのアップデートとアップグレードも念の為、実行しておきます。
$ brew update
$ brew upgrade
PHP7.X系
PHP@7.4をとりあえず入れてみようとする。
$ brew install php@7.4
Warning: No available formula with the name "php@7.4". Did you mean php@8.3, php@8.2 or php@8.1?
==> Searching for similarly named formulae and casks...
==> Formulae
php@8.3 php@8.2 php@8.1
PHP7.X系はすでにサポート終了したのかな?...💦
インストールできないようです
PHP8.X系
PHP@8.1、PHP@8.2、PHP@8.3はインストールできそうなので試す。
$ brew install php@8.1
$ brew install php@8.2
$ brew install php@8.3
PHPのバージョンを確認してみる。
$ php -v
zsh: command not found: php
この段階では、まだPHPコマンドは使えないようです。
PHPの切り替え
ひとまず、PHP@8.1を使えるようにしてみる。
$ brew link --force --overwrite php@8.1
$ php -v
PHP 8.1.33 (cli) (built: Jul 1 2025 21:17:52) (NTS)
Copyright (c) The PHP Group
Zend Engine v4.1.33, Copyright (c) Zend Technologies
with Zend OPcache v8.1.33, Copyright (c), by Zend Technologies
成功したようです。
次に、PHP@8.2に切り替えてみる。
$ brew link --force --overwrite php@8.2
$ php -v
PHP 8.2.29 (cli) (built: Jul 1 2025 16:29:21) (NTS)
Copyright (c) The PHP Group
Zend Engine v4.2.29, Copyright (c) Zend Technologies
with Zend OPcache v8.2.29, Copyright (c), by Zend Technologies
問題なく切り替わったようです。
さらに、PHP@8.3に切り替えてみる。
$ brew link --force --overwrite php@8.3
$ php -v
PHP 8.3.27 (cli) (built: Oct 21 2025 14:53:41) (NTS)
Copyright (c) The PHP Group
Zend Engine v4.3.27, Copyright (c) Zend Technologies
with Zend OPcache v8.3.27, Copyright (c), by Zend Technologies
うまく切り替わりました。
特に切り替えに問題はないようです。
うまく切り替わらなければ、下記のようにパスを手動で調整する方法がコメント表示されますが、
今回は使わなくて良かったようです。
# PHP@8.1
echo 'export PATH="/opt/homebrew/opt/php@8.1/bin:$PATH"' >> ~/.zshrc
echo 'export PATH="/opt/homebrew/opt/php@8.1/sbin:$PATH"' >> ~/.zshrc
# PHP@8.2
echo 'export PATH="/opt/homebrew/opt/php@8.2/bin:$PATH"' >> ~/.zshrc
echo 'export PATH="/opt/homebrew/opt/php@8.2/sbin:$PATH"' >> ~/.zshrc
# PHP@8.3
echo 'export PATH="/opt/homebrew/opt/php@8.3/bin:$PATH"' >> ~/.zshrc
echo 'export PATH="/opt/homebrew/opt/php@8.3/sbin:$PATH"' >> ~/.zshrc
まとめ
複数のバージョンのPHPをインストールして切り替えは確かにできました。
しかし、マイナーバージョンを指定してのインストールはできないように感じます。
また、PHP7.X系やPHP5.X系はインストールできないようです。
古いバージョンのPHPを使っている開発環境を用意することはできないようです。
あまり使い勝手は良くなさそう...
参考サイト
・Macで brew を利用してPHP複数バージョンを切り替える方法
https://qiita.com/aokazu/items/2092f97af8a99ce4617f
・Macで複数バージョンのPHPを楽に使い分ける
https://zenn.dev/ttskch/articles/e6f6b2af2972ab
以上