39
27

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

More than 3 years have passed since last update.

macOS に phpenv で PHP 7.4 をインストールする

Last updated at Posted at 2019-12-14

PHP 7.4 が2019年11月28日にリリースされてphpenv + php-build では2019年12月10日に PHP 7.4 が追加されたようなので、早速 macOS にインストールしてみたけど、結構てこずったので、私がインストールできた方法をまとめておきます。

環境

  • macOS: 10.15.1
  • phpenv: v0.9.0-rc.1
  • php-build: v0.11.0dev

はじめに実行したコマンド

phpenv を最新の状態にして

$ phpenv update

PHP 7.4 をインストールしようとしたところ、いくつかのエラーが発生したので、順番にエラーを潰していった。

$ phpenv install 7.4

krb5 をインストールする

krb5 を入れろと言われるので、 brewkrb5 をインストールする。

$ brew install krb5

あと、 PKG_CONFIG_PATH にパスを設定しろとも言われるので、設定する。私は fish shell を使っているので、 .config/fish/conf.d/krb5.fish に下記のように設定した。

set -gx PKG_CONFIG_PATH "/usr/local/opt/krb5/lib/pkgconfig" $PKG_CONFIG_PATH

そのときのエラーメッセージ

configure: WARNING: unrecognized options: --with-png-dir, --with-libxml-dir, --with-icu-dir
configure: error: Package requirements (krb5-gssapi krb5) were not met:

No package 'krb5-gssapi' found
No package 'krb5' found

Consider adjusting the PKG_CONFIG_PATH environment variable if you
installed software in a non-standard prefix.

Alternatively, you may set the environment variables KERBEROS_CFLAGS
and KERBEROS_LIBS to avoid the need to call pkg-config.
See the pkg-config man page for more details.

openssl をインストールする

同じく openssl を入れろと言われるので、 brewopenssl をインストールする。

brew install openssl@1.1

同じく PKG_CONFIG_PATH にパスを設定しろとも言われるので、設定する。 .config/fish/conf.d/openssl.fish に下記のように設定した。

set -gx PKG_CONFIG_PATH "/usr/local/opt/openssl@1.1/lib/pkgconfig" $PKG_CONFIG_PATH

そのときのエラーメッセージ

configure: WARNING: unrecognized options: --with-png-dir, --with-libxml-dir, --with-icu-dir
configure: error: Package requirements (openssl >= 1.0.1) were not met:

No package 'openssl' found

Consider adjusting the PKG_CONFIG_PATH environment variable if you
installed software in a non-standard prefix.

Alternatively, you may set the environment variables OPENSSL_CFLAGS
and OPENSSL_LIBS to avoid the need to call pkg-config.
See the pkg-config man page for more details.

icu4c をインストールする

同じく icu を入れろと言われるので、 brewicu4c をインストールする。

brew install icu4c

同じく PKG_CONFIG_PATH にパスを設定しろとも言われるので、設定する。 .config/fish/conf.d/icu4c.fish に下記のように設定した。

set -gx PKG_CONFIG_PATH "/usr/local/opt/icu4c/lib/pkgconfig" $PKG_CONFIG_PATH

そのときのエラーメッセージ

configure: WARNING: unrecognized options: --with-png-dir, --with-libxml-dir, --with-icu-dir
configure: error: Package requirements (icu-uc >= 50.1 icu-io icu-i18n) were not met:

No package 'icu-uc' found
No package 'icu-io' found
No package 'icu-i18n' found

Consider adjusting the PKG_CONFIG_PATH environment variable if you
installed software in a non-standard prefix.

Alternatively, you may set the environment variables ICU_CFLAGS
and ICU_LIBS to avoid the need to call pkg-config.
See the pkg-config man page for more details.

libedit をインストールする

同じく libedit を入れろと言われるので、 brewlibedit をインストールする。

brew install libedit

同じく PKG_CONFIG_PATH にパスを設定しろとも言われるので、設定する。 .config/fish/conf.d/libedit.fish に下記のように設定した。

set -gx PKG_CONFIG_PATH "/usr/local/opt/libedit/lib/pkgconfig" $PKG_CONFIG_PATH

そのときのエラーメッセージ

configure: WARNING: unrecognized options: --with-png-dir, --with-libxml-dir, --with-icu-dir
configure: WARNING: libedit directory ignored, rely on pkg-config
configure: error: Package requirements (libedit) were not met:

No package 'libedit' found

Consider adjusting the PKG_CONFIG_PATH environment variable if you
installed software in a non-standard prefix.

Alternatively, you may set the environment variables EDIT_CFLAGS
and EDIT_LIBS to avoid the need to call pkg-config.
See the pkg-config man page for more details.

libxml2 のパスを設定する

libxml2brew でインストールされていたけど、パスが通っていなかったので、ビルド時にエラーになった。

.config/fish/conf.d/libzml2.fish に下記のように設定した。

set -gx PKG_CONFIG_PATH "/usr/local/opt/libxml2/lib/pkgconfig" $PKG_CONFIG_PATH

そのときのエラーメッセージ

configure: WARNING: unrecognized options: --with-png-dir, --with-libxml-dir, --with-icu-dir
configure: WARNING: unrecognized options: --with-png-dir, --with-libxml-dir, --with-icu-dir
warning: unsupported relocation in debug_info section.
note: while processing /private/var/tmp/php-build/source/7.4.0/ext/opcache/.libs/zend_accelerator_util_funcs.o
/Applications/Xcode.app/Contents/Developer/Toolchains/XcodeDefault.xctoolchain/usr/bin/ranlib: file: ext/opcache/.libs/opcache.a(shared_alloc_shm.o) has no symbols
/Applications/Xcode.app/Contents/Developer/Toolchains/XcodeDefault.xctoolchain/usr/bin/ranlib: file: ext/opcache/.libs/opcache.a(shared_alloc_shm.o) has no symbols
/Applications/Xcode.app/Contents/Developer/Toolchains/XcodeDefault.xctoolchain/usr/bin/ranlib: file: /var/tmp/php-build/source/7.4.0/modules/opcache.a(shared_alloc_shm.o) has no symbols
/var/tmp/php-build/source/7.4.0/ext/libxml/libxml.c:34:10: fatal error: 'libxml/parser.h' file not found
#include <libxml/parser.h>
         ^~~~~~~~~~~~~~~~~
1 error generated.
make: *** [ext/libxml/libxml.lo] Error 1

bzip2iconv のパスを通す

bzip2iconvbrew でインストールしたけど、 fish shell の設定ではうまくパスが通らなかったので、 phpenv で install するときにパスを渡すことにした。

brew install bzip2 libiconv

エラーメッセージ

bzip2

configure: WARNING: unrecognized options: --with-png-dir, --with-libxml-dir, --with-icu-dir
configure: error: Please reinstall the BZip2 distribution

iconv

configure: WARNING: unrecognized options: --with-png-dir, --with-libxml-dir, --with-icu-dir
configure: error: Please specify the install prefix of iconv with --with-iconv=<DIR>

最終的なコマンド

私は fish shell を使っているので、最終的に下記のようなコマンドになった。

$ env PHP_BUILD_CONFIGURE_OPTS="--with-bz2=/usr/local/opt/bzip2 --with-iconv=/usr/local/opt/libiconv"  phpenv install 7.4.0

bash であれば下記のようになると思う。

$ PHP_BUILD_CONFIGURE_OPTS="--with-bz2=/usr/local/opt/bzip2 --with-iconv=/usr/local/opt/libiconv"  phpenv install 7.4.0

下記のような感じで、問題なくインストールできていることを確認した。

$ phpenv versions
  system
  7.2.25
  7.3.9
  7.4.0
$ phpenv shell 7.4
7.4
$ php -v
PHP 7.4.0 (cli) (built: Dec 13 2019 22:17:20) ( NTS )
Copyright (c) The PHP Group
Zend Engine v3.4.0, Copyright (c) Zend Technologies
    with Zend OPcache v7.4.0, Copyright (c), by Zend Technologies
    with Xdebug v2.9.0, Copyright (c) 2002-2019, by Derick Rethans
39
27
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
39
27

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?