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 года 8 месяцев назад

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

Просмотрено 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: невозможно открыть общий объектный файл: такого файла нет или каталог в Unknown в строке 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.