🔖
Mac の phpenv で PHP 8.0 インストール(gd のビルドエラーがあり解決)
2022.7 追記ここから
現在は homebrew で入れたPHPを使うこちらの方法 を使っています。
2021.4.26 追記ここから
$ export PHP_BUILD_CONFIGURE_OPTS="--with-external-gd=/usr/local/opt/gd --enable-intl --enable-sockets --enable-exif --with-zlib --with-zlib-dir=/usr/local/opt/zlib --with-bz2 --with-bz2=/usr/local/opt/bzip2 --with-iconv=/usr/local/opt/libiconv --with-kerberos --with-openssl=/usr/local/opt/openssl --enable-soap --enable-xmlreader --with-xsl --enable-ftp --enable-cgi --with-pgsql=/usr/local/opt/postgres --with-libedit=/usr/local/opt/libedit --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-pear --with-pgsql --with-pdo-pgsql --with-sodium"
$ phpenv install --ini development 8.0.2
2021.4.26 追記ここまで
以下は良い解決方法では無かったのですが、作業記録としてそのまま残しておきます。
[2021.2.18]
Mac の anyenv (phpenv) 環境下で PHP 8.0 をインストールしようとしたところ、 gd でビルドエラーになってしまい手間取りました。 homebrew の gd を消してみたところ、無事インストールすることができました。他にもっと良いやり方等あれば知りたいなぁと思っています。
以下、その詳細です。
今回指定していたオプション
CONFIGURE_OPTS="--enable-sockets --enable-exif --with-zlib --with-bz2 --with-bz2=/usr/local/opt/bzip2 --enable-intl --with-iconv=/usr/local/opt/libiconv --with-kerberos --with-openssl=/usr/local/opt/openssl --enable-soap --enable-xmlreader --with-xsl --enable-ftp --enable-cgi --with-pgsql=/usr/local/opt/postgres --with-tidy --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-pgsql --with-pdo-pgsql --with-sodium --enable-gd --with-jpeg"
エラーメッセージ
私の環境(Mac OS X Catalina 10.15) だと、下記のように gd でエラーになりました。
$ phpenv install 8.0.2
(中略)
[Compiling]: /var/tmp/php-build/source/8.0.2
(中略)
/var/tmp/php-build/source/8.0.2/main/php_compat.h:327:25: note: expanded from macro 'gdImageSetPixel'
#define gdImageSetPixel php_gd_gdImageSetPixel
^
/var/tmp/php-build/source/8.0.2/ext/gd/libgd/gd_interpolation.c:2398:3: warning: implicit declaration of function 'php_gd_gdImageSetClip' is invalid in C99 [-Wimplicit-function-declaration]
gdImageSetClip(src, backup_clipx1, backup_clipy1,
^
/var/tmp/php-build/source/8.0.2/main/php_compat.h:326:24: note: expanded from macro 'gdImageSetClip'
#define gdImageSetClip php_gd_gdImageSetClip
^
43 warnings generated.
-----------------------------------------
The full Log is available at '/tmp/php-build.8.0.2.20210218145429.log'.
[Warn]: Aborting build.
対応
下記をした後にリトライしたらインストールができました。
$ brew uninstall php
$ brew uninstall gd
Discussion