
デバッグの提案やヘルプを探しています。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 をロードしていました。これはあり得ないことですが、仕方ありません ¯\_(ツ)_/¯
apachectl -M
php7_module
リストされているか確認するsudo a2dismod php7.1
apachectl -M
php7_module
リストから消えたかどうかを確認するsudo a2enmod php7.2
- 読み込まれているかどうかを確認する
apachectl -M
sudo systemctl restart apache2
ステップ 3 で、php バージョンを自由に変更してください。php7.0、php7.2 などを試してみてください。最新バージョンを有効にする前に、すべてを無効にしてください。