何番煎じかわからないけどmacでphpenvをbuildできるようにする
phpenvのbuild errorが起きすぎる
- macOSをCatalinaにあげたり、新規macを購入したら大抵エラーが起きたりする
- 悲しいことに複数のprojectを抱えてたり、version固定(指定)している場合には、phpenvが必須になるので対応するしかない
- dockerでどうこうの場合は、この限りではないと思います
前提
- brew が入っている環境
- anyenvでphpenvがinstall済みの環境
願い・気持ち
- 極力
zshrc
等を汚したくない
結論:以下を行えば問題なくbuildができる
- brew で必要になるものをinstallする
- anyenv以下にあるphpenvのbuild_optionを修正する
phpenv install時にversionによってoptionをつけてコマンドを実行する
brew install
$ brew install zlib curl bzip libiconv libedit tidy-html5 openssl@1.1 icu4c krb5
~足りないものは適宜追加してください~
- build option
$ vim ~/.anyenv/envs/phpenv/plugins/php-build/share/php-build/default_configure_options
--enable-sockets --enable-exif --with-zlib --enable-intl --with-kerberos --with-openssl --enable-soap --enable-xmlreader --with-xsl --enable-ftp --enable-cgi --with-curl=/usr --with-tidy --with-xmlrpc --enable-sysvsem --enable-sysvshm --enable-shmop --with-mysqli=mysqlnd --with-pdo-mysql=mysqlnd --with-pdo-sqlite --enable-pcntl --with-readline --enable-mbstring --disable-debug --enable-fpm --enable-bcmath --enable-phpdbg # 以下を追加 --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 --with-curl=/usr/local/opt/curl --with-tidy=/usr/local/opt/tidy-html5
- php / 7.2.xのinstall
$ PHP_BUILD_CONFIGURE_OPTS="--with-libedit=$(brew --prefix libedit)" phpenv install 7.2.32
7.4.xのinstall
- zshrcなどに以下を追記
export PKG_CONFIG_PATH="$(brew --prefix krb5)/lib/pkgconfig:$PKG_CONFIG_PATH" export PKG_CONFIG_PATH="$(brew --prefix openssl@1.1)/lib/pkgconfig:$PKG_CONFIG_PATH" export PKG_CONFIG_PATH="$(brew --prefix icu4c)/lib/pkgconfig:$PKG_CONFIG_PATH"
$ phpenv install 7.4.x