phpbrewでPHP 8.1をインストール

目次

PHP 8.1をphpbrewでインストールしてみます。
前のバージョンはこちらでインストールしています。

phpbrewでPHP 7.1/8.0をインストールした(+openssl, +gd)

また、この記事は上記を行ったあとの状態からスタートしています。

環境

【結論】 PHP インストールコマンド

phpbrewの最終的なインストールコマンドは以下のようになりました。
オプションは個人の環境に合わせて変えてください。

phpbrew install php-8.1.0 +default +mysql +fpm +openssl=/opt/homebrew/opt/openssl@1.1 +zlib="$(brew --prefix zlib)" -- --with-external-pcre=$(brew --prefix pcre2)

PHP 8.1 インストール詳細手順

Homebrew でアップデート

Homebrewでシステムのパッケージをアップデートします。

brew update
brew upgrade

Homebrewの問題を確認してみます。
WarningやErrorが出る場合は、指示に従って修正します。

私の場合はコマンドラインツールのWarningが出ました。

brew doctor

  > Warning: A newer Command Line Tools release is available.
  > Update them from Software Update in System Preferences or run:
  >   softwareupdate --all --install --force
  >
  > If that doesn't show you any updates, run:
  >   sudo rm -rf /Library/Developer/CommandLineTools
  >   sudo xcode-select --install

以下のように実行して修正しました。
20分くらいかかったと思います。

sudo rm -rf /Library/Developer/CommandLineTools
sudo xcode-select --install
softwareupdate --all --install --force

.zshrc / .bashrcの修正

こちらのようなCFLAGSとCXXFLAGSが設定されている場合はコメントアウトします。
新しいバージョンのPHPをインストールする際は、これらのオプションはつけなくて良いです。

# 👇は一番上にあったほうが良いです
export PATH="/opt/homebrew/bin:$PATH"
export PATH="/opt/homebrew/sbin:$PATH"

# ... 省略

# 👇のFLAGS系をコメントアウト
#export CFLAGS="-Wno-error=implicit-function-declaration -DU_DEFINE_FALSE_AND_TRUE=1"
#export CXXFLAGS="-Wno-error=implicit-function-declaration -DU_DEFINE_FALSE_AND_TRUE=1"

# ... 省略

# 👇は下にないと、HomebrewでインストールしたPHPが使用される場合があります
[[ -e ~/.phpbrew/bashrc ]] && source ~/.phpbrew/bashrc
export PATH=/opt/phpbrew/bin:$PATH
export PHPBREW_SET_PROMPT=1  # ここはお好みで
export PHPBREW_RC_ENABLE=1   # ここはお好みで
export EDITOR="vim"          # ここはお好みで

変更したらターミナルを再起動するか、sources .zshrcします。

phpbrew アップデート

phpbrew自体をアップデートして、PHPのリソースリストもアップデートします。

phpbrew self-update
phpbrew update

PHP 8.1 インストール

冒頭のインストールコマンドを実行します。

phpbrew install php-8.1.0 +default +mysql +fpm +openssl=/opt/homebrew/opt/openssl@1.1 +zlib="$(brew --prefix zlib)" -- --with-external-pcre=$(brew --prefix pcre2)

成功したときの出力

インストールに成功すると、ターミナルに以下のような出力がされると思います。
オプションがちゃんと有効になったか、ログを確認すると良いです。

===> phpbrew will now build 8.1.0
===> Loading and resolving variants...
Checking distribution checksum...
Checksum matched: 0725ed2bxxxxx 
... 省略 ...

===> Configuring 8.1.0...

Use tail command to see what's going on:
   $ tail -F '/Users/ xxxxxx

... 省略 ...

config-set succeeded
Enabling pear auto-discover...
config-set succeeded
Congratulations! Now you have PHP with 8.1.0 as php-8.1.0

To use the newly built PHP, try the line(s) below:

    $ phpbrew use php-8.1.0

Or you can use switch command to switch your default php to php-8.1.0:

    $ phpbrew switch php-8.1.0

Enjoy!

切り替えてバージョンを出力してみてください。

phpbrew switch php-8.1.0
php -v

遭遇したエラー

ld: can't map file, errno=22 file '/opt/homebrew/lib' for architecture arm64

PHP8.1インストール前準備を実施して.zshrcを修正したら解消しました。

おわりに

よいPHPライフを!

phpbrewでPHP 7.1/8.0をインストールした(+openssl, +gd)