Php curl init: PHP: curl_init — Manual

php — Вызов неопределенной функции curl_init() в IIS

У меня есть IIS 10, и моя программа вызывает функцию curl_init для выполнения вызовов API. Но я получаю эту ошибку:
«Вызов неопределенной функции curl_init()» . Также, когда я смотрю на вывод phpinfo(), раздел cURL не отображается.

Я трижды проверил файл php.ini на наличие extension=curl и ext папку на php_curl.dll . Я также загрузил файлы ssleay32.dll libeay32.dll в папку system32 в C:. Пару раз перезагружал сервер. Тем не менее, когда я проверяю phpinfo(), там нет раздела curl.

Вот что я нашел в StackOverflow:

аналогичная ошибка

Ответ joshjdevl может быть решением, но в чем разница между потокобезопасным и непотоковым пакетом PHP

Почему это работает?

о включении расширения curl здесь сказано, что нужно «добавить пути вашего каталога PHP в переменную PATH среды Windows для зависимостей . dll». , но на моей локальной машине — моей другой машине — (с wampserver) я не добавлял PHP в переменные среды, и это работает, так что мне действительно нужно это делать?

о том, чтобы убедиться, что система использует правильный файл php.ini Когда я смотрю на вывод phpinfo, я вижу путь к файлу php.ini. Исходя из этого, я предполагаю, что IIS использует этот файл php.ini. Я не ожидаю, что он будет использовать другой.

об установке расширения curl

Я просмотрел более 30 страниц StackOverflow и до сих пор не нашел решения.

  • php
  • curl
  • iis

После 8 часов поиска и десятков вопросов StackOverflow я, наконец, добавил путь PHP к переменным среды, и в выводе метода phpinfo() начал отображаться раздел cURL и ошибка исчезла.

Пуск Windows -> Изменить переменные системной среды -> Дополнительно -> Переменные среды -> Создать. добавить пути PHP к переменным среды на моем локальном компьютере. Я предполагаю, что это может быть связано с конфигурациями wampserver.

4

  1. Откройте файл php.ini и перейдите к строке с этой записью ;extension_dir = «ext». Удали это ; так что php будет искать php_curl.dll , а также другие dll в папке ext.

  2. Перейдите к строке с этой записью ;extension=php_curl.dll. Удалить ;

  3. Сохранить.

  4. Затем перезапустите IIS.

  5. Проверить с помощью phpinfo().

Это должно загрузить curl и другие модули.

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

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

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

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

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

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

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

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

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

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

debian — Неустранимая ошибка PHP: вызов неопределенной функции curl_init()

спросил

Изменено
3 года, 7 месяцев назад

Просмотрено
2к раз

У меня есть эта проблема:

 PHP Неустранимая ошибка: вызов неопределенной функции curl_init() в /var/www/html/. .. в строке 1495
 

Я включил curl в моем php.ini:

 extension=php_curl.dll
 

, но в моем журнале ошибок apache я вижу это:

 Предупреждение PHP: запуск PHP: невозможно загрузить динамическую библиотеку '/usr/lib/php/20131226/php_curl.dll' - /usr/lib/php/20131226/php_curl .dll: невозможно открыть общий объектный файл: нет такого файла или каталога в неизвестном в строке 0
Предупреждение PHP: запуск PHP: невозможно загрузить динамическую библиотеку '/usr/lib/php/20131226/php_gd2.dll' - /usr/lib/php/20131226/php_gd2.dll: невозможно открыть общий объектный файл: нет такого файла или каталога in Неизвестно в строке 0
Предупреждение PHP: Запуск PHP: невозможно загрузить динамическую библиотеку '/usr/lib/php/20131226/php_mbstring.dll' - /usr/lib/php/20131226/php_mbstring.dll: невозможно открыть общий объектный файл: нет такого файла или каталога in Неизвестно в строке 0
Предупреждение PHP: запуск PHP: невозможно загрузить динамическую библиотеку '/usr/lib/php/20131226/php_mysql. dll' - /usr/lib/php/20131226/php_mysql.dll: невозможно открыть общий объектный файл: нет такого файла или каталога in Неизвестно в строке 0
 

Я безуспешно пытался установить расширение curl.

Есть идеи, как это исправить? Я понятия не имею.

 ИМЯ="Debian GNU/Linux"
VERSION_ID="10"
ВЕРСИЯ="10 (бастер)"
VERSION_CODENAME=бастер
 
  • debian
  • apache-http-server
  • php

Во-первых, .dll — это расширение файла Microsoft Windows. В мире Linux суффикс для динамических библиотек — .so .
Похоже, вы копируете/вставляете немного быстро….

В Linux вы должны использовать extension=curl (текущая установка в моем Debian) или extension=php_curl (в зависимости от вашей системы…).

Кроме того, вы должны убедиться, что в вашей системе установлена ​​привязка PHP CURL.

 $ dpkg -l|grep -i curl
ii libcurl3-gnutls:amd64 7.64.0-4 amd64 простая в использовании клиентская библиотека для передачи URL-адресов (разновидность GnuTLS)
ii libcurl4:amd64 7.