はじめに
本記事では、mac+fishシェルの環境にphpbrewを使ってPHP7.4をインストールするまでの過程をまとめています。
PHP7.4をインストールするまで
icuパッケージがNo package foundで失敗
$ phpbrew install 7.4.1 +pdo +mysql +pgsql +mbstring +mcrypt +intl +curl +sqlite +bz2=/usr/local/opt/bzip2 +xml +opcache +bcmath +calendar +cli +ctype +dom +fileinfo +filter +ipc +json +mbregex +mhash +pcntl +pcre +pear +phar +posix +readline +sockets +tokenizer +openssl +zip -- --with-zlib-dir=/usr/local/opt/zlib
No package 'icu-uc' found
No package 'icu-io' found
No package 'icu-i18n' found
PKG_CONFIG_PATHをセット
ログに次のコマンドが書かれていたので、実行。
そうすると、pkc-configがicu4cを見つけられるようにするために、PKG_CONFIG_PATHを設定するように指示されたので~/.config/fish/config.fishにPKG_CONFIG_PATHを追加。
$ brew link icu4c --force
Warning: Refusing to link macOS-provided software: icu4c
If you need to have icu4c first in your PATH run:
echo 'set -g fish_user_paths "/usr/local/opt/icu4c/bin" $fish_user_paths' >> ~/.config/fish/config.fish
echo 'set -g fish_user_paths "/usr/local/opt/icu4c/sbin" $fish_user_paths' >> ~/.config/fish/config.fish
For compilers to find icu4c you may need to set:
set -gx LDFLAGS "-L/usr/local/opt/icu4c/lib"
set -gx CPPFLAGS "-I/usr/local/opt/icu4c/include"
For pkg-config to find icu4c you may need to set:
set -gx PKG_CONFIG_PATH "/usr/local/opt/icu4c/lib/pkgconfig"
No package ‘libzip’ found
前述のphpbrew installを再実行すると、次はNo package ‘libzip’ foundが発生。
No package 'libzip' found
homebrewでlibzipをインストール。
$ brew install libzip
opensslでエラー
エラーメッセージ
libzipのエラーを解消して更にインストールが進んだところで、今度はopensslのエラーが発生。
Error: Make failed:
The last 5 lines in the log file:
_zif_openssl_x509_parse in openssl.o
_zif_openssl_csr_sign in openssl.o
PHP7.4のインストールに成功
phpbrewでインストールするPHP7.4が、brewでインストールしたoensslを使用するように指定コマンドを変更して再度実行。
最終的に
+openssl=(brew --prefix openssl)
$ phpbrew install 7.4.1 +pdo +mysql +pgsql +mbstring +mcrypt +intl +curl +sqlite +bz2=/usr/local/opt/bzip2 +xml +opcache +bcmath +calendar +cli +ctype +dom +fileinfo +filter +ipc +json +mbregex +mhash +pcntl +pcre +pear +phar +posix +readline +sockets +tokenizer +openssl=(brew --prefix openssl) +zip -- --with-zlib-dir=/usr/local/opt/zlib