Twilio Laravel 「未定義の定数 CURLOPT_URL の使用 - CurlClient.php の 111 行目で 'CURLOPT_URL' と想定されました」

Twilio Laravel 「未定義の定数 CURLOPT_URL の使用 - CurlClient.php の 111 行目で 'CURLOPT_URL' と想定されました」

デバッグの提案やヘルプを探しています。PHP モジュールやパッケージのインストールにはあま​​り詳しくなく、curl/curl 拡張機能についてもまったく詳しくありません。curl にインストールされている拡張機能を識別する方法はありますか? これが問題であり、非互換性ではないと仮定しています。ヘルプやアドバイスをいただければ幸いです。

私は Twilio Laravel パッケージ twilio/sdk (5.12) を使用しており、通話の詳細を取得するクライアントを作成しようとしています (Programmable Voice サービスのみ)。私の Twilio アカウント情報はクライアントを作成するために渡されています (ドキュメントに記載されているとおり) が、次のメッセージが表示されて失敗します。

(1/1) ErrorException
Use of undefined constant CURLOPT_URL - assumed 'CURLOPT_URL'
in CurlClient.php line 111

関連するシステム/パッケージ バージョンを少し変更するだけで、自分のマシン (MacOS) 上にクライアントを作成できます。

Twilioのサポートに連絡したところ、

お使いのマシンにインストールされている curl のバージョンに適した curl 拡張機能がない

彼らはこのリンクを提供しましたが、指示に従っても問題は解決しませんでした:SMS-Twilio-API エラーApache を再起動したり、Laravel config:cache をクリアしたりした後でも、まったく同じエラーが発生します。

curlまたはphp-curlを再インストールまたはアップグレードしようとすると、サーバーから次のようなメッセージが表示されます。

curl is already the newest version (7.47.0-1ubuntu2.13).

サーバ:

  • curl 7.47.0 (x86_64-pc-linux-gnu)
  • cURL サポート => 有効
  • PHP 7.2.21-1+ubuntu16.04.1+deb.sury.org+1
  • ララベル5.7

地元:

  • カール 7.54.0 (x86_64-apple-darwin17.0)
  • cURL サポート => 有効
  • PHP 7.1.21
  • ララベル5.7

答え1

問題は、 で PHP のバージョンを確認するとphp-v、最新バージョンが表示されていればすべて更新されていると想定してしまうことです。

その後、cURL をインストールしてapt-get install php-curl最新バージョンがインストールされると、cURL 天国に一歩近づき、すべてがうまくいくと想定されます。

本当に必要なのは、Apache インスタンスで最新バージョンの PHP のみが有効になっていて、ロードされているかどうかを確認することです。私の場合、すべてが更新されているにもかかわらず、Apache は 7.2 ではなく PHP7.1 をロードしていました。これはあり得ないことですが、仕方ありません ¯\_(ツ)_/¯

  1. apachectl -M
  2. php7_moduleリストされているか確認する
  3. sudo a2dismod php7.1

  4. apachectl -Mphp7_moduleリストから消えたかどうかを確認する
  5. sudo a2enmod php7.2

  6. 読み込まれているかどうかを確認するapachectl -M
  7. sudo systemctl restart apache2

ステップ 3 で、php バージョンを自由に変更してください。php7.0、php7.2 などを試してみてください。最新バージョンを有効にする前に、すべてを無効にしてください。

関連情報