Curl debug php: PHP — Debugging Curl — Stack Overflow

debian — в PHP отсутствуют cURL и XDebug после обновления

спросил

Изменено
4 года, 9 месяцев назад

Просмотрено
517 раз

Я только что обновился до Ubuntu 18.04.1 LTS и пошел проверить свою локальную установку apache2, добавив phpinfo() в индексный файл.

Я не вижу записи для cURL или для XDebug.

Вот что я сделал:

  1. Опять же, я проверил phpinfo() и не показал никаких параметров curl или xdebug.
  2. Я перешел к /etc/php/7.1/apache2/php.ini и раскомментировал следующую строку extension=php_curl.dll.
  3. Затем я перезапустил apache.
  4. Кроме того, мой phpinfo() показывает загруженный файл конфигурации
    /etc/php/7.1/apache2/php.ini, и именно ЭТО я редактировал.

Тем не менее, WordPress по-прежнему сообщает следующее: Неустранимая ошибка PHP:
Вызов неопределенной функции curl_init().

Я думаю, что ДОЛЖЕН редактировать не тот ini-файл.

Есть идеи? Я мертв в воде здесь. 😥

  • debian
  • php
  • curl

Короткий ответ: если вы не нашли расширение/модули curl и/или xdebug после обновления ОС, вам нужно переустановить их.

В дистрибутивах, совместимых с Debian, таких как Ubuntu, команды:

 sudo apt-get install php7.1-curl php-xdebug
 

После установки этих модулей PHP перезапустите Apache.

Пакет: php7.1-curl

Модуль CURL для PHP [по умолчанию]

Этот пакет содержит модуль CURL для PHP.

Xdebug:

Пакет: php-xdebug

Модуль Xdebug

для PHP

Расширение Xdebug помогает отлаживать сценарий, предоставляя много ценной отладочной информации. Отладочная информация, которую может предоставить Xdebug, включает следующее:

  • трассировки стека и трассировки функций в сообщениях об ошибках с:
    • Отображение полного параметра для определяемых пользователем функций
    • имя функции, имя файла и индикация строки
    • поддержка функций-членов
  • выделение памяти
  • защита от бесконечных рекурсий

Xdebug также предоставляет:

  • информация профилирования для скриптов PHP
  • анализ выполнения скрипта
  • возможности интерактивной отладки сценариев с помощью клиента отладки

Что касается вашего редактирования, php_curl. dll предназначен для Microsoft Windows, а не для Linux; пожалуйста, прокомментируйте это снова.

4

Зарегистрируйтесь или войдите в систему

Зарегистрируйтесь с помощью Google

Зарегистрироваться через Facebook

Зарегистрируйтесь, используя адрес электронной почты и пароль

Опубликовать как гость

Электронная почта

Требуется, но никогда не отображается

Опубликовать как гость

Электронная почта

Требуется, но не отображается

Нажимая «Опубликовать свой ответ», вы соглашаетесь с нашими условиями обслуживания, политикой конфиденциальности и политикой использования файлов cookie

Используйте аргументы -v или —trace) – Curl Cookbook

Эти рецепты curl показывают вам, как отлаживать запросы curl, чтобы увидеть, что он отправляет и получает. По умолчанию curl печатает только тело ответа. Чтобы напечатать все сообщение, включая заголовки запроса, информацию о сертификате SSL, заголовки ответа и тело ответа, используйте аргумент командной строки -v . Чтобы напечатать шестнадцатеричный дамп всего, используйте --трассировка аргумента . Чтобы он печатал как заголовки, так и тело ответа, используйте аргумент командной строки -i .

  1. Сделать завиток подробным
  2. Подробная трассировка
  3. Подробная трассировка с отметками времени
  4. Включить заголовки ответа в вывод
  5. Печатать только заголовки ответа
  6. Печатать только заголовки запроса
  7. Печатать только код ответа
    1. Сделать Curl подробным

       curl -v https://catonmat. net 

      Этот рецепт использует аргумент -v , чтобы заставить curl печатать подробную информацию о запросе и ответе. Строки с префиксом > — это данные, отправленные на сервер, строки с префиксом < — это данные, полученные от сервера, а строки, начинающиеся с * , — это разная информация, такая как информация о соединении, информация о подтверждении SSL и информация о протоколе.

      Подробная трассировка

       curl --trace - https://catonmat.net 

      В этом рецепте мы используем аргумент --trace - , чтобы включить полный дамп трассировки всех входящих и исходящих данных. Дамп трассировки печатает шестнадцатеричный дамп всех отправленных и полученных байтов.

      Подробная трассировка с отметками времени

       curl --trace - --trace-time https://catonmat.net 

      Этот рецепт добавляет --trace-time аргумент в curl. Этот аргумент в сочетании с --trace - заставляет curl печатать подробный журнал трассировки. Вы также можете комбинировать --trace-time с -v , чтобы добавить метки времени к подробным выводам curl.

       curl -i https://catonmat.net 

      По умолчанию curl выводит тело ответа на экран. В этом рецепте используется -i аргумент, чтобы он также печатал заголовки ответов. Когда этот флаг указан, curl сначала напечатает заголовки ответа, затем пустую строку, а затем тело ответа.

       curl -s -o /dev/null -D - https://catonmat.net 

      Чтобы напечатать только заголовки ответа (и отбросить тело), ​​необходимо использовать вместе три аргумента. Аргумент -s делает curl бесшумным и скрывает ошибки и индикатор выполнения, затем -o /dev/null (если вы работаете в Windows, используйте 9009>'

      Нет простого способа напечатать только заголовки запроса с помощью curl. Вы должны раскошелиться на внешнюю вспомогательную программу, чтобы сделать это, и использовать кучу параметров командной строки, чтобы отключить весь остальной вывод. Этот рецепт включает подробный вывод с помощью аргумента -v , затем заставляет curl молчать с помощью аргумента -s , затем заставляет curl игнорировать вывод с сервера с помощью аргумента -o /dev/null , затем заставляет curl перенаправить stderr на stdout через --stderr - и, наконец, просит grep напечатать все строки, начинающиеся с > , которые содержат заголовки запроса.

      Печатать только код ответа

       curl -w '%{код_ответа}' -s -o /dev/null https://catonmat.net 

      В этом рецепте используется аргумент -w , который заставляет curl печатать дополнительную информацию после завершения запроса. Дополнительная информация, которую мы просим его напечатать, — это %{response_code} , который является кодом ответа на запрос. Чтобы заставить curl печатать только код, а не содержимое или другую информацию, мы также используем -s , чтобы отключить curl, и -o /dev/null , чтобы игнорировать вывод ответа.