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),并尝试创建一个客户端来检索呼叫详细信息(仅限可编程语音服务)。我的 Twilio 帐户信息正在传递以创建客户端(与文档中所述完全一致),但失败并显示以下消息:

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

我可以在我的计算机(MacOS)上创建一个客户端,只需对相关系统/包版本进行一些改动即可。

我联系了 Twilio 支持人员,他们建议我

您的计算机上的 curl 版本缺少正确的 curl 扩展

他们提供了此链接,但说明并未解决问题:短信-twilio-api-错误。即使重新启动 apache、清除 Laravel 配置:缓存等之后,我仍然遇到完全相同的错误。

当我尝试重新安装或升级 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
  • Laravel 5.7

当地的:

  • curl 7.54.0(x86_64-苹果-darwin17.0)
  • cURL 支持 => 已启用
  • PHP 7.1.21
  • Laravel 5.7

答案1

问题是,当您通过 检查 PHP 版本时php-v,您会假设所有内容都已更新,并且如果它显示最新版本。

然后,当您安装 cURLapt-get install php-curl并且安装了最新版本时,您就会认为您距离 cURL 天堂更近了一步,并且一切都会好起来。

您真正需要做的是检查您的 Apache 实例是否仅启用并加载了最新版本的 PHP。就我而言,尽管所有内容都已更新,但 Apache 仍在加载 PHP7.1 而不是 7.2。这不可能,但事实就是如此 ¯\_(ツ)_/¯

  1. apachectl -M
  2. 检查是否php7_module列出
  3. sudo a2dismod php7.1

  4. apachectl -M查看是否php7_module已从列表中消失
  5. sudo a2enmod php7.2

  6. 验证是否加载apachectl -M
  7. sudo systemctl restart apache2

在步骤 3 中随意尝试一下 php 版本 - 尝试 php7.0、php7.2 等。在启用最新版本之前,请禁用所有内容。

相关内容