(-> % read write unlearn)

My writings on this area are my own delusion

phpbrew install 7.3.12 on MacOS

phpbrew で Mac に PHP7.3 をインストールしたかっただけ。

phpbrew install 7.3.12したら以下エラーが出た。

configure: error: OpenSSL version 1.0.1 or greater required.

どうも brew で入れた新しい openssl を参照してくれないらしいので、参照させるように +openssl=$(brew --prefix openssl) を足してやる。そうして phpbrew install 7.3.12 +openssl=$(brew --prefix openssl) としたら以下エラーが出た。

ld: file not found: /usr/lib/system/libsystem_darwin.dylib for architecture x86_64

clang: error: linker command failed with exit code 1 (use -v to see invocation)

make: *** [ext/opcache/opcache.la] Error 1

これも ld をちゃんと参照してくれるように環境変数でフラグをするように LDFLAGS="-L/Library/Developer/CommandLineTools/SDKs/MacOSX.sdk/usr/lib/system" を足してやる。

最終的にこれでビルドできた。

LDFLAGS="-L/Library/Developer/CommandLineTools/SDKs/MacOSX.sdk/usr/lib/system" phpbrew install 7.3.12 +openssl=$(brew --prefix openssl)

phpbrew はビルドに成功するとプロンプトに Enjoy! って出てくるよ。

これで OK かと思ったら composer require bref/bref したときにこける

$ phpbrew use 7.3.12

$ composer require bref/bref
PHP Fatal error:  Uncaught Error: Call to undefined function Composer\Json\json_decode() in phar:///usr/local/Cellar/composer/1.9.1/bin/composer/src/Composer/Json/JsonFile.php:156
Stack trace:
(省略)

どうも json と ctype の extension をインストールし忘れているらしい。

$ phpbrew list
# WARNING: ctype extension might be required for parsing yaml file.
* php-7.3.12
  php-7.2.25

追加でインストールするために phpbrew ext install json ctype したら Warningは出なくなった。けど composer require bref/bref は相変わらずこける。

$ composer require bref/bref
PHP Fatal error:  Uncaught Error: Call to undefined function JsonSchema\Uri\filter_var() in phar:///usr/local/Cellar/composer/1.9.1/bin/composer/vendor/justinrainbow/json-schema/src/JsonSchema/Uri/UriResolver.php:82
Stack trace:
(省略)

ひたすら、モジュールを追加していく・・・。最終的にこれだけ入っていれば composer require bref/bref は通った。

phpbrew ext install json ctype filter hash curl

たぶん、最初に 7.3.12 をインストールするときにまとめて指定するオプションあるんだろうけど。最終的に以下のような状態。もっと入れといたほうが良い気がするけど、とりあえず事足りた。

$ phpbrew ext
Loaded extensions:
 [*] ctype        7.3.12
 [*] curl         7.3.12
 [*] date         7.3.12
 [*] dom          20031129
 [*] filter       7.3.12
 [*] hash         7.3.12
 [*] json         1.7.0
 [*] libxml       7.3.12
 [*] openssl      7.3.12
 [*] pcre         7.3.12
 [*] phar         7.3.12
 [*] reflection   7.3.12
 [*] session      7.3.12
 [*] simplexml    7.3.12
 [*] spl          7.3.12
 [*] standard     7.3.12
 [*] tokenizer    7.3.12
 [*] xml          7.3.12
 [*] xmlreader    7.3.12
 [*] xmlwriter    7.3.12
 [*] xsl          7.3.12
 [*] zlib         7.3.12
Available local extensions:
 [ ] bcmath
 [ ] bz2
 [ ] calendar
 [ ] dba
 [ ] enchant
 [ ] exif
 [ ] fileinfo
 [ ] ftp
 [ ] gd
 [ ] gettext
 [ ] gmp
 [ ] iconv
 [ ] imap
 [ ] interbase
 [ ] intl
 [ ] ldap
 [ ] mbstring
 [ ] mysqli
 [ ] mysqlnd
 [ ] oci8
 [ ] odbc
 [ ] opcache
 [ ] pcntl
 [ ] pdo
 [ ] pdo_dblib
 [ ] pdo_firebird
 [ ] pdo_mysql
 [ ] pdo_oci
 [ ] pdo_odbc
 [ ] pdo_pgsql
 [ ] pdo_sqlite
 [ ] pgsql
 [ ] posix
 [ ] pspell
 [ ] readline
 [ ] recode
 [ ] shmop
 [ ] snmp
 [ ] soap
 [ ] sockets
 [ ] sodium
 [ ] sqlite3
 [ ] sysvmsg
 [ ] sysvsem
 [ ] sysvshm
 [ ] tidy
 [ ] wddx
 [ ] xmlrpc
 [ ] zend_test
 [ ] zip