佐藤洋介のログ

だいたいすぐに忘れるからここに書き残す

MacにてLaravelをComposerからプロジェクト作成するとOpenSSLエラーが発生する

久しぶりにLaravelをMacのComposerからプロジェクト作成しようとしたところ、以下のメッセージが表示されました。

Failed to download laravel/laravel from dist: The "https://api.github.com/repos/laravel/laravel/zipball/xxx" file could not be downloaded: SSL operation failed with code 1. OpenSSL Error messages:
error:1407742E:SSL routines:SSL23_GET_SERVER_HELLO:tlsv1 alert protocol version
Failed to enable crypto
failed to open stream: operation failed
    Now trying to download from source

OpenSSLのエラーでリポジトリからデータを取得出来なかったみたいです。 調べてみると、古いOpenSSLのままだとNGのようです。

PHPのバージョンを確認してみる。

$ php -v
PHP 5.6.10 (cli) (built: xxx) 

ふっる。

続けてOpenSSLの情報を確認してみる。

$ php -i | grep OpenSSL
SSL Version => OpenSSL/0.9.8zd
OpenSSL support => enabled
OpenSSL Library Version => OpenSSL 0.9.8zh 14 Jan 2016
OpenSSL Header Version => OpenSSL 0.9.8y 5 Feb 2013
Openssl default config => /System/Library/OpenSSL/openssl.cnf
Native OpenSSL support => enabled

OpenSSL 0.9.8は2015年までで、これが問題らしく、差し替える必要があるようです。 ついでにPHPも最新版にします。

brewを使用してPHP7.2をインストールする。

$ brew install php@7.2

.bash_profileへPATHを追加する。

export PATH="/usr/local/opt/php@7.2/bin:$PATH"
export PATH="/usr/local/opt/php@7.2/sbin:$PATH"

PHPのバージョンを確認する。

$ php -v
PHP 7.2.7 (cli) (built: xxx) ( NTS )

OpenSSLのバージョンを確認する。

$ php -i | grep OpenSSL
OpenSSL support => enabled
OpenSSL Library Version => OpenSSL 1.0.2o  27 Mar 2018
OpenSSL Header Version => OpenSSL 1.0.2o  27 Mar 2018
OpenSSL support => enabled

これでLaravelプロジェクトを作成できるようになりました。