寻求一些调试建议和/或帮助。我不太熟悉安装 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。这不可能,但事实就是如此 ¯\_(ツ)_/¯
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 等。在启用最新版本之前,请禁用所有内容。