この記事で紹介している手動のインストールを、自動で行う新しい記事「PHPComplete: 複数のPHPバージョンを一括インストール」を公開しました。
概要
Macで複数のバージョンのPHPをXdebugと共にインストールして利用可能にします。その際なるべくグローバルに影響を与えない方法で行います。phpenv などの管理ツールは利用しません。
PHP
shivammathur/php を使ってbrewでインストールします。PHP5.6からサポートされています。
brew tap shivammathur/php
brew install shivammathur/php/php@5.6
brew install shivammathur/php/php@7.0
brew install shivammathur/php/php@7.1
brew install shivammathur/php/php@7.2
brew install shivammathur/php/php@7.3
brew install shivammathur/php/php@7.4
brew install shivammathur/php/php@8.0
brew install shivammathur/php/php@8.2
brew install shivammathur/php/php@8.2
PHP8.0の場合、以下のパスにインストールされます。
- Appleシリコン CPUの場合
/opt/homebrew/opt/php@8.0/bin/php
- Intel CPUの場合
/usr/local/opt/php@8.0/bin/php
Xdebug
peclでインストールします。
- Appleシリコン CPUの場合
/opt/homebrew/opt/php@5.6/bin/pecl install xdebug-2.5.5
/opt/homebrew/opt/php@7.0/bin/pecl install xdebug-2.7.2
/opt/homebrew/opt/php@7.1/bin/pecl install xdebug-2.9.8
/opt/homebrew/opt/php@7.2/bin/pecl install xdebug-3.1.6
/opt/homebrew/opt/php@7.2/bin/pecl install xdebug-3.1.6
/opt/homebrew/opt/php@7.3/bin/pecl install xdebug-3.1.6
/opt/homebrew/opt/php@7.4/bin/pecl install xdebug-3.1.6
/opt/homebrew/opt/php@8.0/bin/pecl install xdebug
/opt/homebrew/opt/php@8.1/bin/pecl install xdebug
/opt/homebrew/opt/php@8.2/bin/pecl install xdebug
- Intel CPUの場合
/usr/local/opt/php@5.6/bin/pecl install xdebug-2.5.5
/usr/local/opt/php@7.0/bin/pecl install xdebug-2.7.2
/usr/local/opt/php@7.1/bin/pecl install xdebug-2.9.8
/usr/local/opt/php@7.2/bin/pecl install xdebug-3.1.6
/usr/local/opt/php@7.3/bin/pecl install xdebug-3.1.6
/usr/local/opt/php@7.4/bin/pecl install xdebug-3.1.6
/usr/local/opt/php@8.0/bin/pecl install xdebug
/usr/local/opt/php@8.1/bin/pecl install xdebug
/usr/local/opt/php@8.2/bin/pecl install xdebug
- Supported Versions and Compatibility で PHPに対応したXdebugのバージョンが分かります。
- PECL :: Package :: xdebug で対応バージョンの最新版の正確なバージョンが分かります。
PECLでインストールしたextentionのインストール先はpearコマンドで分かります。
pear config-show | grep ext_dir
PHP extension directory ext_dir /opt/homebrew/lib/php/pecl/20200930
切り替え
利用するPHPを選択する方法はいくつかあります。ターミナルで選択する方法だと複数のPHP
ターミナルで選択
この方法はグローバルのパスを変えるのではなく、ターミナルの範囲内だけでphpのパスをPATH環境変数によって選択します。同時に複数バージョンのPHPの操作が可能です。
ターミナル > 環境設定 > プロファイル > コマンドを実行で目的のPHPのバイナリのパスをexport
します。php -v
も実行しておくと便利です。
- Appleシリコン CPUの場合
export PATH="/opt/homebrew/opt/php@8.0/bin/:$PATH"; php -v
- Intel CPUの場合
export PATH="/usr/local/opt/php@8.0/bin/php:$PATH"; php -v
テキスト
タブでタイトルをPHP7.4などと変えます。ウインドウ
で背景の色を変えるとさらに区別しやすいでしょう。
ターミナルの新規ウインドウでPHPを選んで利用します。
グローバルで切り替え
パスで指定されてていな時のPHPを切り替えます。
brew linkで切り替え
特別のツールを必要としない一番シンプルな方法です。brewで切り替えます。
brew link --overwrite --force shivammathur/php/php@8.1
/opt/homebrew/bin/php
で指定されるPHPが指定のバージョンのものになります。
sphpで切り替え
sphp
スクリプトをインストールして切り替えます。この方法はbrew linkで切り替える方法に加えて、apacheのPHPバージョンも切り替えます。
curl -L https://raw.githubusercontent.com/rhukster/sphp.sh/main/sphp.sh > /opt/homebrew/bin/sphp
chmod +x /opt/homebrew/bin/sphp
sphp 7.2
ローカルのapacheで複数バージョンのPHPを利用するときは Apache Setup: Multiple PHP Versionsをご覧ください。
PHPStormで
⇧ ⌘ A
を押してChange PHP interpreter
とタイプして選ぶこともできます。
PHPStormのcomposerで
PHP > Composer > Excutionで composer.phar
を選ぶとPHPのバージョンが指定できるようになります。
PHPStormのターミナルで
現在、これといった決め手がありません。
export PATH="/opt/homebrew/opt/php@8.1/bin/:$PATH";
を実行するとか、これを.php81.sh
として保存しておいて実行するとか...
. ~/.php81.sh
ツールと同じように切り替えできて、他のシェルに影響を与えません。
必要ならMySQLクライアントなどのパスも含めてプロジェクト単位のスクリプトを用意します。
issueは上がっています。vote
をして支持をしましょう。
https://youtrack.jetbrains.com/issue/WI-66898
composer.jsonで
スプリクトのphpを@php
にするとcomposerスクリプト実行時のPHPで実行します。
{
"scripts": {
"test": [
"@php script.php",
"phpunit"
]
}
}