0
0

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 mojave(10.14.6)のphpを7.3にアップデート(mysql opensslエラーのおまけつき)

Last updated at Posted at 2020-08-05

背景

新規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」とかで出てくる参考記事を見ていると、
他の方があげている記事のほとんどが、エラーだのライブラリが足りないだの、
けっこう手こずっていらっしゃる。例によってわたしもエラーになった。(爆)

かたや、「macos mojave php バージョン アップデート」でぐぐってみると、
なんか・・こっちのほうがシンプルにいきそうじゃない?

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

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

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

macOS Mojaveで最新のPHP(7.3)にVersion upする

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を入れてあげねば〜と思い、
たどり着いたアーカイブからインストール試みたのですが、
makeコマンド失敗するし、そもそもサポート外のものを入れるために頑張るこの感じ・・
逆にmysqlを再インストールしたほうがいいんじゃないか、
と半ば諦めつつも、下記の記事を発見。

opensslの読み込み不具合でMySQLが起動しない時の対処【Homebrew】

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

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

以上、私的メモでした。

0
0
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
0
0

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?