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」とかで出てくる参考記事を見ていると、
他の方があげている記事のほとんどが、エラーだのライブラリが足りないだの、
けっこう手こずっていらっしゃる。例によってわたしもエラーになった。(爆)
かたや、「macos mojave php バージョン アップデート」でぐぐってみると、
なんか・・こっちのほうがシンプルにいきそうじゃない?
どうせエラーと戦うことになるならば、
phpenv経由で頑張って入れるより、brew経由のほうが楽そう
と思い、後者を選択。(皆さんの知見にいつも感謝しています)
結論:Homebrewでシステムのphpごとあげよう
基本は下記の方の記事をまるっと参考にしました。
@7.4のほうが新しいですが、とりあえず同じように@7.3でやってみました。
homebrewは入っていたので
$ brew search php@7
と叩くと、インストールできる一覧がでます。
7.3をインストールします。
$ brew install [email protected]
わたしの場合はインストールにあたってはエラーは出なかったのですが、(もしかしたら、最初に試したphpenvのエラー解消のためのbrew
コマンドがうまいこと作用したのかもしれない)
参考サイトのような
If you need to have [email protected] first in your PATH run:
echo 'export PATH="/usr/local/opt/[email protected]/bin:$PATH"' >> ~/.bash_profile
echo 'export PATH="/usr/local/opt/[email protected]/sbin:$PATH"' >> ~/.bash_profile
という指示も出なかったです。が、
$ echo 'export PATH="/usr/local/opt/[email protected]/bin:$PATH"' >> ~/.bash_profile
$ echo 'export PATH="/usr/local/opt/[email protected]/sbin:$PATH"' >> ~/.bash_profile
$ brew services start php
とやると、
Error: Formula `php` is not installed.
と怒られたので、
$ brew services start [email protected]
ってしてあげたら、いけました。
ターミナル再起動後、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を再インストールしたほうがいいんじゃないか、
と半ば諦めつつも、下記の記事を発見。
brew upgrade
かけたら、mysqlのマイナーアップデートが走り〜・・・
終了後、ためしにmysql.server start
たたいたら、通った。神か!
というわけで私の場合、
1.0.0系を意図的にインストールはしなかったけど、無事起動するようになりました。
upgradeで内部のリンクをよしなに処理してくれたのだろうか。。
以上、私的メモでした。
Author And Source
この問題について(macOS mojave(10.14.6)のphpを7.3にアップデート(mysql opensslエラーのおまけつき)), 我々は、より多くの情報をここで見つけました https://qiita.com/mksm_wrk/items/7bcbdcc015d3a26ac3c0著者帰属:元の著者の情報は、元のURLに含まれています。著作権は原作者に属する。
Content is automatically searched and collected through network algorithms . If there is a violation . Please contact us . We will adjust (correct author information ,or delete content ) as soon as possible .