🔖

Mac の phpenv で PHP 8.0 インストール(gd のビルドエラーがあり解決)

2021/02/18に公開

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