macOS mojave（10.14.6）のphpを7.3にアップデート（mysql opensslエラーのおまけつき）

## 背景
新規PJ（php）のローカル環境構築にあたり、
`php spark serve`というコマンド使ってね、と伝達うけて、
早速起動してみたところ、**php7.2以上**が必要とのエラーが。

`php -v`たたいてみると、
私のmacは、OS mojaveのデフォルトの7.1系だったので、
上位版を入れることにしました。


## ボツ案：そうだ、phpenvで切り替えよう

普段nodeのバージョン切り替えにanyenv内のnodenv利用しているのですが、
anyenvにphpのバージョン切り替えられるのって入ってなかったっけ・・
って思ったら、あるじゃない、phpenvというものが。

phpのご本家で確認すると、最新のstable版は7.4.8とのことで、
`anyenv install phpenv`して、`phpenv install 7.4.8`
で楽勝じゃん！とか思ったのだが、

そもそも、「[phpenv anyenv 7.4](https://www.google.com/search?q=phpenv+anyenv+7.4&rlz=1C5CHFA_enJP857JP857&oq=phpenv+anyenv+7.4&aqs=chrome..69i57j0l2j69i61.854j0j9&sourceid=chrome&ie=UTF-8)」とかで出てくる参考記事を見ていると、
他の方があげている記事のほとんどが、**エラー**だの**ライブラリが足りない**だの、
けっこう手こずっていらっしゃる。**例によってわたしもエラーになった。**（爆）

かたや、「[macos mojave php　バージョン　アップデート](https://www.google.com/search?rlz=1C5CHFA_enJP857JP857&sxsrf=ALeKk02KZ-MzvGppkNAnd2-1JG-mAN-rrQ%3A1596623667855&ei=M4sqX__vM5TmwQPYtZ_YBA&q=macos+mojave+php+%E3%83%90%E3%83%BC%E3%82%B8%E3%83%A7%E3%83%B3+%E3%82%A2%E3%83%83%E3%83%97%E3%83%87%E3%83%BC%E3%83%88&oq=macos+mojave+php+%E3%83%90%E3%83%BC%E3%82%B8%E3%83%A7%E3%83%B3+%E3%82%A2%E3%83%83%E3%83%97&gs_lcp=CgZwc3ktYWIQARgAMgQIIRAVULwiWLwiYMkqaABwAHgAgAG4AYgBvAKSAQMwLjKYAQCgAQGqAQdnd3Mtd2l6wAEB&sclient=psy-ab)」でぐぐってみると、
なんか・・こっちのほうがシンプルにいきそうじゃない？

どうせエラーと戦うことになるならば、
phpenv経由で頑張って入れるより、brew経由のほうが楽そう
と思い、後者を選択。（皆さんの知見にいつも感謝しています）

## 結論：Homebrewでシステムのphpごとあげよう

基本は下記の方の記事をまるっと参考にしました。
@7.4のほうが新しいですが、とりあえず同じように@7.3でやってみました。

>[macOS Mojaveで最新のPHP(7.3)にVersion upする](https://qiita.com/ProjectEuropa/items/6e4c5362a39caf8ce923)

homebrewは入っていたので

```
$ brew search php@7
```
と叩くと、インストールできる一覧がでます。

```
php@7.2                    php@7.3 　                 php@7.4
```
7.3をインストールします。

```
$ brew install php@7.3
```
わたしの場合はインストールにあたってはエラーは出なかったのですが、（もしかしたら、最初に試したphpenvのエラー解消のための`brew`コマンドがうまいこと作用したのかもしれない）
参考サイトのような

```
If you need to have php@7.3 first in your PATH run:
  echo 'export PATH="/usr/local/opt/php@7.3/bin:$PATH"' >> ~/.bash_profile
  echo 'export PATH="/usr/local/opt/php@7.3/sbin:$PATH"' >> ~/.bash_profile
```
という指示も出なかったです。が、

```
$ echo 'export PATH="/usr/local/opt/php@7.3/bin:$PATH"' >> ~/.bash_profile
$ echo 'export PATH="/usr/local/opt/php@7.3/sbin:$PATH"' >> ~/.bash_profile
```

```
$ brew services start php
```
とやると、

```
Error: Formula `php` is not installed.
```
と怒られたので、

```
$ brew services start php@7.3
```
ってしてあげたら、いけました。
ターミナル再起動後、`php -v`たたくと、PHP 7.3.20に〜🙌

無事に新規PJの`php spark serve`も通って、万事ハッピーに思えたのです。が。


## mysqlでopensslのエラーが発生

さて、別PJ（rails）で、`mysql.server start`たたいたところ、
opensslのlibsslが無いよ―っていうエラーで起動しない。

こちら、今回のphpのバージョンアップが直接的な影響かは定かではないですが、
以前も一度brew経由でライブラリ入れたあとになったことがあったので、
またか〜って感じでした。

>https://qiita.com/hirotech/items/d16988b79f7673fa2d31
https://qiita.com/yamazaki8934/items/48e65850873f3ecbee26

わたしの場合、1.0.2sがほしいよ―って怒られていて、
上記の参考記事の方たちは古いバージョンに切り替えて解決しているのですが、
私の場合、以前brew経由でopensslをインストールしなおした際に、
最新の1.1系のみになってしまったのですよね。
（今はbrew経由だと1.0系はサポート終了してて出てこない）

あ〜1.0.2sを入れてあげねば〜と思い、
たどり着いた[アーカイブ](https://www.openssl.org/source/old/1.0.2/)からインストール試みたのですが、
`make`コマンド失敗するし、そもそもサポート外のものを入れるために頑張るこの感じ・・
逆にmysqlを再インストールしたほうがいいんじゃないか、
と半ば諦めつつも、下記の記事を発見。

> [opensslの読み込み不具合でMySQLが起動しない時の対処【Homebrew】](https://qiita.com/ninose14/items/24cf6f8464647e396cc9)

`brew upgrade`かけたら、mysqlのマイナーアップデートが走り〜・・・
終了後、ためしに`mysql.server start`たたいたら、通った。神か！

というわけで私の場合、
1.0.0系を意図的にインストールはしなかったけど、無事起動するようになりました。
upgradeで内部のリンクをよしなに処理してくれたのだろうか。。

以上、私的メモでした。