Qiita Teams that are logged in
You are not logged in to any team

Log in to Qiita Team
Community
OrganizationAdvent CalendarQiitadon (β)
Service
Qiita JobsQiita ZineQiita Blog
41
Help us understand the problem. What is going on with this article?
@dora_kou

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

More than 5 years have passed since last update.

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

41
Help us understand the problem. What is going on with this article?
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

Comments

No comments
Sign up for free and join this conversation.
Sign Up
If you already have a Qiita account Login
41
Help us understand the problem. What is going on with this article?