お知らせ

  • 利用規約を守って投稿してください。また、よくある質問および投稿の手引きも参照してください。
  • メッセージの投稿にはアカウントが必要です。未登録の方は、ユーザ登録ページからアカウントを作成することができます。

#1 2016-11-18 16:22:11

gkato
新しいメンバ
登録日: 2016-11-18

PHP7.0 curl_execでエラー"https not supported or disabled in libcurl"

apt install phpでphp環境をインストールし、httpsのサイトを設定してcurl_execを実行すると、
以下のようなエラーが出て接続できません。

"Protocol "https" not supported or disabled in libcurl"

URLの先頭をhttpに変更すると正常に通信できます。
ちょっと調査したところ、PHP7.0のcurl_execは、ubuntu内のcurlでなく、自身が内包するcurlを叩いている模様。
このcurlがhttps未サポートの状態でビルドされているのではないかと考えています。
>
> /usr/lib/php/20151012/curl.so
>
こんな感じのパスにいます。(ていうか20151012って.......)

aptではPHP7.0しか入れられない感じです。
どうにかして古いバージョンのPHPを入れればいいんだけなんですが、
PHP7.0のバグならば、修正してもらいたいと考えています。
でもどこに報告すればいいのやら。。

同様の問題に遭遇した方、おられますでしょうか?
よろしくお願いしますm(_ _)m

環境
-----
## PHP
php -v
PHP Warning:PHP Startup: Unable to load dynamic library '/usr/lib/php/20151012/php_curl.dll' - /usr/lib/php/20151012/php_curl.dll: cannot open shared object file: No such file or directory in Unknown on line 0
PHP 7.0.8-0ubuntu0.16.04.3 (cli) ( NTS )

ここもおかしい。ubuntuにインストールしているのに、Windowsのファイルを読みにいってWarningが出てる。

## Ubuntu
cat /etc/lsb-release
DISTRIB_ID=Ubuntu
DISTRIB_RELEASE=16.04
DISTRIB_CODENAME=xenial
DISTRIB_DESCRIPTION="Ubuntu 16.04.1 LTS"

オフライン

 

#2 2016-11-21 11:46:50

gkato
新しいメンバ
登録日: 2016-11-18

Re: PHP7.0 curl_execでエラー"https not supported or disabled in libcurl"

PHP5.6を入れても同じエラーが出ました。私の単純なミスである可能性が濃いです。。

オフライン

 

#3 2016-11-21 14:34:14

si
メンバ
From: hokkaido kitami, jp
登録日: 2007-01-15

Re: PHP7.0 curl_execでエラー"https not supported or disabled in libcurl"

gkato による投稿:

PHP5.6を入れても同じエラーが出ました。私の単純なミスである可能性が濃いです。。

php-curl は、入ってますか?

オフライン

 

#4 2016-11-21 16:11:36

gkato
新しいメンバ
登録日: 2016-11-18

Re: PHP7.0 curl_execでエラー"https not supported or disabled in libcurl"

ご回答ありがとうございます^^
入っているかと。

$ dpkg -l | grep curl
ii  libcurl3:amd64                     7.47.0-1ubuntu2.2                   amd64     
ii  libcurl3-gnutls:amd64              7.47.0-1ubuntu2.2                   amd64     
ii  php5.6-curl                        5.6.28-1+deb.sury.org~xenial+1      amd64     
rc  php7.0-curl                        7.0.8-0ubuntu0.16.04.3              amd64     
ii  python3-pycurl                     7.43.0-1ubuntu1                     amd64

オフライン

 

#5 2016-11-21 19:03:49

si
メンバ
From: hokkaido kitami, jp
登録日: 2007-01-15

Re: PHP7.0 curl_execでエラー"https not supported or disabled in libcurl"

gkato による投稿:

ご回答ありがとうございます^^
入っているかと。

$ dpkg -l | grep curl
ii  libcurl3:amd64                     7.47.0-1ubuntu2.2                   amd64     
ii  libcurl3-gnutls:amd64              7.47.0-1ubuntu2.2                   amd64     
ii  php5.6-curl                        5.6.28-1+deb.sury.org~xenial+1      amd64     
rc  php7.0-curl                        7.0.8-0ubuntu0.16.04.3              amd64     
ii  python3-pycurl                     7.43.0-1ubuntu1                     amd64

http で、簡単に動作確認しましたが、問題なさそうですね。
確認参照ページ: http://qiita.com/wanwanland/items/a5f9574fadd214d7b5c8

https で検索すると、下記ページヒットしました。
参照ページ:
http://qiita.com/kino0104/items/8a6a6dc2404c27bc43ea
http://qiita.com/machio77777/items/48bcbe8ac58385a44799

オフライン

 

#6 2016-11-22 10:33:10

gkato
新しいメンバ
登録日: 2016-11-18

Re: PHP7.0 curl_execでエラー"https not supported or disabled in libcurl"

情報ありがとうございます^^ なんだか申し訳ない....
簡単なテストコードを書いてみました。
 

コード:

$url = "http://httpbin.org/ip";
$ch = curl_init($url);
curl_exec($ch);
var_dump(curl_error($ch));

私の環境では、これを実行したとき、正常レスポンスが返ります。

コード:

{
  "origin": "210.224.35.221"
}
string(0) ""

$urlを"https://httpbin.org/ip"とすると、エラーとなります。

コード:

string(53) "Protocol "https" not supported or disabled in libcurl"

PHPのcurl_xxx系メソッドは下のようなパスにインストールされるsoを実行してます。

コード:

/usr/lib/php/20131226/curl.so

私はこのsoファイルが、https未サポート設定でビルドでされてるんじゃないかと推測してます。
ただこの仮説が正しいなら、
aptでphp-curlを取得してるubuntuユーザ全員がcurl_execでhttpsができないということになるので、
もっと大騒ぎになってないとおかしいんですよね。。

curl_setoptの設定が必要なのかも。
めんどくさいので、rubyで書き直してしまいました(* *) すいません。。。

オフライン

 

Board footer

Powered by FluxBB