海が好き

アウトプットが大事ってよく聞くから書く

phpbrewでphp7.2をインストールしようとしたらめんどくさかった話

やりたいこと

phpbrewを使ってphp 7.2をローカルにインストール

ハマったこと

laravelのソースを落とすのにphpのバージョンを上げる必要があったのでphpbrewとかいうのを使ってバージョンあげようとした時の話。 phpbrew install 7.2を叩いてinstallできないときの話です 。

環境

ソフト バージョン
OS Mac El Capitan 10.11.6
homebrew Homebrew 1.8.1-28-g240aa0a
phpbrew phpbrew 1.23.1

やったこと

下記コマンドを叩いてphpの7.2をローカルに入れようとしたけどエラー。 萎え。

phpbrew install 7.2

phpbrew installしているときに下記コマンドでインストール中のlogが見れるので見てみる。

tail -F /Users/hogehoge/.phpbrew/build/php-7.2.16/build.log

下記のような感じでOpenSSLのバージョンが満たしていないからエラーになっている

checking for pkg-config... /usr/local/bin/pkg-config

configure: error: OpenSSL version 1.0.1 or greater required.

OpenSSLのバージョンを調べてみる。 マジで満たしてなかった。

openssl version

OpenSSL 0.9.8zh 14 Jan 2016

opensslをupgradeしてみる。 既にはいってるっぽい。

brew upgrade openssl

penssl 1.0.2p already installed

opensslのパス確認するとmacデフォルトのパスのまま。 http://blog.yukarien.com/tech/openssl-versionup/

which openssl

/usr/bin/openssl

macデフォルトのopensslではなく、brewで入れたopensslを参照するようにシンボリックリンクを貼ろうとするがだめらしい。

brew link openssl --force

Refusing to link: openssl

opensslへのリンクは貼れなくなったらしい。 しょうがないから愚直にパスを通してみる。 https://qiita.com/dasisyouyu/items/c9621c29b0fe79d2b7c4 https://qiita.com/smith_30/items/a275f30b040c1ea74520

echo 'export PATH="/usr/local/opt/openssl/bin:$PATH"' >> ~/.zshrc

source ~/.zshrc

バージョンとパスを確認して問題なし!! キタコレ完全勝利!!

which openssl

/usr/local/opt/openssl/bin/openssl

openssl version

OpenSSL 1.0.2p  14 Aug 2018

でも、phpbrew installしようとすると同じエラーが出る。 萎え。 php-buildとかいうのがbrewでインストールしたopensslを参照してくれないらしい。 https://qiita.com/namaozi/items/8ef161afee284728cf0a

もうめんどくさいので一番簡単そうな方法で試す https://qiita.com/Bonz2go/items/1b47a3eabb633467ddf0

phpbrew install 7.2 +openssl=$(brew --prefix openssl)

phpのバージョン確認したらうまくいってた。

php -v

PHP 7.2.11 (cli) (built: Nov  4 2018 21:42:13) ( NTS )
Copyright (c) 1997-2018 The PHP Group
Zend Engine v3.2.0, Copyright (c) 1998-2018 Zend Technologies

やっとおわった・・・ 普通dockerでlaravelの環境作る際にどうやってlaravelのソース落としてくるんだろうか