Mac CatalinaにてPHPバージョンを7.3から7.4にアップグレード


はじめに

MacOS内のPHPバージョンを7.3から7.4にあげる必要があったのですが、すんなりいかなかったので備忘録として残しておきます。

手順

1. 現在のPHPバージョン確認

まずは現在のPHPバージョンを確認します。

$ php -v
PHP 7.3.11 (cli) (built: Jun  5 2020 23:50:40) ( NTS )
Copyright (c) 1997-2018 The PHP Group
Zend Engine v3.3.11, Copyright (c) 1998-2018 Zend Technologies

7.3ですね。

2. HomebrewにてPHP7.4のインストール

Homebrewにて7.4をインストールします。

まずはHomebrewをアップデート

$ brew update

7.4のインストール

$ brew install [email protected]
Error: Permission denied @ apply2files - /usr/local/share/locale/cs/LC_MESSAGES/libidn2.mo
Warning: Already linked: /usr/local/Cellar/libidn2/2.3.1
To relink, run:
  brew unlink libidn2 && brew link libidn2

残念。エラーです。

リンクが影響しているということなので言われた通りリンクを貼り直してみます

$ brew unlink libidn2
Unlinking /usr/local/Cellar/libidn2/2.3.1... Error: Permission denied @ apply2files - /usr/local/share/locale/cs/LC_MESSAGES/libidn2.mo

Permissionで怒られました。
権限変更してみます。

$ sudo chown -R $(whoami) /usr/local
chown: /usr/local: Operation not permitted

失敗!
High Sierraから/usr/localの権限変更ができなくなったようです。

階層絞って再度やってみます。

$ sudo chown -R $(whoami) /usr/local

うまくいったぽいので再チャレンジ

$ brew unlink libidn2 && brew link libidn2 

Unlinking /usr/local/Cellar/libidn2/2.3.1... 43 symlinks removed.
Linking /usr/local/Cellar/libidn2/2.3.1... 51 symlinks created.

できた

これでようやくインストールできそうです。

$ brew install [email protected] 
(中略)
To enable PHP in Apache add the following to httpd.conf and restart Apache:
    LoadModule php7_module /usr/local/opt/[email protected]/lib/httpd/modules/libphp7.so

    <FilesMatch \.php$>
        SetHandler application/x-httpd-php
    </FilesMatch>

Finally, check DirectoryIndex includes index.php
    DirectoryIndex index.php index.html

The php.ini and php-fpm.ini file can be found in:
    /usr/local/etc/php/7.4/

[email protected] is keg-only, which means it was not symlinked into /usr/local,
because this is an alternate version of another formula.

If you need to have [email protected] first in your PATH, run:
  echo 'export PATH="/usr/local/opt/[email protected]/bin:$PATH"' >> ~/.zshrc
  echo 'export PATH="/usr/local/opt/[email protected]/sbin:$PATH"' >> ~/.zshrc

For compilers to find [email protected] you may need to set:
  export LDFLAGS="-L/usr/local/opt/[email protected]/lib"
  export CPPFLAGS="-I/usr/local/opt/[email protected]/include"


To have launchd start [email protected] now and restart at login:
  brew services start [email protected]
Or, if you don't want/need a background service you can just run:

ようやくできました。

3. PHP7.4の適用

パスを通して

$ echo 'export PATH="/usr/local/opt/[email protected]/bin:$PATH"' >> ~/.zshrc
$ echo 'export PATH="/usr/local/opt/[email protected]/sbin:$PATH"' >> ~/.zshrc

PHPをリスタートして

$ brew services start [email protected]

変更を反映すれば

$ source ~/.zshrc
$ php -v
PHP 7.4.21 (cli) (built: Jul 12 2021 11:52:30) ( NTS )
Copyright (c) The PHP Group
Zend Engine v3.4.0, Copyright (c) Zend Technologies
    with Zend OPcache v7.4.21, Copyright (c), by Zend Technologies

バージョンが7.4へと更新されました!

おわりに

一瞬でいけるかと考えてましたが思いの外時間かかりました。
誰かの助けになれば幸いです!

参考