41
Help us understand the problem. What are the problem?

More than 5 years have passed since last update.

posted at

updated at

ComposerからLaravelを導入しようとしてOpenSSL周りのエラーで困った件

Composer経由でLaravelをインストールしようとして、Composerをcurlから取得する時に結構厄介なエラーに遭遇しましたので、対処法をシェアします。

自分はLaravelのインストール目的でしたが、Composerインストール時一般に使えるTIPSかと思います。

Download failed: file_get_contents(): SSL operation failed with code 1. OpenSSL Error messages:
error:14090086:SSL routines:SSL3_GET_SERVER_CERTIFICATE:certificate verify failed
file_get_contents(): Failed to enable crypto
file_get_contents(https://getcomposer.org/composer.phar): failed to open stream: operation failed

いろいろ調べて行き着いたのがComposerのissuesです。結構長いスレッドですが…。
Install fails because of getcomposer.org certificate verify failed · Issue #2798 · composer/composer · GitHub

結論から行きましょう。

OpenSSL(正確にはcurl)で使用するCAをダウンロード

wget http://curl.haxx.se/ca/cacert.pem
cp -v -f cacert.pem /full/path/to/certs/ca-bundle-curl.crt

php.ini から認識できるように設定

curl.cainfo=/full/path/to/ssl/certs/ca-bundle-curl.crt
openssl.cafile=/full/path/to/ssl/certs/ca-bundle-curl.crt

この設定をした状態でComposerを導入すればエラーは出ません。
解決するまで結構面倒でした…。

このcrtファイルはcurlのエラーを回避するためのものですので、本来のca-bundle.crtを上書きしないように注意して下さい。

参考までにFreeBSDをお使いの方は、pkgコマンド経由でphp-composerを導入するのが楽かと思います。

sudo pkg install php-composer

Why not register and get more from Qiita?
  1. We will deliver articles that match you
    By following users and tags, you can catch up information on technical fields that you are interested in as a whole
  2. you can read useful information later efficiently
    By "stocking" the articles you like, you can search right away
Sign upLogin
41
Help us understand the problem. What are the problem?