
Ищу какие-нибудь предложения по отладке и/или помощь. Я не очень хорошо разбираюсь в установке модулей или пакетов 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
МЕСТНЫЙ:
- curl 7.54.0 (x86_64-apple-darwin17.0)
- поддержка cURL => включена
- PHP7.1.21
- Ларавел 5.7
решение1
Проблема в том, что когда вы проверяете версию PHP с помощью php-v
, вы предполагаете, что все обновлено, и хорошо, если он показывает самую новую версию.
Затем, когда вы устанавливаете cURL apt-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
Можете свободно экспериментировать с версией PHP на шаге 3 — попробуйте php7.0, php7.2 и т. д. Отключите все, прежде чем включать последнюю версию.