macOSでphpをアップデートする話
PHPのインストールとかって何度も繰り返さないので手順は忘れますよね。
今回はとりあえず、brewでインストールしたphpパッケージを最新にアップデートする方法をメモしておきます。
どうやってインストールしたのかが不明
phpインストールは様々な方法でインストールできます。
が、このPC(macOS)に入っているphpをどうやってインストールしたかこの記憶が曖昧でした。
「tarボールをローカルで展開してパスを当てているのかな?」などとは思いましたが…
解析がめんどくさくなりそうでしたので、
とりあえずphpのバージョンと実行コマンドのパスを確認してから思い出します。
$ php -v
PHP 8.0.10 (cli) (built: Aug 26 2021 15:36:17) ( NTS )
Copyright (c) The PHP Group
Zend Engine v4.0.10, Copyright (c) Zend Technologies
with Zend OPcache v8.0.10, Copyright (c), by Zend Technologies
$ which php
/usr/local/bin/php
はい、8.0.10古いですね。コマンドのパスが/usr/local/bin/phpでした。
/usr/local/bin/php具合が私が手動でインストールした感はないですねw
私だったら
/usr/local/php8.0に展開して
/usr/local/php/にシングルリンクして
/usr/local/php/bin/phpをパスに追加する
でしょうね…
結局のところ、だいたいbrewでやっている
phpインストールを試行錯誤するのも時間の無駄なので、一番インストールしてそうなbrewを確認…
$ brew -v
Homebrew 3.2.12
Homebrew/homebrew-core (git revision 052ef3e39f3; last commit 2021-09-20)
Homebrew/homebrew-cask (git revision cf80438826; last commit 2021-09-20)
brewは古いバージョンが入っていました。絶対 brewでphp入れているな(ただの感です)
根拠はないがBrewでphpをアップデートする
brewコマンドでphpをアップデートするのにインストールを指定します。
※ 先にbrewをアップデートしてたかもしれません
$ brew install php
php 8.0.10 is already installed but outdated (so it will be upgraded).
ほらね、8.0.10はこれで入っていました。
とやかくしてphpを最新化…
$ php -v
PHP 8.1.8 (cli) (built: Jul 8 2022 10:58:31) (NTS)
Copyright (c) The PHP Group
Zend Engine v4.1.8, Copyright (c) Zend Technologies
with Zend OPcache v8.1.8, Copyright (c), by Zend Technologies
これで出来上がりました!
brewだけは最新にしておく
brew古いんですよね。3.2.12
これを最新にしておきます
$ brew upgrade
==> Upgrading 3 outdated packages:
$ brew -v
Homebrew 3.5.6
Homebrew/homebrew-core (git revision 2b433c2a329; last commit 2022-07-23)
Homebrew/homebrew-cask (git revision 2a0ab69f23; last commit 2022-07-23)
これでOKです!
忘れてはいけないcomposerも最新にする
composerもbrewで入れていたはずですので最新にしたと思います
現状を確認
$ composer -V
Composer version 2.1.8 2021-09-15 13:55:14
$ which composer
/usr/local/bin/composer
はいはい、インストール(アップデート)します…
$ brew install composer
Target /usr/local/bin/composer
already exists. You may want to remove it:
rm '/usr/local/bin/composer'
ん?/usr/local/bin/composerがすでにあるので止まっている?
linkを削除して
$ rm '/usr/local/bin/composer'
$ composer -V
-bash: /usr/local/bin/composer: No such file or directory
再度実行
$ brew link composer
Linking /usr/local/Cellar/composer/2.3.10... 1 symlinks created.
インストール後のcomposerを確認…
$ composer -V
Composer version 2.3.10 2022-07-13 15:48:23
できました
終いに
今回はmacOSにおいて、phpを8.0.10から最新(8.1.8)にしました!
ってマイナーバージョン上がっているやん!
ま、パッケージをphpに指定しているからでしょうね。
実行環境をphp8.0系にする
8.1系でも問題ないですが、8.0系を使う場合にはphp@8.0パッケージをインストールすれば入ります。
$ brew install php@8.0
インストールしてもphpが優先されるようでphpの実行は最新(8.1系)が実行されます。
8.0系をコマンドで実行するには 最新(8.1系)のリンクを切って、8.0系をリンク貼ります
$ brew unlink php
Unlinking /usr/local/Cellar/php/8.1.8... 24 symlinks removed.
$ brew link php@8.0
Linking /usr/local/Cellar/php@8.0/8.0.21... 25 symlinks created.
これで8.0系がパスに通っています
$ php -v
PHP 8.0.21 (cli) (built: Jul 7 2022 13:13:21) ( NTS )
Copyright (c) The PHP Group
Zend Engine v4.0.21, Copyright (c) Zend Technologies
with Zend OPcache v8.0.21, Copyright (c), by Zend Technologies
ちゃんともとに戻すw
$ brew unlink php@8.0
Unlinking /usr/local/Cellar/php@8.0/8.0.21... 25 symlinks removed.
$ brew link php
Linking /usr/local/Cellar/php/8.1.8... 24 symlinks created.
$ php -v
PHP 8.1.8 (cli) (built: Jul 8 2022 10:58:31) (NTS)
Copyright (c) The PHP Group
Zend Engine v4.1.8, Copyright (c) Zend Technologies
with Zend OPcache v8.1.8, Copyright (c), by Zend Technologies
開発環境ではそれぞれが可能にするべきである
開発環境で8.0系も8.1系も別プロジェクトで使う!
当たり前ですができます。
brewでインストールしたphpのパッケージは以下のパスでインストールされています。
/usr/local/opt/php@8.0/bin/php
/usr/local/opt/php@8.1/bin/php
開発IDE(PHPStorm)にてそれぞれをCLIに指定しましょう