(Mac)phpbrewでPHPのバージョンを切り替える
目次
phpbrewのセットアップと使用方法
OSにバージョン違いのPHPを複数インストールし、
任意のタイミングで使用するバージョンを切り替える事を可能にする「phpbrew」というツールをMacに導入する手順をメモします。
環境: Mac OS 10.13.6、Homebrew 2.2.5、phpbrew 1.25.3
Homebrewを使用してPHPをインストールする
任意のバージョンのPHPをMacへインストールするにはパッケージマネージャーのHomebrewというツールも必要になりますので、
あらかじめインストールして使えるようにしておきます。
homebrewが既にインストールされているかどうかはターミナルから
バージョン確認コマンド brew -v を実行して確かめることができます。
Homebrewが準備出来たらphpbrewをセットアップしていきますが、
Macに初めからインストールされているPHPのバージョンが古い場合は、
Warning! The usage of PHP older than 7.2.0 as the interpreter is deprecated.
Please set the system interpreter using ‘phpbrew system <version>’.
See https://github.com/phpbrew/phpbrew/wiki/System-Interpreter for details.
上記のようなメッセージが出てphpbrewを上手くセットアップ出来ないようですので
homebrewを使用してあらかじめ、バージョン7.2以降のPHPをインストールしておきます。
インストール出来るPHPの確認
$ brew search php@7 ==> Formulae php@7.2 php@7.3 php@7.4
7.4系をインストールしておきます。
$ brew install php@7.4
phpbrewのセットアップ
最新版のPHPがインストール出来たら、phpbrewのセットアップに移ります。
※基本的にphpbrew公式ドキュメントに沿って進めていけば良いと思いますが、
本記事執筆時の環境でのエラー発生箇所と解決方法も含めてメモしていきます。
phpbrewインストール、初期化、bashの設定
※ターミナルがbashではなく、zshの場合は、最後の「~/.bashrc」を「~/.zshrc」にします
$ curl -L -O https://github.com/phpbrew/phpbrew/releases/latest/download/phpbrew.phar $ chmod +x phpbrew.phar $ sudo mv phpbrew.phar /usr/local/bin/phpbrew $ phpbrew init $ echo 'source ~/.phpbrew/bashrc' >> ~/.bashrc $ phpbrew lookup-prefix homebrew
インストールが完了しphpbrewコマンドが使用出来るようになったら、
他のバージョンのPHPをインストールしてみます。
他のバージョンのPHPをインストール
phpbrew known でインストール出来るバージョン一覧を確認します。
(行ごとに各バージョンの一覧が表示されている)
$ phpbrew known Read local release list (last update: 2020-02-12 08:50:46 UTC). You can run `phpbrew update` or `phpbrew known --update` to get a newer release list. 7.4: 7.4.2, 7.4.1, 7.4.0 ... 7.3: 7.3.14, 7.3.13, 7.3.12, 7.3.11, 7.3.10, 7.3.9, 7.3.8, 7.3.7 ... 7.2: 7.2.27, 7.2.26, 7.2.25, 7.2.24, 7.2.23, 7.2.22, 7.2.21, 7.2.20 ... 7.1: 7.1.33, 7.1.32, 7.1.31, 7.1.30, 7.1.29, 7.1.28, 7.1.27, 7.1.26 ... 7.0: 7.0.33, 7.0.32, 7.0.31, 7.0.30, 7.0.29, 7.0.28, 7.0.27, 7.0.26 ... 5.6: 5.6.40, 5.6.39, 5.6.38, 5.6.37, 5.6.36, 5.6.35, 5.6.34, 5.6.33 ... 5.5: 5.5.38, 5.5.37, 5.5.36, 5.5.35, 5.5.34, 5.5.33, 5.5.32, 5.5.31 ... 5.4: 5.4.45, 5.4.44, 5.4.43, 5.4.42, 5.4.41, 5.4.40, 5.4.39, 5.4.38 ...
例として上記から7.3系のインストールを行います。
phpbrew install コマンドを実行
$ phpbrew install 7.3.14 ===> phpbrew will now build 7.3.14 You haven't enabled any variants. The default variant will be enabled: [bcmath, bz2, calendar, cli, ctype, dom, fileinfo, filter, ipc, json, mbregex, mbstring, mhash, pcntl, pcre, pdo, pear, phar, posix, readline, sockets, tokenizer, xml, curl, openssl, zip] Please run 'phpbrew variants' for more information. ===> Loading and resolving variants... Homebrew prefix "/usr/local/Cellar/libxml2/2.9.10" does not exist. Homebrew prefix "/usr/local/Cellar/bzip2/1.0.8" does not exist. Homebrew prefix "/usr/local/Cellar/mhash/0.9.9.9" does not exist. Homebrew prefix "/usr/local/Cellar/curl/7.68.0" does not exist. Downloading https://www.php.net/distributions/php-7.3.14.tar.bz2 via curl extension
phpbrew installコマンドでインストールに失敗!
(Ctrl + C でインストール処理を中断)
上記で表示されたphpbrew installを実行するため足りないソフトウェア(does not exist.)を
brew installコマンドでまとめてインストールします。
brew install libxml2 bzip2 mhash curl
足りないソフトウェアのインストールが完了したら、PHPのインストールを再度試みます。
(ドキュメントの通り、次は +defaultを付けて実行してみた)
phpbrew install 7.3.14 +default
(略) * To configure your installed PHP further, you can edit the config file at /Users/ken/.phpbrew/php/php-7.3.14/etc/php.ini * WARNING: You haven't setup your .bashrc file to load phpbrew shell script yet! Please run 'phpbrew init' to see the steps! To use the newly built PHP, try the line(s) below: $ phpbrew use php-7.3.14 Or you can use switch command to switch your default php to php-7.3.14: $ phpbrew switch php-7.3.14 Enjoy!
(PHPバージョン 7.3.14が無事インストール出来た模様)
phpbrew list コマンドでバージョンの一覧を表示
$ phpbrew list * (system) php-7.3.14
上記の内容から、あらかじめインストールしていたバージョン7.4系が消えてなくなりましたが、
とりあえず進めます。
phpbrew useでバージョン切り替えに失敗
今存在するバージョン 7.3.14を使用するために
phpbrew useコマンドを実行
$ phpbrew use php-7.3.14 Invalid argument php-7.3.14
Invalid argument php-7.3.14
次は上記のようにエラーが出てphpbrew useを実行出来ませんでした。
【解決】
いろいろ試行錯誤した挙句、
下記のsourceコマンドを実行することで解決しました。
source ~/.phpbrew/bashrc
※参考 https://github.com/phpbrew/phpbrew/issues/562
sourceコマンドを実行するとプロセスが終了します。
~ > user@USERnoMacBook-ea [php:7.3.14-phpbrew] $ exit logout Saving session... ...copying shared history... ...saving history...truncating history files... ...completed. Deleting expired sessions...37 completed. [プロセスが完了しました]
上記の内容が表示されたら、ターミナルから新しいウィンドウを開いて再開。
phpbrew use コマンドが実行出来るようになっていました。
※この辺りは理解が完全でないのですが、
先に行なった ~/.bashrcへの追記を消してもコマンドは実行出来るようです。
(phpbrew listで選択出来るバージョン一覧を表示確認)
$ phpbrew use 7.3.14 $ phpbrew list * php-7.3.14
他バージョンへの切り替えと確認
他のバージョンのPHPをインストールしてみます。
先ほど消えてしまった7.4系から選択して再インストール
phpbrew install 7.4.2
インストールが完了したら、phpbrew listでインストール済み一覧を表示。
$ phpbrew list php-7.4.2 * php-7.3.14
7.4系が無事インストール出来ており、先にインストールした7.3系も存在しています。
インストールし直した、7.4系に切り替えてみます。
$ phpbrew use php-7.4.2
PHPのバージョン確認コマンド php -v を実行
$ php -v PHP 7.4.2 (cli) (built: Feb 12 2020 19:44:39) ( NTS ) Copyright (c) The PHP Group Zend Engine v3.4.0, Copyright (c) Zend Technologies
phpbrew useコマンドで切り替えたバージョンが表示されるようになっていればOKです。