かもメモ

自分の落ちた落とし穴に何度も落ちる人のメモ帳

Mac OS Catalina PHP インストールにハマる (phpenv諦めてphpbrew)

Mac OS Catalina にアップデートして Composer を使おうとしたら動作しなくなっていました… ( Catalina 開発トラブル多すぎない?)
PHPを再インストールしたら動くという情報を目にしたので、折角なので phpenv でインストールをしようとしたのですが、永遠に様々なエラーが出てきて phpenv install が動作する状態に辿り着けそうになかったので phpbrew を再インストールして PHP のインストールに成功したのでメモ。
あくまでログなので無駄な部分あるかもですが。

phpenv で挫折した時参考にしていたサイトさま

永遠にエラーがループして根本的にどこに問題があるのか理解でなかったので私は諦めてしまいました。

PHP なんもわからん…

1 phpbrew をインストール

https://github.com/phpbrew/phpbrew/blob/master/README.ja.m

$ curl -L -O https://github.com/phpbrew/phpbrew/releases/latest/download/phpbrew.phar
$ chmod +x phpbrew.phar

# $PATH の通っているディレクトリにファイルを移動します
$ sudo mv phpbrew.phar /usr/local/bin/phpbrew

# シェルで bash スクリプトを初期化します
$ phpbrew init

.bashrc に下記を追加

[[ -e ~/.phpbrew/bashrc ]] && source ~/.phpbrew/bashrc

2. 必要なパッケージをインストール

$ brew install autoconf pkg-config bison re2c bzip2 icu4c krb5 libedit libiconv libjpeg libpng libxml2 libzip oniguruma openssl@1.1 pkg-config tidy-html5

.bashrc にパスを設定 (正直どれが本当に必要なのか判ってない)

# openssl@1.1
export PATH=/usr/local/opt/openssl@1.1/bin:$PATH
export PKG_CONFIG_PATH="/usr/local/opt/openssl@1.1/lib/pkgconfig"
export LDFLAGS="-L/usr/local/opt/openssl@1.1/lib"
export CPPFLAGS="-I/usr/local/opt/openssl@1.1/include"

# libxml2
export PATH="/usr/local/opt/libxml2/bin:$PATH"

PHP_BUILD_CONFIGURE_OPTS="--with-openssl=$(brew --prefix openssl) --with-libxml-dir=$(brew --prefix libxml2)"

PKG_CONFIG_PATH="/usr/local/opt/krb5/lib/pkgconfig:/usr/local/opt/icu4c/lib/pkgconfig:/usr/local/opt/libedit/lib/pkgconfig:/usr/local/opt/libjpeg/lib/pkgconfig:/usr/local/opt/libpng/lib/pkgconfig:/usr/local/opt/libxml2/lib/pkgconfig:/usr/local/opt/libzip/lib/pkgconfig:/usr/local/opt/oniguruma/lib/pkgconfig:/usr/local/opt/openssl@1.1/lib/pkgconfig:/usr/local/opt/tidy-html5/lib/pkgconfig

変更を反映

$ source ~/.bachrc

3. phpbrew で PHP がインストールできればOK

# インストールできるバージョンを確認
$ phpbrew known
# インストール
$ phpbrew install 7.4.7 +default

コケなければOK

PHPのバージョンをを切り替え

# 一時的な切り替え
$ phpbrew use 7.4.7
# 恒久的な切り替え (デフォルのバージョンを指定)
$ phpbrew switch 7.4.7
$ php -v
PHP 7.4.7

切り替えたバージョンになっていればOK

 
Composer 使いたかっただけなのに、ggったり方向転換で一晩潰してしまいました…
PHPローカルの環境づくり辛すぎて触りたくない…
最初から docker の世界だけで触る練習をしておけばよかったと少し後悔しました。。。


[参考]

過去記事見ても PHP 環境作りの辛さしか感じられなかった…

Docker/Kubernetes 実践コンテナ開発入門

Docker/Kubernetes 実践コンテナ開発入門

カタリナ…は悪くないよ。Mac OS Catalina…君は…