peclでのインストール失敗への対応

Ubuntu 18.04でpeclでパッケージをインストールしようとしたら,エラーがでて困ってしまった。

pecl install xdebug

最初に表示されたのがこちらのエラー。

WARNING: channel "pecl.php.net" has updated its protocols, use "pecl channel-
update pecl.php.net" to update
Could not download from "https://pecl.php.net/get/xdebug-2.9.2.tgz", cannot d
ownload "pecl/xdebug" (Connection to `ssl://pecl.php.net:443' failed: )
Error: cannot download "pecl/xdebug"
Download failed
install failed

なにやら,プロトコルが更新されたとのことで,以下のコマンドを実行するように書いてあるので指示通りに実行してみる。

pecl channel-update pecl.php.net
Updating channel "pecl.php.net"
Update of Channel "pecl.php.net" succeeded

このchannel-updateはうまくいったようだ。この後に最初の以下のコマンドを実行し直した。

pecl install xdebug
No releases available for package "pecl.php.net/xdebug"
install failed

別の理由でだめだった。これだけだと情報が足りないので,-vオプションで情報を増やしてみる。

pecl -v install xdebug
No releases available for package "pecl.php.net/xdebug"
Cannot initialize 'channel://pecl.php.net/xdebug', invalid or missing package file
Package "channel://pecl.php.net/xdebug" is not valid
install failed

その他,以下のエラーも表示されることがあった。

Could not download from "https://pecl.php.net/get/xdebug-2.9.2.tgz", cannot download "pecl/xdebug" (Connection to `ssl://pecl.php.net:443' failed: )
Error: cannot download "pecl/xdebug"
Download failed
install failed

エラー内容で調べたところ,こちらの「macos – pecl install always failed “unable to connect to ssl://pecl.php.net:443 (Unknown error) in Proxy.php on line 183” – Stack Overflow」のコメントの内容で解決できた。

php.iniに以下を追加した。

openssl.cafile = /etc/ssl/certs/ca-certificates.crt

どうやらHTTPSのSSL通信に必要な証明書が必要らしい。Ubuntuでは標準的な証明書が/etc/ssl/certs/ca-certificates.crtに格納されているようで,これを指定すると解決した。

自前でビルドしたOpenSSLを使っているため,このあたりの証明書の設定がもしかしたら抜けてしまったのかもしれない。

はっきりしたことがわからず,少々もやもやするが,一旦解決したのでこれでよしとする。

コメントを残す

メールアドレスが公開されることはありません。 * が付いている欄は必須項目です