→ Устанавливаем curl в Debian. Пересылка Web-файлов из командной строки Пример использования Curl

Устанавливаем curl в Debian. Пересылка Web-файлов из командной строки Пример использования Curl

Краткая инструкция для тех, кто хочет настроить 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. Перезагрузить компьютер.

установить & 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.

Очень давно не писал ничего по 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-скриптах , так что не переключайтесь!

Те, кто использует 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 . Там всё просто, а, главное, человеческим языком написано, что нужно сделать.

21 ответ

Возможно, у вас уже есть завиток

Возможно, вам не нужно ничего скачивать:

  • Если вы используете Windows 10 версии 1803 или выше, ваша ОС поставляется с копией curl , уже настроенной и готовой к использованию.
  • Если у вас есть более эзотерические потребности (например, вам нужны сборки cygwin, сторонние сборки, libcurl, файлы заголовков, исходные коды и т.д.), Используйте мастер загрузки curl. После ответа на пять вопросов вам будет представлен список ссылок для скачивания.

    Извлечение и настройка скручивания

    Найдите curl.exe в вашем загруженном пакете; это наверное под bin\ .

    Выберите место на жестком диске, которое будет служить постоянным домом для завитков:

    • Если вы хотите сделать curl своей собственной папкой, подойдут C:\Program Files\curl\ или C:\curl\ .
    • Если у вас много свободных исполняемых файлов и вы не хотите добавлять много отдельных папок в PATH , используйте для этой цели одну папку, например C:\Program Files\tools\ или C:\tools\ .

    Поместите curl.exe в папку. И никогда не перемещайте папку или ее содержимое.

    Затем вы захотите сделать curl доступным в любом месте командной строки. Для этого добавьте папку в PATH , вот так:

    1. Щелкните меню "Пуск" Windows 10. Начните вводить "окружение".
    2. Вы увидите результат поиска. Отредактируйте системные переменные среды . Выбери это.
    3. Откроется окно "Свойства системы". Нажмите кнопку Переменные среды внизу.
    4. Выберите переменную "Путь" в разделе "Системные переменные" (нижнее поле). Нажмите кнопку Изменить .
    5. Нажмите кнопку " Добавить" и вставьте путь к папке, в которой находится curl.exe .
    6. Нажмите OK, если необходимо. Закройте открытые окна консоли и снова откройте, чтобы они получили новый PATH .

    Теперь наслаждайтесь вводом curl в любой командной строке. Время веселиться!

    Чтобы запустить завиток из командной строки

    a) Щелкните правой кнопкой мыши значок "Мой компьютер"

    b) Выберите "Свойства"

    d) Перейдите на вкладку [Дополнительно] - кнопка "Переменные среды"

    e) В разделе "Системная переменная" выберите "Путь" и "Изменить"

    f) Добавьте точку с запятой, а затем путь туда, куда вы поместили свой curl.exe(например, D:\software\curl)

Теперь вы можете запустить из командной строки, набрав:

Curl www.google.com

Начиная с Windows 10 версии 1803 (и более ранних, с инсайдерской сборкой 17063), вы больше не устанавливаете curl . Windows содержит собственный curl.exe (и tar.exe) в C:\Windows\System32\ , к которому вы можете обращаться прямо из обычного CMD .

C:\Users\vonc>C:\Windows\System32\curl.exe --version curl 7.55.1 (Windows) libcurl/7.55.1 WinSSL Release-Date: Protocols: dict file ftp ftps http https imap imaps pop3 pop3s smtp smtps telnet tftp Features: AsynchDNS IPv6 Largefile SSPI Kerberos SPNEGO NTLM SSL C:\Users\vonc>C:\Windows\System32\tar.exe --version bsdtar 3.3.2 - libarchive 3.3.2 zlib/1.2.5.f-ipp

Вероятно, стоит отметить, что Powershell v3 и более поздних версий содержит командлет Invoke-WebRequest, который имеет некоторые возможности скручивания. Вероятно, стоит упомянуть и командлеты New-WebServiceProxy и Invoke-RestMethod .

Я не уверен, что они подойдут вам или нет, но, хотя я и не Windows, я должен сказать, что нахожу объектный подход, который использует PS, гораздо проще работать с такими утилитами, как curl, wget и т.д. Они могут стоить взглянуть на

Вы можете создать последнюю версию curl, openssl, libssh2 и zlib в 3 простых шаги, следуя этот учебник.

Curl построен статически, поэтому вам не нужно распространять необходимое динамическое время выполнения.

Вы также можете скачать предварительно созданную версию (x86 и x64) из

Я искал процесс загрузки Curl и каждый, где они сказали, копирует файл curl.exe в System32 , но они не предоставили прямую ссылку. так что здесь можно наслаждаться curl.exe легко в папке bin просто

разархивируйте его, а затем перейдите в папку bin там, где вы получите exe файл

Думал, что напишу именно то, что сделал (Windows 10, 64-битная версия):

Выберите исполняемый файл curl.

Выберите Win64.

Выберите универсальный.

Выбирай любой.

curl версия: 7.53.1 - SSL включен SSH включен. Предоставлено: Виктор Шакац. Этот пакет является исполняемым типом curl. По этой ссылке вы получите предварительно скомпилированный двоичный файл curl (или, в некоторых случаях, используя информацию, предоставленную на странице, по которой вас ведет эта ссылка). Вы можете или не можете установить libcurl как общую библиотеку /DLL. Файл упакован с использованием 7zip. 7zip - это формат архивирования файлов.

Нажмите скачать.

У вас должен быть файл curl-7.53.1-win64-mingw.7z в вашей папке загрузок.

Установите 7-Zip, если у вас его нет.

Щелкните правой кнопкой мыши, 7-Zip, Извлечь здесь. Скопируйте и вставьте извлеченный файл куда-нибудь вроде Z:\Tools\

Если вы посмотрите в папку bin, вы увидите curl.exe. Если вы дважды щелкните по нему, окно быстро вспыхнет и исчезнет. Чтобы запустить его, вам нужно использовать командную строку. Перейдите в папку bin и введите curl, а затем свои параметры, чтобы сделать запрос. Вы должны использовать двойные кавычки . Одинарные кавычки не будут работать с curl в Windows.

Теперь вам нужно добавить curl в пользовательскую переменную Path, чтобы вам не пришлось переходить в нужную папку для запуска программы. Перейдите в раздел "Этот ПК", "Компьютер", "Свойства системы", "Дополнительные параметры системы", войдите в систему как администратор (вы не являетесь администратором, верно? Верно?). Переменные среды, системные переменные, посмотрите список и выберите "Путь", затем "Редактировать", затем Новый, то, например,

Z:\Tools\завиток-7.53.1-win64-MinGW\Bin

Вы можете добавить обратную косую черту, если хотите, я не думаю, что это имеет значение. Нажмите кнопку перемещения вверх до тех пор, пока она не окажется вверху списка, и вы сможете легко увидеть ее с предыдущего экрана. Нажмите OK, OK, OK, затем откройте командную строку, и вы можете запустить curl, набрав curl из любой папки, как любой пользователь. Не забывайте свои двойные кавычки.

Это ответ, который я хотел бы получить.

Этот установщик облегчил мне http://www.confusedbycode.com/curl/

"Вы можете установить cURL для Windows всего за несколько кликов. Просто загрузите и запустите программу установки из приведенной ниже таблицы и нажмите" Установить ". Установка по умолчанию включает в себя.

 

 

Это интересно: