Главная → Новичку → Устанавливаем 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).
Скачиваем библиотеку 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
Перезагрузить компьютер.
установить & 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 любым существующим путем в вашем пути
Тип 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 файл и скопируйте туда:
Откройте его с сервера. Если на выходе что-то вроде:
Значит с cURL всё в порядке, если вместо этого ошибка PHP, значит проблема существует.
Во-первых, конечно же проверьте файл php.ini, найдите там строчку
Extension=php_curl.dll
И убедитесь, что перед ней не стоит точка с запятой.
Если всё так, а 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 . Там всё просто, а, главное, человеческим языком написано, что нужно сделать.
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 , вот так:
Щелкните меню "Пуск" Windows 10. Начните вводить "окружение".
Вы увидите результат поиска. Отредактируйте системные переменные среды
. Выбери это.
Откроется окно "Свойства системы". Нажмите кнопку Переменные среды
внизу.
Выберите переменную "Путь" в разделе "Системные переменные" (нижнее поле). Нажмите кнопку Изменить
.
Нажмите кнопку " Добавить"
и вставьте путь к папке, в которой находится curl.exe .
Нажмите 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 .
Вероятно, стоит отметить, что 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 всего за несколько кликов. Просто загрузите и запустите программу установки из приведенной ниже таблицы и нажмите" Установить ". Установка по умолчанию включает в себя.