CodlessCode
PHP

phpbrew で PHP 8.1 を インストール

PHP 8.1 が2021年11月25日にリリースされました!やったね!
今日は PHP 8.1 を phpbrew でインストールしてみます。

前のバージョンはこちらでインストールしています!
良ければ参考にしてください。

PHPカテゴリサムネイル画像
phpbrew で PHP 7.1 / 8.0 をインストールした( + openssl / + gd )phpbrew で PHP 7.1、8.0 をインストールし、gdを有効にしたときの備忘録です。...

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

環境

以下のような環境でやってます。

  • Mac macOS Big Sur 11.6.1
  • Homebrew 3.3.6
  • phpbrew – 1.27.0
  • cliframework core – 2.5.4
  • PHP v8.0.3 使用中
  • ビルドに必要なライブラリはインストール済み

【結論】 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 の修正

こちらのようなCFLAGSCXXFLAGSが設定されている場合はコメントアウトします。
新しいバージョンの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を修正したら
解消できる場合があります。
(私の場合は上記の2つでした)

おわりに

お疲れ様でした!参考になれば幸いです。

良いPHPライフを!

PHPカテゴリサムネイル画像
phpbrew で PHP 7.1 / 8.0 をインストールした( + openssl / + gd )phpbrew で PHP 7.1、8.0 をインストールし、gdを有効にしたときの備忘録です。...