- windows — PHP 7 curl не загружается
- Решение
- Другие решения
- Решение проблемы с работой модуля cURL на PHP 5.6.1, PHP 5.5.17 и выше (на Windows)
- Как узнать, работает ли у вас cURL?
- Fatal error: Call to undefined function curl_multi_init() in …
- 2 thoughts to “Решение проблемы с работой модуля cURL на PHP 5.6.1, PHP 5.5.17 и выше (на Windows)”
- Настройка curl php на Windows
- Настройка cURL
- Включение поддержки SSL для cURL
- Проверка работы cURL
- Не работает curl
- apache — CURL включен в php.ini, но все еще не работает
- Решение
- Другие решения
windows — PHP 7 curl не загружается
Я установил на свой локальный компьютер apache 2.4 с PHP 7.1. Я включил curl в своем php.ini (extension = php_curl.dll), но по какой-то причине curl не загружается даже после того, как я его включил, я сделал phhinfo для проверки, и ничего, я также сделал небольшой скрипт:
И ничего, пусто, что значит не загружается, чего-то не хватает? Я в Windows 10.
Решение
В моем случае это сработало, когда я также скопировал nghttp2.dll в каталог Apache bin
Другие решения
Я очень долго искал решение, пока не решил прочитать некоторые комментарии на сайте документации PHP: http://php.net/manual/de/curl.installation.php
Я исправил копирование следующих файлов списка из папки php (в моем случае C: \ xampp \ php7)
Некоторые люди также должны были двигаться nghttp2.dll чтобы это работало.
В вашу папку apache / bin (C: \ xampp \ apache \ bin в моем случае).
Я также скопировал их в C: \ Windows \ System32, но я не думаю, что какой-либо из этих файлов был загружен.
РЕДАКТИРОВАТЬ: Я успешно удалил эти dll из папки system32 и смог запустить curl впоследствии
Убедитесь, что вы отредактировали правильный файл. Должен быть отдельный файл для CLI, Apache2 и других SAPI. После этого перезапустите сервер Apache2.
Трудно догадаться, почему он не работает, и, как я вижу, вы не получите сообщение об ошибке.
вы должны получить ошибки, но я уверен, что вы не установили регистрацию ошибок в вашем php.ini
Сначала нам нужно активировать ведение журнала, чтобы понять, почему ваши расширения работают неправильно:
Пожалуйста, измените / добавьте следующие строки в ваш файл php.ini:
Теперь создайте php-logs каталог и php-log.log файл
Теперь перезапустите сервер. Теперь вы должны получить ошибки и, пожалуйста, поделитесь кодом ошибки, чтобы я мог помочь
Включить mod_ssl в `httpd.conf«
Это работает, если вы установите SSL VERIFYPEER в false
Решение проблемы с работой модуля cURL на PHP 5.6.1, PHP 5.5.17 и выше (на Windows)
The Codeby — одна из сильнейших Red Team в RU сегменте. Команда профессионалов, специализирующаяся на аудите информационных систем и тестировании на проникновение.
Мы предлагаем: Аудит веб-сайта компании, Аудит внешнего периметра, Аудит веб-приложения, Аудит внутренней корпоративной сети, Проверка ИБ-грамотности сотрудников, Анализ кода ПО, Аудит Wi-Fi и СКУД, Выявление уязвимостей ПО серверов и рабочих станций, Пентест инфраструктуры методом черного ящика. Подробнее .
Те, кто использует cURL, после обновлений на 5.6.1, 5.5.17 столкнулись с тем, что модуль cURL перестал работать. Проблема с тех пор не исчезла. Даже в последней на сегодняшней момент версии PHP 5.6.4 эта проблема сохранилась.
Как узнать, работает ли у вас cURL?
Создайте php файл и скопируйте туда:
Откройте его с сервера. Если на выходе что-то вроде:
Значит с cURL всё в порядке, если вместо этого ошибка PHP, значит проблема существует.
Во-первых, конечно же проверьте файл php.ini, найдите там строчку
И убедитесь, что перед ней не стоит точка с запятой.
Если всё так, а cURL не работает, то можно провести ещё один тест, для подтверждения необычности ситуации. Создайте ещё один php файл с содержанием:
Через поиск в браузере найдите cURL, если совпадение всего одно, значит модуль cURL не загружен:
При этом и Apache и PHP работают как обычно.
- Способ первый (не кошерный). Если у вас PHP 5.6.*, то возьмите версию PHP 5.6.0, оттуда возьмите старый файл php_curl.dll и замените его вместо вашего нового из версии, например, PHP 5.6.4. Для тех, у кого PHP 5.5.17 и выше, нужно взять этот же файл из PHP 5.5.16 и также его заменить. Проблема здесь одна — найти эти старые версии. Можно, конечно, покавыряться в http://windows.php.net/downloads/snaps/php-5.6, но лично я там не нашёл того, что мне нужно. Да и само решение какое-то не совсем кошерное.
- Способ второй (очень быстрый, но тоже не кошерный). Из каталога PHP скопировать файл libssh2.dll в каталог Apache24bin и перезапустить Apache.
- Способ третий (кошерный — кошерные люди аплодируют стоя). Нужно добавить вашу PHP директорию в PATH. Как это сделать очень хорошо расписано в официальной документации.
Вуаля, секция cURL на месте.
Почему так? Откуда взялась эта проблема? Ответа на этот вопрос нет, хотя уже описан механизм её возникновения.
Проблема связана, вроде, с тем, что 5.6.1 должен был выпущен с обновлённым libcurl 7.38.0. Но это доподлинно не известно, авторы PHP кивают на Apache, мол это там какие-то баги.
Механизм возникновения проблемы: если в системную PATH не включён каталог PHP, то когда служба Apache запускается, она не способна найти новый dll (libssh2.dll), который является зависимостью для php_curl.
Соответствующие баг репорты:
Fatal error: Call to undefined function curl_multi_init() in …
Вообще, проблемы с cURL на PHP были, кажется, если не всегда, то очень часто. В процессе гугления своей проблемы, я натыкался на темы, некоторым из которых было больше чем дюжина лет.
Кроме этого, гугление дало ещё несколько выводов:
В Интернете достаточно «инструкций для дибилов», в которых подробно, с картинками, рассказывают как раскомментировать строку extension=php_curl.dll в файле php.ini.
На официальном сайте PHP, в разделе по установке cURL, есть всего два предложения относительно системы Windows:
Для работы с этим модулем в Windows файлы libeay32.dll и ssleay32.dll должны существовать в системной переменной окружения PATH. Вам не требуется файл libcurl.dll с сайта cURL.
Я прочитал их десяток раз. Переключился на английский язык и прочитал ещё несколько раз на английском. С каждым разом всё больше убеждаясь, что эти два предложения написали животные, или кто-то просто попрыгал попой на клавиатуре — я не понимаю их смысла.
Ещё есть несколько каких-то сумасшедших советов и инструкций (некоторые я успел даже опробовать).
На сайте баг репортов ПХП я уже вплотную подобрался к разгадке, что нужно в системную переменную PATH включить каталог с PHP.
В общем, для тех, у кого проблема с cURL и кому нужно «в системную переменную PATH включить каталог с PHP», перейдите к уже названной выше инструкции http://php.net/manual/ru/faq.installation.php#faq.installation.addtopath. Там всё просто, а, главное, человеческим языком написано, что нужно сделать.
2 thoughts to “Решение проблемы с работой модуля cURL на PHP 5.6.1, PHP 5.5.17 и выше (на Windows)”
Способ второй (очень быстрый, но тоже не кошерный). Из каталога PHP скопировать файл libssh2.dll в каталог Apache24bin и перезапустить Apache.
Спасибо большое, второй способ очень быстро исправил проблему.
Настройка curl php на Windows
Настройка cURL
Написанное ниже актуально для связки Windows 8.1 x64 , Windows10 x64 + Apache 2.4.12 (win32) + Open SSl 1.0.1m + PHP 5.6.11 (php-5.6.11-Win32-VC11-x86).
- Скачиваем библиотеку cURL http://winampplugins.co.uk/curl. Распаковываем в любую папку. Например, «W:\WebServers\usr\local\curl».
- В файле настроек PHP php.ini необходимо включить расширение extension=php_curl.dll.
- Пункт не обязательный, но во многих источниках его рекомендуют выполнять. У нас работает без выполнения этого пункта. Из папки где установлен PHP скопировать в папку « C:\Windows \system32» следующие библиотеки: libssh2.dll, php_curl.dll (находится в папке ext), ssleay32.dll, libeay32.dll. Дополнительно файл ssleay32.dll необходимо скопировать в «C:\Windows\SysWOW64».
- Добавить в переменные среды в переменную Path пути до папки установки curl.exe и файла php.ini. Например, «W:\WebServers\usr\local\curl;W:\WebServers\usr\local\php5». Очень порадовало то, что в windows10 (1511) появился новый интерфейс редактирования переменных сред. Стало очень удобно редактировать параметры.
Включение поддержки SSL для cURL
- Скачать файл http://curl.haxx.se/ca/cacert.pem в папку, в которой установлена библиотека curl.exe.
- Переименовать скаченный файл в curl-ca-bundle.crt
- Перезагрузить компьютер.
Проверка работы cURL
© 2004–2020 Студия Павла Филинкова в Екатеринбурге
Вся информация на сайте носит справочный характер и не является публичной офертой.
Не работает curl
по-прежнему выдаётся ошибка: Fatal error: Call to undefined function curl_init() in .
Я зашёл в папку с расширениями C:\php\ext, проверил, есть ли там php_curl.dll. файл на месте, версия 5.3.2.0, как и версия php. пробовал перезагружать комп, та же фигня. Сервер при запуске ошибок не выдаёт, в лог ошибок ничего кроме уже знакомого Call to undefined function curl_init() in . не пишется. пробовал скачать другую версию php_curl.dll, тоже самое.
php.ini у меня один, это 100%. все остальные расширения включал точно так же без проблем, все они лежат в одной папке и включаются в одном и том же php.ini. если у кого есть какие идеи, делитесь не стесняйтесь, буду благодарен
версия apache 2.2, PHP 5.3, сервер на windows xp.
не работает curl
подскажите, пожалуйста, почему не работает curl: // 1. инициализация $ch = curl_init(); //.
Не работает CURL
Помогите, я уже задолбался. У меня есть хостинг с поддержкой PHP. Все поддерживается, все хорошо.
Curl не работает
Добрый день.Хочу написать форму авторизации свою,через свой сайт,чтобы пользователь вводил данные и.
CURL не работает скрипт
Взял из примера скрипт проверки доступности домена. Пишу на Linux’e предварительно установил.
Попробуй в php.ini написать так
я уже это сделал пару дней назад, теперь вместо
PHP Warning: PHP Startup: Unable to load dynamic library ‘c:/php/ext\\php_curl.dll’ пишет:
PHP Warning: PHP Startup: Unable to load dynamic library ‘c:/php/ext/php_curl.dll’
но это никак не повлияло. все dll отлично определяются даже с таким путём: ‘c:/php/ext\\php_curl.dll’
Добавлено через 14 часов 37 минут
попробовал раскомментировать все расширения, чисто ради интереса. оказалось, что около половины не загрузились. но ошибка другая. с такой же ошибкой что и curl не загрузился только php_openssl.dll. может они как-то связаны? ошибка у них одна и та же: \xcf\xee\xef\xfb\xf2\xea\xe0 \xee\xe1\xf0\xe0\xf9\xe5\xed\xe8\xff \xea \xed\xe5\xe2\xe5\xf0\xed\xee\xec\xf3 \xe0\xe4\xf0\xe5\xf1\xf3.\r\n in Unknown on line 0
Я не понял, они на работающем сервере есть в каталогах ОС? Если нет, то почему такой же сервер не хочет без них работать? У меня тоже такая ошибка, проверил и закомментированную строку, и файлы эти в папке php.
Я нашел элегантнее решение. Нужно php_curl.dll из папки /ext скопировать в корневую папку php.
Добавлено через 7 минут
Мне помогла манипуляция с libssh2.dll от UchihaSV и php_curl.dll из папки /ext скопировать в корневую папку php.
Добавлено через 29 секунд
В моем случае это был достаточный и необходимый минимум.
У меня на сборке WAMP работал curl_init(), сегодня решил запустить скрипт, который до этого работал и стал выдавать ошибку Fatal error: Call to undefined function curl_init() in .
Из последнего, что менял, помню добавлялся новый виртуальный хост в httpd.conf и эксперементировал с директивой precision.. где чего накосячил не пойму.. проверка синтаксиса не даёт никаких ошибок. Сам php.exe в режиме CLI вроде как в php.ini модуль CURL видит:
В списке «curl» присутствует. Если закомментировать в php.ini строку «extension=php_curl.dll», то соответственно пропадает.
В переменной PATH путь к каталогу где лежит php.exe есть.
Кто-нибудь может сделать какое-нибудь предположение в чём дело на основе упомянутых данных?
Добавлено через 8 минут
У кого curl работает, подскажите пожалуйста какая кодировка у вас файлов php.ini и httpd.conf ?
Тематические курсы и обучение профессиям онлайн Профессия PHP-разработчик (Skillbox) Fullstack-разработчик на PHP (Skillbox) Веб-разработчик с нуля (Нетология) Профессия веб-разработчик (Skillbox) |
Ура товарищи! Разобрался!
Как всегда причиной сбоя оказалась банальная невнимательность. Вот какая версия событий. Давным давно поставил себе несколько версий «D:\server\php». Последняя версия модуля php расположилась в каталоге «D:\server\php56», а вот старый каталог сохранился (так на всякий случай, ну вдруг какой баг в новой версии). Вот так он и доживал до текущего времени.
Недавно решил почистить сервер и поудалять ненужный хлам. Старый каталог «D:\server\php» был удалён. Однако поневнимательности в переменной Windows PATH так и весела «D:\server\php».. видимо apache питался старой php_curl.dll
Исправил «D:\server\php» на «D:\server\php56» и всё заработало как прежде
apache — CURL включен в php.ini, но все еще не работает
Я включил расширение CURL в он php.ini В этой папке я скопировал файлы Mllliple dll из папки PHP в папку Apache Bin и папку System 32, но cURL все еще не включен в моей системе.
Все решения, на которые я смотрел:
Я знаю это, потому что я все еще вижу следующую ошибку:
Fatal error: Call to undefined function curl_init() in C:\AMP\sites\ftp-crawl\index.php on line 55
Когда я бегу только phpinfo() , нет никаких опций cUrl. Единственное упоминание о CURL находится под module authors и его ценность cURL: Sterling Hughes
Я работаю на машине разработчика Windows 10 с установленными PHP, MySQL и Apache.
Что мне еще нужно сделать или проверить, чтобы включить скручивание?
Решение
У меня такая же проблема. Я исправляю замену php_curl.dll . Возможно повреждение файла.
В php.ini я настраиваю с extension=php_curl.dll ,
Больше не надо Call to undefined function curl_init() ошибки.
Другие решения
Я решил проблему, отредактировав свой PHP.ini включить полный путь расширения в отличие от только имени.
Итак, где большинство php.ini файлы просто имеют следующую строку кода:
Я изменил это, чтобы выглядеть так:
Я понятия не имею, почему PHP / Apache не мог показать ошибку, пока я extension=php_curl.dll в моем php.ini , По крайней мере, сказать что-то вроде dll missing или что-то подобное, но это решило мою проблему.
Я считаю, что вы отредактировали демо или неверный файл php.ini.
В вашем phpinfo вы найдете путь к используемому файлу php.ini. Это рядом с текстом: «Файл конфигурации». Проверьте этот файл и убедитесь, что установлена следующая опция (по умолчанию она закомментирована точкой с запятой).
Если вы не можете найти эту строку, возможно, у вас другая версия Apache. В этом случае вы можете найти каталог с именем «mods-available», в котором находится расширение curl. Вам нужно переместить этот файл в папку «mods-enabled». Честно говоря, я думаю, что это относится только к средам Linux, не уверен насчет Windows.