PHP 7.3.9 をMACに入れる



ある案件に参加するので、開発環境を整えました。
php環境だったので、

```
$ composer install
$ phpenv: version `7.3.9' is not installed
$ phpenv: version `7.3.9' is not installed
```

と早速やってみたが、「phpenv: version `7.3.9' is not installed」と怒られたので、


```
$ phpenv install 7.3.9
$ [Error]: Definition 7.3.9 not found.
```

がーん。7.3.9がない！！

```
phpenv install -l
Available versions:
...
  7.3.6
  7.3.7
  7.3.8
  7.3snapshot
  7.4snapshot
  master
```

インストール可能な一覧にも出てこない！
えーーー。と思いながら、anyenvをアップデートしてみる。

```
$ anyenv update
Skipping 'anyenv'; not git repo
Updating 'anyenv/anyenv-update'...
Updating 'nodenv'...
 |  From https://github.com/nodenv/nodenv
 |  83b7614..631d0b6  master     -> origin/master
 |  * [new branch]      depfu/update/npm/bats-1.2.1 -> origin/depfu/update/npm/bats-1.2.1
 |  * [new tag]         v1.3.1     -> v1.3.1
 |  * [new tag]         v1.3.2     -> v1.3.2
 |  * [new tag]         v1.4.0     -> v1.4.0
Updating 'nodenv/node-build'...
 |  From https://github.com/nodenv/node-build
 |  80400640..c097b5be  master          -> origin/master
 |  * [new branch]        bot-sign        -> origin/bot-sign
 |  * [new branch]        depfu/update/npm/bats-1.2.1 -> origin/depfu/update/npm/bats-1.2.1
 |  * [new branch]        lowjs           -> origin/lowjs
 |  * [new branch]        quickjs         -> origin/quickjs
 |  * [new branch]        scrape-workflow -> origin/scrape-workflow
 |  * [new tag]           v4.9.11         -> v4.9.11
 |  * [new tag]           v4.6.3          -> v4.6.3
 |  * [new tag]           v4.6.4          -> v4.6.4
 |  * [new tag]           v4.6.5          -> v4.6.5
 |  * [new tag]           v4.6.6          -> v4.6.6
 |  * [new tag]           v4.6.7          -> v4.6.7
 |  * [new tag]           v4.6.8          -> v4.6.8
 |  * [new tag]           v4.6.9          -> v4.6.9
 |  * [new tag]           v4.7.0          -> v4.7.0
 |  * [new tag]           v4.7.1          -> v4.7.1
 |  * [new tag]           v4.7.2          -> v4.7.2
 |  * [new tag]           v4.8.0          -> v4.8.0
 |  * [new tag]           v4.8.1          -> v4.8.1
 |  * [new tag]           v4.8.2          -> v4.8.2
 |  * [new tag]           v4.8.3          -> v4.8.3
 |  * [new tag]           v4.9.0          -> v4.9.0
 |  * [new tag]           v4.9.1          -> v4.9.1
 |  * [new tag]           v4.9.10         -> v4.9.10
 |  * [new tag]           v4.9.2          -> v4.9.2
 |  * [new tag]           v4.9.3          -> v4.9.3
 |  * [new tag]           v4.9.4          -> v4.9.4
 |  * [new tag]           v4.9.5          -> v4.9.5
 |  * [new tag]           v4.9.6          -> v4.9.6
 |  * [new tag]           v4.9.7          -> v4.9.7
 |  * [new tag]           v4.9.8          -> v4.9.8
 |  * [new tag]           v4.9.9          -> v4.9.9
Updating 'nodenv/nodenv-default-packages'...
 |  From https://github.com/nodenv/nodenv-default-packages
 |  ee042af..9aa2cdf  master     -> origin/master
 |  * [new branch]      depfu/update/npm/bats-1.2.1 -> origin/depfu/update/npm/bats-1.2.1
 |  * [new tag]         v0.3.0     -> v0.3.0
 |  * [new tag]         v1.0.0     -> v1.0.0
Updating 'nodenv/nodenv-vars'...
Updating 'nodenv/nodenv-yarn-install'...
Updating 'phpenv'...
Updating 'phpenv/php-build'...
 |  error: Your local changes to the following files would be overwritten by merge:
 |  share/php-build/default_configure_options
 |  Please commit your changes or stash them before you merge.
 |  Aborting
 |  Failed to update. Use 'verbose' option for detailed, or 'force' option.
Updating 'phpenv/phpenv-composer'...
Updating 'anyenv manifest directory'...
 |  From https://github.com/anyenv/anyenv-install
 |  dcbcfe1..d9791df  master     -> origin/master
```

またエラー。

```
Updating 'phpenv/php-build'...
 |  error: Your local changes to the following files would be overwritten by merge:
 |  share/php-build/default_configure_options
 |  Please commit your changes or stash them before you merge.
 |  Aborting
 |  Failed to update. Use 'verbose' option for detailed, or 'force' option.
Updating 'phpenv/phpenv-composer'...
```

php-buildの設定ファイルにdiffがあるんだって・・・。
うまくマージしてよと思いながらも、


```
$ cd ~/.anyenv/envs/phpenv/plugins/php-build/share/php-build
$ git stash
$ cd bin
$ ./php-build update
```

無事、アップデートできた！

```
$ phpenv install -l
  ...
  7.3.9
  7.3snapshot
  7.4.0
  ...
```

「７．３．９」がある！！
じゃあ、揚々と、

```
$ phpenv install 7.3.9

-----------------------------------------
  "_X509_getm_notAfter", referenced from:
      _zif_openssl_x509_parse in openssl.o
      _zif_openssl_csr_sign in openssl.o
  "_X509_getm_notBefore", referenced from:
      _zif_openssl_x509_parse in openssl.o
      _zif_openssl_csr_sign in openssl.o
ld: symbol(s) not found for architecture x86_64
clang: error: linker command failed with exit code 1 (use -v to see invocation)
make: *** [libs/libphp7.bundle] Error 1
make: *** Waiting for unfinished jobs....
-----------------------------------------

The full Log is available at '/tmp/php-build.7.3.9.20201009170543.log'.
```
エラー・・・。opensslのx86_64のライブラリが無いせいでリンクエラーになっているっぽい。
セットアップのエラーループ泣きたくなる。。。

困ったなーと思いながら、とりあえずアップデート

```
$brew upgrade openssl
```

10分くらいで完了！
ながい！！

再度、phpenv install 7.3.9 をしてみる

```
$ phpenv install 7.3.9
[Info]: Loaded extension plugin
[Info]: Loaded apc Plugin.
[Info]: Loaded composer Plugin.
[Info]: Loaded github Plugin.
[Info]: Loaded uprofiler Plugin.
[Info]: Loaded xdebug Plugin.
[Info]: Loaded xhprof Plugin.
[Info]: Loaded zendopcache Plugin.
[Info]: php.ini-production gets used as php.ini
[Info]: Building 7.3.9 into /Users/echi/.anyenv/envs/phpenv/versions/7.3.9
[Skipping]: Already downloaded and extracted https://secure.php.net/distributions/php-7.3.9.tar.bz2
[Preparing]: /var/tmp/php-build/source/7.3.9
[Compiling]: /var/tmp/php-build/source/7.3.9
[xdebug]: Installing version 2.9.8
[Downloading]: http://xdebug.org/files/xdebug-2.9.8.tgz
[xdebug]: Compiling xdebug in /var/tmp/php-build/source/xdebug-2.9.8
[xdebug]: Installing xdebug configuration in /Users/echi/.anyenv/envs/phpenv/versions/7.3.9/etc/conf.d/xdebug.ini
[xdebug]: Cleaning up.
[Info]: Enabling Opcache...
[Info]: Done
[Info]: The Log File is not empty, but the Build did not fail. Maybe just warnings got logged. You can review the log in /tmp/php-build.7.3.9.20201009172959.log or rebuild with '--verbose' option
[Success]: Built 7.3.9 successfully.
Download composer.phar ...
Move composer.phar to /Users/echi/.anyenv/envs/phpenv/versions/7.3.9/composer
```

できたーーーー！！
ただ、opensslあげたので、なんとなく何かがうごかくなったかもなー。と、ドキドキ。