Установка curl. Устанавливаем curl в Debian

  • Дата: 28.04.2024

установить & config apache получить пакеты PHP5 и получить пакеты CURL.

Я запускаю apache и запускаю скрипт PHP. без проблем. но когда я запускаю php-скрипт с завитком, он терпит неудачу.

Он возвращает: **Call to undefined function curl_version() in C:\Program Files\Apache Software Foundation\Apache2.2\htdocs\testing.php on line 5**

В которой строка 5 является вызываемой curl_init()

Я вывожу php -i, чтобы узнать, вызывается ли правильный путь к расширению. Он правильно установлен:

Extension_dir => C:\PHP\ext => C:\PHP\ext cURL support => enabled cURL Information => libcurl/7.16.0 OpenSSL/0.9.8g zlib/1.2.3

Я даже попытался запустить curl_version() но все же возникает такая же ошибка.
Похоже, что PHP не может найти расширение CURL, но php.ini (а также php -i) показывает, что он установлен.

Есть идеи? :)

P.S> System I m running on: Windows XP Apache 2.2 PHP 5.2.6 CURL Win32 Generic Binaries: Win32 2000/XP metalink 7.19.0 binary SSL enabled Daniel Stenberg 249 KB

Я этого не понял:

Win32 2000/XP 7.19.0 libcurl SSL enabled Günter Knauf 1.55 MB Should I get this one instead?

Причина, по которой мне нужно использовать CURL, - это требование моего проекта. Поэтому я могу только придерживаться этого. XAMPP ... как он работает в Windows? Есть ли сайт, который вы можете порекомендовать? Благодарю.

Я пробовал много вещей при установке cURL и проверял все, но все же, я все еще обнимаюсь вокруг проблемы и понятия не имею, что происходит.

Сервер Apache использует правильный PHP.ini. и PHP.ini имеет правильный extension_dir и extension = php_curl.dll Я понятия не имею, почему это не работает. даже я следую за каждым шагом для его настройки. :(


2017-10-08 01:33

Ответы:

Вероятно, вы ошибаетесь, что PHP.ini вам нужно изменить. сначала добавьте PHPinfo (); на info.php и запустите его из своего браузера.

Запишите путь каталога PHP ini, который вы видите в списке переменных сейчас! Вы, вероятно, заметите, что он отличается от вашего INI-файла PHP-CLI.

Включить расширение

Вы закончили:-)


2017-10-08 06:32

Для установки завитка выполните следующие действия:

    открыто https://curl.haxx.se/dlwiz?type=bin в браузере.

    Выберите операционную систему в раскрывающемся списке: либо Windows / Win32, либо Win 64. Нажмите «Выбрать»!

    Для Win 32 выберите, будете ли вы использовать завиток в командной строке Windows (Generic) или на терминале Cygwin (cygwin). Для Win 64 выберите, будете ли вы использовать завиток в командной строке Windows (Generic) или MinGW (MinGW64). Нажмите «Выбрать»!

    При необходимости выберите свою операционную систему Windows. Конец.

    Нажмите Загрузить для версии с включенным или отключенным SSL.

    Откройте загруженный zip-файл. Извлеките файлы в удобное для поиска место, например C: \ Program Files.

Тестирование завитка

    Откройте терминал командной строки Windows. (В меню «Пуск» выберите «Выполнить», затем введите cmd.)

    Установите путь, чтобы включить каталог, в который вы помещаете curl.exe. Например, если вы поместите его в C: \ Program Files \ curl, вы должны ввести следующую команду: set path =% path%; "c: \ Program Files \ curl"

ПРИМЕЧАНИЕ. Вы также можете напрямую скопировать файл curl.exe любым существующим путем в вашем пути

  1. Тип curl. Появится следующее сообщение: curl: попробуйте "curl -help" или "curl -message" для получения дополнительной информации Это означает, что завиток установлен, и путь правильный.

2018-06-12 20:00

Я использую XAMPP, в котором есть несколько файлов php.ini.

Вы можете найти строку в файлах php.ini: ;extension=php_curl.dll

Пожалуйста, удалите; в начале этой строки. Возможно, вам придется перезапустить сервер Apache.


2018-05-01 15:59

У меня также были проблемы с этим. После того, как все эти шаги сделаны правильно и некоторые исправленные недоразумения (нет extensions_dir, но extension_dir, и нет session.save_path, но session.save_path) ничего не работает.

Наконец, я нашел эту заметку на php.net:

Примечание. Примечание для пользователей Win32: Чтобы включить этот модуль в среде Windows, libeay32.dll и ssleay32.dll должны присутствовать в вашем PATH. Вам не нужно libcurl.dll с сайта cURL.

Поэтому я скопировал ssleay32.dll, libeay32.dll & php_curl.dll От / PHP до Windows / system32 и заменил уже существующие файлы (я заметил, что были старые версии ssleay32.dll и libeay32.dll). После этого я нашел раздел CURL в php_info (); и, наконец, все работает.


2018-02-08 16:59

Недавно я установил Curl на PHP5 для Windows Vista. я сделал не включите библиотеку CURL, когда я изначально установил PHP5, поэтому ничего не появилось в Curl в phpinfo () или php.ini.

Я установил CURL, перезапустив установщик PHP5 (php-5.2.8-win32-installer.msi для меня) и выбрав «Изменить». Затем я добавил компонент CURL. Перезапустите Apache, и CURL должен работать. CURL появится в phpinfo (). Кроме того, вот пример скрипта, который вы можете запустить, чтобы проверить, работает ли он. Он отображает RSS-канал от Google:


2017-12-19 13:49

Примечание. Примечание для пользователей Win32. Чтобы включить этот модуль (cURL) в среде Windows, libeay32.dll и ssleay32.dll должны присутствовать в вашем PATH. Вам не нужно libcurl.dll с сайта cURL.

Эта заметка решила мою проблему. Мысль об обмене. libeay32.dll & ssleay.dll вы найдете в папке установки php.

Такая небольшая программка как curl умеет очень многое и вряд ли она установлена по-умолчанию на вашем VPS -сервере. Если Вы web-разработчик и не знаете, что такое curl, то стоит ознакомиться с ее возможностями и, возможно, некоторые вещи, которые раньше делались сложно, впредь будут реализованы проще и эффективнее.

Те разработчики, кто разрабатывал когда-нибудь HTML - или XML - парсеры, знают о ее возможностях.

Для себя я открыл curl только в тот момент, когда предстояло разработать плагин для Textpattern, который бы вопреки политики социальной сети “Вконтакте”, автоматически добавлял уведомление о публикации новой статьи в публичную группу. Увы, без curl у меня этого сделать так и не получилось.

После того как мы, я надеюсь, определились зачем этот самый curl нам нужен, приступаем к его установке на сервер, где стоит PHP и Apache. Если у Вас простой хостинг (не VPS ), то стоит обратиться к хостеру с просьбой его включить и он все сделает за Вас, если уже этого не сделал. У меня на одном хостинге именно так и было.

Как узнать установлен ли у меня curl?

Перед тем, как ринуться к установке, давайте проверим: возможно, он уже у Вас установлен. Я не нашел ничего проще, чем создать файл, к примеру, curl.php с содержимым:


и запустить его через браузер.

В выведенной простыне текста, можно поиском по странице поискать curl и если он у Вас не найдется, то смело полагать, что у Вас он не установлен.

Устанавливаем curl в Debian

Еще с давних времен, когда я использовал Ubuntu, я привык к DEB -дистрибутивам и менять их не хочу. Именно поэтому практически на всех своих серверах я использую в качестве операционной системы – Debian, о чем еще ниразу не пожалел.

  1. Устанавливаем все, что нужно:
    sudo apt-get install curl libcurl3 libcurl3-dev php5-curl php5-mcrypt
  2. После этого нужно всего-лишь перезапустить Apache:
    sudo /etc/init.d/apache2 restart

Для подтверждения того, что curl начал свою работу нужно снова запустить наш тестовый файл – curl.php и в последний раз пройтись поиском по открытой странице. В 99% случаях Вы увидите подтверждение того, что curl уже работает и можно приступать к порабощению интернета.

P.S. Сейчас как раз такое время, когда на улице уже холодно, а отопление администрация нашего города включать пока не спешит. В такие моменты найти спасение можно только в различных обогревателях. Побочным эффектов любого обогревателей является то, что он сильно сушит окружающий воздух. Бороться с этим помогают увлажнители воздуха для дома . Именно эти два устройства вместе помогут пережить это тяжелое для России время.

Те, кто использует cURL, после обновлений на 5.6.1, 5.5.17 столкнулись с тем, что модуль cURL перестал работать. Проблема с тех пор не исчезла. Даже в последней на сегодняшней момент версии PHP 5.6.4 эта проблема сохранилась.

Как узнать, работает ли у вас cURL?

Создайте php файл и скопируйте туда:

Откройте его с сервера. Если на выходе что-то вроде:

Array ( => 468736 => 3 => 3997 => 0 => 7.39.0 => x86_64-pc-win32 => OpenSSL/1.0.1j => 1.2.7.3 => Array ( => dict => file => ftp => ftps => gopher => http => https => imap => imaps => ldap => pop3 => pop3s => rtsp => scp => sftp => smtp => smtps => telnet => tftp))

Значит с cURL всё в порядке, если вместо этого ошибка PHP, значит проблема существует.

Во-первых, конечно же проверьте файл php.ini, найдите там строчку

Extension=php_curl.dll

И убедитесь, что перед ней не стоит точка с запятой.

Если всё так, а cURL не работает, то можно провести ещё один тест, для подтверждения необычности ситуации. Создайте ещё один php файл с содержанием:

Через поиск в браузере найдите cURL, если совпадение всего одно, значит модуль cURL не загружен:

При этом и Apache и PHP работают как обычно.

Решений три:

  1. Способ первый (не кошерный). Если у вас 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 , но лично я там не нашёл того, что мне нужно. Да и само решение какое-то не совсем кошерное.
  2. Способ второй (очень быстрый, но тоже не кошерный). Из каталога PHP скопировать файл libssh2.dll в каталог Apache24bin и перезапустить Apache.
  3. Способ третий (кошерный — кошерные люди аплодируют стоя). Нужно добавить вашу 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 . Там всё просто, а, главное, человеческим языком написано, что нужно сделать.

Краткая инструкция для тех, кто хочет настроить curl php на Windows 8.1 x64. Если curl не настроен на вашем вэб-сервере, то возникает следующая ошибка: Fatal error: Call to undefined function curl_init().

Настройка 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).

  1. Скачиваем библиотеку cURL http://winampplugins.co.uk/curl . Распаковываем в любую папку. Например, «W:\WebServers\usr\local\curl».
  2. В файле настроек PHP php.ini необходимо включить расширение extension=php_curl.dll.
  3. Пункт не обязательный, но во многих источниках его рекомендуют выполнять. У нас работает без выполнения этого пункта. Из папки где установлен PHP скопировать в папку «C:\Windows \system32» следующие библиотеки: libssh2.dll, php_curl.dll (находится в папке ext), ssleay32.dll, libeay32.dll. Дополнительно файл ssleay32.dll необходимо скопировать в «C:\Windows\SysWOW64».
  4. Добавить в переменные среды в переменную Path пути до папки установки curl.exe и файла php.ini. Например, «W:\WebServers\usr\local\curl;W:\WebServers\usr\local\php5». Очень порадовало то, что в windows10 (1511) появился новый интерфейс редактирования переменных сред. Стало очень удобно редактировать параметры.

Включение поддержки SSL для cURL

  1. Скачать файл http://curl.haxx.se/ca/cacert.pem в папку, в которой установлена библиотека curl.exe.
  2. Переименовать скаченный файл в curl-ca-bundle.crt
  3. Перезагрузить компьютер.

Очень давно не писал ничего по PHP , поэтому решил написать небольшую серию статей, посвящённых великолепному модулю PHP - cURL . Но прежде чем его использовать, cURL надо установить на Denwer , так как в базовую версию этого пакета cURL не входит.

Прежде чем переходить к установке cURL на Denwer , давайте кратко расскажу о возможностях, которые предоставляет данный модуль. cURL - это удобный способ для моделирования действий пользователя на сервере. Фактически, Вы можете проверять ответ сервера при том или ином запросе. Например, можете отправлять POST-запросы и смотреть, что отдаёт сервер. Например, хотите проверить работу системы авторизации. Разумеется, можно и вручную через браузер вводить логин и пароль и смотреть, что происходит. Но гораздо удобнее будет написать небольшую серию тестов, в которых происходит отправка различных примеров логина и пароля, и при этом выводится ответ от сервера: успешная авторизация или нет. А Вы уже смотрете: правильно работает скрипт авторизации или нет. Вот для подобных целей и используется модуль cURL .

А теперь давайте займёмся установкой модуля cURL на Denwer :

  • Скачайте пакет расширений: "PHP5: дополнительные модули " по этой ссылке: http://www.denwer.ru/packages/php5.html .
  • Устанавливаете скачанный пакет (предварительно остановите сервер, если он запущен).
  • В файле "usr/local/php5/php.ini " уберите комментарий из строчки: ";extension=php_curl.dll ", стерев кавычки в начале строки.
  • Запустите сервер.
  • Проверьте данные в phpinfo() . Если увидите "cURL support enabled ", значит, всё хорошо. Если нет, то внимательно проверьте: все ли шаги Вы выполнили правильно.

Думаю, что в следующей статье (а, может быть, через одну), мы с Вами будем разбирать этот модуль уже на примере использования его в PHP-скриптах , так что не переключайтесь!