RitoLabo

phpenv & php-build で macOS Catalina に複数バージョンの PHP 環境を構築する

  • 公開:
  • カテゴリ: PHP
  • タグ: PHP,mac,phpenv,php-build,Catalina

昨今の PHP での開発環境構築においてはコンテナ環境が大分普及してきたのもあり、PHP などのプログラミング言語のバージョンを切り替える事も大分容易になったなと思いつつ、それでも状況によってはローカルのマシンに複数のバージョンの PHP を保持して切り替えたい事もあります。

今回は、phpenv と php-build を用いて、複数バージョンの PHP を切り替えて使用できるようにしてみます。

アジェンダ
  1. 開発環境
  2. phpenv
    1. インストール
  3. php-build
    1. インストール
  4. PHP ビルド
    1. PHP 7.2
    2. PHP 7.3
    3. PHP 7.4
  5. ビルドエラーと解決法
    1. This bison version is not supported for regeneration of the Zend/PHP parsers
    2. You will need re2c 0.13.4 or later if you want to regenerate PHP parsers.
    3. Cannot find OpenSSL's <evp.h>
    4. Cannot find libz
    5. Please reinstall the BZip2 distribution
    6. Please reinstall the libcurl distribution - easy.h should be in <curl-dir>/include/curl/
    7. Please specify the install prefix of iconv with --with-iconv=<DIR>
    8. Please reinstall libedit - I cannot find readline.h
    9. The pkg-config script could not be found or is too old.
    10. No package 'krb5' found
    11. No package 'openssl' found
    12. Please reinstall the BZip2 distribution
    13. No package 'icu-i18n' found
    14. No package 'oniguruma' found

開発環境

今回の開発環境は以下の通りです。

  • macOS Catalina (ver 10.15.5)
  • Homebrew (ver 2.4.7)
  • git (ver 2.27.0)

Homebrew がインストール済みの前提で進めます。

Homebrew
パッケージマネージャ
https://brew.sh/index_ja

コマンドは特に指定されていなければ自身のユーザのホームディレクトリで実行します。

# ホームディレクトリへ移動
% cd

# 現在いる位置
% pwd
/Users/guest

Catalina なのでシェルは zsh の前提で進めます。bash の場合は読み替えてください。

phpenv

まずは phpenv を導入します。

phpenv は、指定されたphpのバージョンをインストールしたり、プロジェクト毎、またはシステム全体で使用するphpのバージョンを切り替えることができるツールです。

phpenv
https://github.com/phpenv/phpenv

インストールの手順は基本的には 公式で示されている手順で行っていきます。

インストール

公式ドキュメントでは phpenv-installer も用意されていてそちらでもインストールできるみたいですが、今回は手動で行っていきます。

まずは、github から phpenv をチェックアウト(ソースを取得)します。

# phpenv をチェックアウト
git clone git://github.com/phpenv/phpenv.git ~/.phpenv

パスを通します。

# phpenv のパスを通す
echo 'export PATH="$HOME/.phpenv/bin:$PATH"' >> ~/.zshrc

phpenv で PHPバージョンを切り替えられるようにするために phpenv init をシェルに追加します。

echo 'eval "$(phpenv init -)"' >> ~/.zshrc

.zshrc を再読み込みします。

# 再読み込み
source ~/.zshrc

phpenv コマンドのバージョン確認を実行して、バージョンが表示されればインストールは完了です。

# バージョンを確認
% phpenv --version
phpenv v0.9.0-rc.1

php-build

次に、php-build を導入します。

php-build は、PHP をバージョンごとにビルドするツールです。

php-build
https://github.com/php-build/php-build

インストール

github から php-build をチェックアウト(ソースを取得)します。

# php-build チェックアウト
git clone git://github.com/php-build/php-build.git ~/.phpenv/plugins/php-build

今回は phpenv のプラグインとして使用するので、設置するパスも指定しています。

これで php-build のインストールは完了です。

phpenv と php-build の導入が完了したので、これで各バージョンの PHP のインストールを行っていく準備が整いました。

PHP ビルド

これから、各バージョンの PHP のビルドを行っていきます。

以下の phpenv コマンドを実行すると、インストール可能なバージョンが表示されます。

# インストール可能なバージョンを表示する
% phpenv install --list
Available versions:
5.2.17
.
.
.
7.4.8
7.4snapshot
master

上記で表示されるバージョンで、必要なものをインストールする事ができます。

ちなみに、phpenv と php-build を用いた PHP のインストールを行う場合、各バージョンで必要なパッケージの導入など、依存関係の解決を一つ一つ行っていくという地道な作業になります。

今回は PHP 7.2 / 7.3 / 7.4 をインストールするという前提で、はじめに一発でインストールが行える方法を記します。

まず、PHP のビルドに必要なライブラリを Homebrew でインストールします。

# パッケージ インストール
brew install bison re2c libxml2 zlib libzip bzip2 curl libiconv libedit pkg-config krb5 openssl@1.1 icu4c oniguruma

ここで一つ注意点ですが、PHP 7.2.0 〜 7.2.4 をインストールしたい場合、ここで oniguruma をインストールすると次の PHP のビルドで失敗するので、一旦インストールから外してください。

次に、以下のコマンドを実行してパスを通します。

# パッケージのパスを通す
echo 'export PATH="/usr/local/opt/bison/bin:$PATH"' >> ~/.zshrc
echo 'export PATH="/usr/local/opt/libxml2/bin:$PATH"' >> ~/.zshrc
echo 'export PATH="/usr/local/opt/bzip2/bin:$PATH"' >> ~/.zshrc
echo 'export PATH="/usr/local/opt/curl/bin:$PATH"' >> ~/.zshrc
echo 'export PATH="/usr/local/opt/libiconv/bin:$PATH"' >> ~/.zshrc
echo 'export PATH="/usr/local/opt/krb5/bin:$PATH"' >> ~/.zshrc
echo 'export PATH="/usr/local/opt/openssl@1.1/bin:$PATH"' >> ~/.zshrc
echo 'export PATH="/usr/local/opt/icu4c/bin:$PATH"' >> ~/.zshrc

ちなみに以下のように、各ライブラリのパスを動的にしてもOKです。(ターミナル開いた際の読み込み時にパスを解決するのでその分時間がかかります。その場合は予め zcompile でコンパイルすれば解決)

echo 'export PATH="$(brew --prefix bison)/bin:$PATH"' >> ~/.zshrc
echo 'export PATH="$(brew --prefix libxml2)/bin:$PATH"' >> ~/.zshrc
echo 'export PATH="$(brew --prefix bzip2)/bin:$PATH"' >> ~/.zshrc
echo 'export PATH="$(brew --prefix curl)/bin:$PATH"' >> ~/.zshrc
echo 'export PATH="$(brew --prefix libiconv)/bin:$PATH"' >> ~/.zshrc
echo 'export PATH="$(brew --prefix krb5)/bin:$PATH"' >> ~/.zshrc
echo 'export PATH="$(brew --prefix openssl@1.1)/bin:$PATH"' >> ~/.zshrc
echo 'export PATH="$(brew --prefix icu4c)/bin:$PATH"' >> ~/.zshrc

次に、以下のコマンドを実行して環境変数 PKG_CONFIG_PATH を設定します

# PKG_CONFIG_PATH を設定

echo 'export PKG_CONFIG_PATH="/usr/local/opt/krb5/lib/pkgconfig:$PKG_CONFIG_PATH"' >> ~/.zshrc
echo 'export PKG_CONFIG_PATH="/usr/local/opt/openssl@1.1/lib/pkgconfig:$PKG_CONFIG_PATH"' >> ~/.zshrc
echo 'export PKG_CONFIG_PATH="/usr/local/opt/icu4c/lib/pkgconfig:$PKG_CONFIG_PATH"'
>> ~/.zshrc

# もしくは

echo 'export PKG_CONFIG_PATH="$(brew --prefix krb5)/lib/pkgconfig:$PKG_CONFIG_PATH"' >> ~/.zshrc
echo 'export PKG_CONFIG_PATH="$(brew --prefix openssl@1.1)/lib/pkgconfig:$PKG_CONFIG_PATH"' >> ~/.zshrc
echo 'export PKG_CONFIG_PATH="$(brew --prefix icu4c)/lib/pkgconfig:$PKG_CONFIG_PATH"' >> ~/.zshrc

source コマンドを実行して .zshrc を再読み込みします。

# .zshrc 再読み込み
source ~/.zshrc

これで PHP のビルドをスムーズに行う準備が整いました。

PHP 7.2

それではこれから、各バージョンの PHP をインストールしていきます。

まず、現状を確認します。以下の phpenv コマンドを叩くと、インストール済み PHP のバージョンを確認できます。

# インストール済みのバージョンを確認
% phpenv versions
* system (set by /Users/guest/.phpenv/version)


# 現在アクティブな PHP のバージョン
% php -v
PHP 7.2.32

system は、phpenv ではなく、Mac デフォルトや Homebrew でインストールされていてアクティブになっている PHP の事です。

この場合、まだ phpenv を使って PHP をインストールしてはおらず、通常インストールされた PHP 7.2.32 のみが存在している事を表しています。

ではまず、PHP 7.2.9 をインストールしてみます。以下のコマンドを実行します。

# PHP 7.2.9 インストール
PHP_RPATHS="/usr/local/opt/zlib/lib /usr/local/opt/bzip2/lib /usr/local/opt/curl/lib /usr/local/opt/libiconv/lib /usr/local/opt/libedit/lib" \
PHP_BUILD_CONFIGURE_OPTS="--with-zlib-dir=/usr/local/opt/zlib --with-bz2=/usr/local/opt/bzip2 --with-curl=/usr/local/opt/curl --with-iconv=/usr/local/opt/libiconv --with-libedit=/usr/local/opt/libedit" \
phpenv install -i development 7.2.9

コマンド1回分ですが、見やすいように改行コードを挟んでいます。また、php.ini は development で作成するように指定しているので、production で作成したい場合は -i developmentを省いてください。

本来であればコマンドは phpenv install 7.2.9 だけで良いのですが、Catalina(厳密には Mojave から?)ではリンク周りが上手く行っておらず、PHP_RPATHS や PHP_BUILD_CONFIGURE_OPTS を指定した上で実行すると上手くいきます。

また、この辺りは php-build のコントリビューターでもある @kunit さんの記事がとても参考になりました。

通信環境やマシンスペックなどにもよるとは思いますが、こちらで行ったところでは PHP のビルドに 20 分程度かかりました。

% PHP_RPATHS="/usr/local/opt/zlib/lib /usr/local/opt/bzip2/lib /usr/local/opt/curl/lib /usr/local/opt/libiconv/lib /usr/local/opt/libedit/lib" \
PHP_BUILD_CONFIGURE_OPTS="--with-zlib-dir=/usr/local/opt/zlib --with-bz2=/usr/local/opt/bzip2 --with-curl=/usr/local/opt/curl --with-iconv=/usr/local/opt/libiconv --with-libedit=/usr/local/opt/libedit" \
phpenv install 7.2.9
[Info]: Loaded extension plugin
[Info]: Loaded apc Plugin.
[Info]: Loaded composer Plugin.
[Info]: Loaded github Plugin.
[Info]: Loaded uprofiler Plugin.
[Info]: Loaded xdebug Plugin.
[Info]: Loaded xhprof Plugin.
[Info]: Loaded zendopcache Plugin.
[Info]: php.ini-production gets used as php.ini
[Info]: Building 7.2.9 into /Users/guest/.phpenv/versions/7.2.9
[Downloading]: https://secure.php.net/distributions/php-7.2.9.tar.bz2
[Preparing]: /var/tmp/php-build/source/7.2.9
[Compiling]: /var/tmp/php-build/source/7.2.9
[xdebug]: Installing version 2.9.6
[Downloading]: http://xdebug.org/files/xdebug-2.9.6.tgz
[xdebug]: Compiling xdebug in /var/tmp/php-build/source/xdebug-2.9.6
[xdebug]: Installing xdebug configuration in /Users/guest/.phpenv/versions/7.2.9/etc/conf.d/xdebug.ini
[xdebug]: Cleaning up.
[Info]: Enabling Opcache...
[Info]: Done
[Info]: The Log File is not empty, but the Build did not fail. Maybe just warnings got logged. You can review the log in /tmp/php-build.7.2.9.20200719135234.log or rebuild with '--verbose' option
[Success]: Built 7.2.9 successfully.

新しいバージョンをインストールしたら、以下の phpenv コマンドを実行してハッシュを更新します。

phpenv rehash

これで PHP 7.2.9 のインストールができたので、再度状態を確認します。

% phpenv versions
* system (set by /Users/guest/.phpenv/version)
7.2.9

% php -v
PHP 7.2.32

7.2.9 がインストールされている事が確認できました。一方で、まだ切り替えていないので現状の PHP のバージョンは 7.2.32 のままです。これを切り替えるには以下の phpenv コマンドを実行します。

# バージョンを切り替える
% phpenv global 7.2.9
7.2.9


# 確認
% phpenv versions
system
* 7.2.9

% php -v
PHP 7.2.9

PHP のバージョンが 7.2.9 に切り替わりました。

なお、切り替えには2種類の方法があり、先程のように全体を切り替える方法と、実行したディレクトリ配下のバージョンだけを切り替える方法があります。

# [方法1] 純粋に バージョンを切り替える
phpenv global <version>

# [方法2] 特定のディレクトリ配下でのみバージョンを切り替える
cd /path/to/project

phpenv local <version>

後者の方法の場合、/path/to/project 配下でのみ、指定したバージョンに切り替える事ができます。

PHP 7.3

続いて、PHP 7.3 をインストールしてみます。以下のコマンドを実行します。

# PHP 7.3.9 インストール
PHP_RPATHS="/usr/local/opt/zlib/lib /usr/local/opt/bzip2/lib /usr/local/opt/libiconv/lib /usr/local/opt/libedit/lib" \
PHP_BUILD_CONFIGURE_OPTS="--with-zlib-dir=/usr/local/opt/zlib --with-bz2=/usr/local/opt/bzip2 --with-iconv=/usr/local/opt/libiconv --with-libedit=/usr/local/opt/libedit" \
phpenv install 7.3.9

若干指定しているものが違う程度で、基本的には 7.2 の時と同じです。

こちらも大体20分程度でインストール完了。ハッシュを更新して切り替えてみます。

# hashの更新
phpenv rehash

# PHP 7.3.9 へ切り替え
% phpenv global 7.3.9
7.3.9


# 確認
% phpenv versions
system
7.2.9
* 7.3.9

% php -v
PHP 7.3.9

PHP 7.3.9 に切り替わった事を確認できました。

PHP 7.4

最後に、PHP 7.4 をインストールします。以下のコマンドを実行します。

# PHP 7.4.8 インストール
PHP_RPATHS="/usr/local/opt/bzip2/lib /usr/local/opt/libiconv/lib" \
PHP_BUILD_CONFIGURE_OPTS="--with-bz2=/usr/local/opt/bzip2 --with-iconv=/usr/local/opt/libiconv" \
phpenv install 7.4.8

インストールが完了したら、切り替えてみます。

# hashの更新
phpenv rehash

# PHP 7.4.8 へ切り替え
% phpenv global 7.4.8
7.4.8


# 確認
% phpenv versions
system
7.2.9
7.3.9
* 7.4.8

% php -v
PHP 7.4.8

PHP 7.4.8 に切り替わった事を確認できました。

これで phpenv と php-build を利用した複数 PHP バージョン環境の構築は完了です。

ちなみに、この方法を用いて PHP をインストールした場合、php.ini は以下の場所になります。

% php -i | grep php.ini
Configuration File (php.ini) Path => /Users/guest/.phpenv/versions/7.4.8/etc
Loaded Configuration File =>
/Users/guest/.phpenv/versions/7.4.8/etc/php.ini

ビルドエラーと解決法

PHP をビルドする際に遭遇したエラーと解決法を以下に列挙しておきます。以下で解決したものをまとめたものが前項になっています。

既にインストール済みのライブラリを改めて Homebrew でインストールしている部分があります。実際はインストール済みのものをアップデートしたりして対応も可能だと思いますが、様々なパッケージを Homebrew で管理するようにしてしまった方がバージョンアップが一括でできる事や、これらが必ず Homebrew で管理されている事を把握できるので、導入後の運用が楽という点でインストールし直しています。

This bison version is not supported for regeneration of the Zend/PHP parsers

configure: WARNING: This bison version is not supported for regeneration of the Zend/PHP parsers (found: 2.3, min: 204, excluded: ).

この bison のバージョンは、Zend / PHPパーサーの再生成ではサポートされていません

現在の bison のバージョンが 2.3 で、これではバージョンが低い。

bison
パーサジェネレータ
https://www.gnu.org/software/bison/
https://formulae.brew.sh/formula/bison

現在の bison の状態を確認

% which bison
/usr/bin/bison

% bison --version
bison (GNU Bison) 2.3
Written by Robert Corbett and Richard Stallman.

Mac に入ってるデフォルトのやつなので、Homebrew で新たにインストールして管理していくようにする。

# bison インストール
brew install bison

パスを通す

echo 'export PATH="/usr/local/opt/bison/bin:$PATH"' >> ~/.zshrc

.zshrc を再読み込み

source ~/.zshrc

改めて状態を確認

% which bison
/usr/local/opt/bison/bin/bison

% bison --version
bison (GNU Bison) 3.6.4
Written by Robert Corbett and Richard Stallman.

これで解決

You will need re2c 0.13.4 or later if you want to regenerate PHP parsers.

configure: WARNING: You will need re2c 0.13.4 or later if you want to regenerate PHP parsers.

PHPパーサーを再生成する場合は、re2c 0.13.4以降が必要です。

re2c が入っていなかったのでインストールする必要がある

re2c
レクサージェネレータ
https://re2c.org/
https://formulae.brew.sh/formula/re2c

Homebrew でインストール

# re2c インストール
brew install re2c

re2c の状態を確認

% which re2c
/usr/local/bin/re2c

% /usr/local/bin/re2c --version
re2c 1.3

これで解決しました。

Cannot find OpenSSL's <evp.h>

configure: error: Cannot find OpenSSL's <evp.h>

OpenSSLの evp.h が見つかりません

libxml2
C言語で XML を扱うためのライブラリ
http://xmlsoft.org/
https://formulae.brew.sh/formula/libxml2

libxml2 を Homebrew でインストール

# libxml2 インストール
brew install libxml2

パスを通して再読み込み

# パスを通す
echo 'export PATH="/usr/local/opt/libxml2/bin:$PATH"' >> ~/.zshrc

# .zshrc を再読み込み
source ~/.zshrc

これで解決

Cannot find libz

configure: error: Cannot find libz

libzが見つかりません

zlib
https://zlib.net/
https://formulae.brew.sh/formula/zlib

zlib インストール

# zlib インストール
brew install zlib

phpenv install を実行する時に、PHP_RPATHS と PHP_BUILD_CONFIGURE_OPTS を指定する。

PHP_RPATHS="/usr/local/opt/zlib/lib" PHP_BUILD_CONFIGURE_OPTS="--with-zlib-dir=/usr/local/opt/zlib" phpenv install 7.x.x

これで解決しました。

Please reinstall the BZip2 distribution

configure: error: Please reinstall the BZip2 distribution

BZip2 ディストリビューションを再インストールしてください

BZip2 をインストールする

# bzip2 インストール
brew install bzip2

# パスを通す
echo 'export PATH="/usr/local/opt/bzip2/bin:$PATH"' >> ~/.zshrc

# .zshrc を再読み込み
source ~/.zshrc

# 確認
% which bzip2
/usr/local/opt/bzip2/bin/bzip2

phpenv install を実行する時に、PHP_RPATHS と PHP_BUILD_CONFIGURE_OPTS を指定する。

PHP_RPATHS="/usr/local/opt/bzip2/lib" PHP_BUILD_CONFIGURE_OPTS="--with-bz2=/usr/local/opt/bzip2" phpenv install 7.x.x

これで解決しました。

Please reinstall the libcurl distribution - easy.h should be in <curl-dir>/include/curl/

configure: WARNING: Fallback: search for curl headers and curl-config
configure: error: Please reinstall the libcurl distribution - easy.h should be in <curl-dir>/include/curl/

libcurlディストリビューションを再インストールしてください

現在の状態を確認

% which curl
/usr/bin/curl

Mac にデフォルトで入っているやつなので、これも Homebrew でインストールして管理するようにする。

# curl インストール
brew install curl

# パスを通す
echo 'export PATH="/usr/local/opt/curl/bin:$PATH"' >> ~/.zshrc

# .zshrc を再読み込み
source ~/.zshrc

# 確認
% which curl
/usr/local/opt/curl/bin/curl

phpenv install を実行する時に、PHP_RPATHS と PHP_BUILD_CONFIGURE_OPTS を指定する。

PHP_RPATHS="/usr/local/opt/curl/lib" PHP_BUILD_CONFIGURE_OPTS="--with-curl=/usr/local/opt/curl" phpenv install 7.x.x

Please specify the install prefix of iconv with --with-iconv=<DIR>

configure: error: Please specify the install prefix of iconv with --with-iconv=<DIR>

--with-iconv=<DIR>でiconvのインストール接頭辞を指定してください

ここもパス必要かと思いつつ、現状確認。

% which iconv
/usr/bin/iconv

デフォルトで Mac に入っているものだったのでこれも Homebrew で管理するようにする。

# libiconv インストール
brew install libiconv

# パスを通す
echo 'export PATH="/usr/local/opt/libiconv/bin:$PATH"' >> ~/.zshrc

# .zshrc を再読み込み
source ~/.zshrc

# 確認
% which iconv
/usr/local/opt/libiconv/bin/iconv

phpenv install を実行する時に、PHP_RPATHS と PHP_BUILD_CONFIGURE_OPTS を指定する。

PHP_RPATHS="/usr/local/opt/libiconv/lib" PHP_BUILD_CONFIGURE_OPTS="--with-iconv=/usr/local/opt/libiconv" phpenv install 7.x.x

Please reinstall libedit - I cannot find readline.h

configure: error: Please reinstall libedit - I cannot find readline.h

libeditを再インストールしてください

# libiconv インストール
brew install libedit

The pkg-config script could not be found or is too old.

configure: error: The pkg-config script could not be found or is too old. Make sure it is in your PATH or set the PKG_CONFIG environment variable to the full path to pkg-config.

pkg-configスクリプトが見つからなかったか古すぎます。それがPATHにあることを確認するか、PKG_CONFIG環境変数を pkg-config へのフルパスに設定します。

ひとまず確認

% which pkg-config
pkg-config not found

入っていないようなのでインストール

pkg-config
アプリケーションとライブラリをコンパイルするときに使用されるヘルパーツール
http://pkg-config.freedesktop.org/
# pkg-config インストール
brew install pkg-config

# 確認
% which pkg-config
/usr/local/bin/pkg-config
# pkg-config インストール
brew install pkg-config

# 確認
% which pkg-config
/usr/local/bin/pkg-config

No package 'krb5' found

No package 'krb5' found

krb5 が無いのでインストールする

krb5
ネットワーク認証プロトコル
https://web.mit.edu/kerberos/
https://formulae.brew.sh/formula/krb5

krb5 をインストール

# krb5 インストール
brew install krb5

以下のコマンドを実行してパスを通し、PKG_CONFIG_PATH に追加する

# パスを通す
echo 'export PATH="/usr/local/opt/krb5/bin:$PATH"' >> ~/.zshrc

# PKG_CONFIG_PATH を設定
echo 'export PKG_CONFIG_PATH="/usr/local/opt/krb5/lib/pkgconfig:$PKG_CONFIG_PATH"' >> ~/.zshrc

# .zshrc を再読み込み
source ~/.zshrc

No package 'openssl' found

No package 'openssl' found

openssl が無いのでインストール

openssl@1.1
暗号化 & SSL/TLS ツールキット
https://www.openssl.org/
https://formulae.brew.sh/formula/openssl@1.1

openssl をインストール

# openssl インストール
brew install openssl@1.1

以下のコマンドを実行してパスを通し、PKG_CONFIG_PATH に追加する

# パスを通す
echo 'export PATH="/usr/local/opt/openssl@1.1/bin:$PATH"' >> ~/.zshrc

# PKG_CONFIG_PATH を設定
echo 'export PKG_CONFIG_PATH="/usr/local/opt/openssl@1.1/lib/pkgconfig:$PKG_CONFIG_PATH"' >> ~/.zshrc

# .zshrc を再読み込み
source ~/.zshrc

Please reinstall the BZip2 distribution

configure: WARNING: unrecognized options: --with-png-dir, --with-libxml-dir, --with-icu-dir, --with-libxml-dir
configure: error: Please reinstall the BZip2 distribution
./configure: line 349: sort: No such file or directory
./configure: line 346: sed: No such file or directory

PHP_RPATHS と PHP_BUILD_CONFIGURE_OPTS を指定してあげる

PHP_RPATHS="/usr/local/opt/bzip2/lib" PHP_BUILD_CONFIGURE_OPTS="--with-bz2=/usr/local/opt/bzip2" phpenv install 7.x.x

No package 'icu-i18n' found

No package 'icu-i18n' found

icu4c が無いのでインストール

# icu4c インストール
brew install icu4c

# パスを通す
echo 'export PATH="/usr/local/opt/icu4c/bin:$PATH"' >> ~/.zshrc

# PKG_CONFIG_PATH を設定
echo 'export PKG_CONFIG_PATH="/usr/local/opt/icu4c/lib/pkgconfig:$PKG_CONFIG_PATH"' >> ~/.zshrc

# .zshrc を再読み込み
source ~/.zshrc

No package 'oniguruma' found

No package 'oniguruma' found

oniguruma が無いのでインストール

oniguruma
正規表現ライブラリ
https://github.com/kkos/oniguruma/
https://formulae.brew.sh/formula/oniguruma
# oniguruma インストール
brew install oniguruma

まとめ

PHP のバージョンを切り替えて使う事ができると状況に応じて使い分けられたりして便利なので、必要があれば導入してみてください。