Не съм писал нищо от много време. PHP, затова реших да напиша малка поредица от статии за великолепните PHP модул - cURL. Но преди да го използвате, cURL трябва да бъде инсталиран на Denwer, тъй като в основната версия на този пакет къдрицаИзключено.

Преди да пристъпите към инсталиране на cURL на Denwer, нека поговорим накратко за възможностите, които предоставя този модул. къдрицае удобен начин за симулиране на потребителски действия на сървъра. Всъщност можете да проверите отговора на сървъра на конкретна заявка. Например, можете да изпратите POST заявкии вижте какво дава сървърът. Например искате да проверите работата на системата за оторизация. Разбира се, можете също ръчно да въведете вашето потребителско име и парола през браузъра и да видите какво ще се случи. Но ще бъде много по-удобно да напишете малка поредица от тестове, в които изпращането различни примеривход и парола, като в същото време се показва отговор от сървъра: успешна авторизация или не. И вече гледате дали скриптът за оторизация работи правилно или не. Използва се за подобни цели cURL модул.

Сега да се заемем инсталиране на модула cURL на Denwer:

  • Изтеглете пакета за разширение: PHP5: допълнителни модули" на тази връзка: http://www.denwer.ru/packages/php5.html .
  • Инсталирайте изтегления пакет (предварително спрете сървъра, ако работи).
  • във файл " usr/local/php5/php.ini"премахнете коментара от реда: " ;разширение=php_curl.dll“, като премахнете кавичките в началото на реда.
  • Стартирайте сървъра.
  • Проверете данните в phpinfo(). Ако виждаш" поддръжката на cURL е активирана", тогава всичко е наред. Ако не, тогава внимателно проверете дали сте изпълнили всички стъпки правилно.

Мисля, че в следващата статия (и може би в една) ще анализираме този модул вече като използваме примера за използването му в PHP скриптоветака че не сменяйте!

Кратко ръководство за тези, които искат да настроят curl php на Windows 8.1 x64. Ако curl не е конфигуриран на вашия уеб сървър, тогава следваща грешка: Фатална грешка: Извикване на недефинирана функция 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_curl.dll трябва да бъде разрешено в конфигурационния файл PHP php.ini.
  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. За да рестартирате компютър.

Тези, които използват cURL след актуализации до 5.6.1, 5.5.17, се сблъскаха с факта, че модулът cURL спря да работи. Оттогава проблемът не е изчезнал. Дори в най-новата версия на PHP 5.6.4 този проблем продължава.

Как да разберете дали cURL работи за вас?

Създавайте php файли копирайте там:

Отворете го от сървъра. Ако изходът е нещо като:

Масив ( => 468736 => 3 => 3997 => 0 => 7.39.0 => x86_64-pc-win32 => OpenSSL/1.0.1j => 1.2.7.3 => Масив ( => dict => файл => ftp => ftps => gopher => http => https => imap => imaps => ldap => pop3 => pop3s => rtsp => scp => sftp => smtp => smtps => telnet => tftp) )

Така че cURL е добре, ако вместо това е PHP грешка, значи има проблем.

Първо, разбира се, проверете файла php.ini, намерете реда там

Разширение=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. Вторият метод (много бърз, но също не кошер). Копирайте файла libssh2.dll от PHP директорията в директорията Apache24bin и рестартирайте Apache.
  3. Трети метод (кошер – кашер хората ръкопляскат изправени). Трябва да добавите своя PHP директорияв PATH. Как да направите това е много добре описано в официалната документация.

Ние проверяваме:

Воала, секцията cURL е на мястото си.

Защо така? Откъде идва този проблем? На този въпрос няма отговор, въпреки че механизмът на възникването му вече е описан.

Проблемът изглежда е свързан с факта, че 5.6.1 трябваше да бъде пуснат с актуализиран libcurl 7.38.0. Но това не е известно със сигурност, авторите на PHP кимат към Apache, казвайки, че има някои грешки там.

Механизмът на проблема: ако системният PATH не е включен PHP директория, тогава, когато услугата Apache стартира, тя не може да намери новата dll (libssh2.dll), която е зависимост за php_curl.

Съответни доклади за грешки:

Фатална грешка: Извикване на недефинирана функция curl_multi_init() в ...

Като цяло имаше проблеми с cURL в PHP, изглежда, ако не винаги, то много често. В процеса на търсене в гугъл на моя проблем попаднах на теми, някои от които бяха на повече от дузина години.

В допълнение, гугълът даде още няколко заключения:

В интернет има достатъчно "инструкции за глупаци", в които подробно, със снимки, се разказва как да се разкоментира редът extension=php_curl.dll във файла php.ini.

На официалния сайт на PHP, в раздела за инсталиране на cURL, има само две предложения относно системата Windows:

За да работите с този модул в Windows файлове libeay32.dll и ssleay32.dll трябва да съществуват в системата променлива на средатаПЪТЕКА. Нямате нужда от файла libcurl.dll от сайта cURL.

Прочетох ги десет пъти. Превключихте към английски езики го прочетете още няколко пъти на английски. Всеки път се убеждавам все повече, че тези две изречения са написани от животни или някой просто е скочил върху клавиатурата - не разбирам смисъла им.

Има и някои луди съвети и инструкции (дори успях да опитам някои).

На сайта за докладване на грешки в PHP вече се доближих до разгадаването на необходимостта от включване на директорията с PHP в системната променлива PATH.

Като цяло, за тези, които имат проблем с cURL и които трябва да „включат директория с PHP в системната променлива PATH“, отидете на инструкцията, вече спомената по-горе 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. Отваря се прозорецът System Properties. Щракнете върху бутона Променливи на средатана дъното.
    4. Изберете променливата „Path“ в секцията „System Variables“ (долното поле). Щракнете върху бутона промяна.
    5. Щракнете върху " добавете"и поставете пътя до папката, където се намира curl.exe.
    6. Кликнете ДОБРЕ,ако е необходимо. Затворете отворените прозорци на конзолата и ги отворете отново, за да получат новия PATH.

    Сега се наслаждавайте на въвеждането на curl на всеки команден ред. Време е да се забавляваме!

    За да стартирате curl от командния ред

    а) Щракнете Кликнете с десния бутоникона на мишката "Моят компютър"

    б) Изберете „Свойства“

    d) Щракнете върху раздела [Разширени] - бутон "Променливи на средата".

    д) Под „Системна променлива“ изберете „Път“ и „Редактиране“

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

Вече можете да стартирате от командния ред, като напишете:

Curl www.google.com

Започвайки с Windows 10 версия 1803 (и по-рано с Insider Build 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 Дата на издаване: Протоколи: dict файл ftp ftps http https imap imaps pop3 pop3s smtp smtps telnet tftp Характеристики: 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 и по-нови по-късни версиисъдържа cmdlet Invoke-WebRequest, който има някои възможности за извиване. Вероятно си струва да се споменат командлетите New-WebServiceProxy и Invoke-RestMethod.

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

Можете да създавате последна версия curl, openssl, libssh2 и zlib в 3 лесни стъпки, като следвате този урок.

Curl е изграден статично, така че не е нужно да преразпределяте необходимото динамично времеекзекуция.

Можете също да изтеглите предварително изградена версия (x86 и x64) от

Търсих процеса на изтегляне къдрицаи всеки, където казаха, копирайте файла 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\curl-7.53.1-win64-mingw\bin

Можете да добавите обратна наклонена черта, ако желаете, не мисля, че има значение. Натиснете бутона за преместване нагоре, докато не е в горната част на списъка и можете лесно да го видите от предишния екран. Натиснете OK, OK, OK, след това отворете команден ред и можете да стартирате curl, като напишете curl от всяка папка като всеки потребител. Не забравяйте двойните кавички.

Това е отговорът, който бих искал да получа.

Този инсталатор ме улесни http://www.confusedbycode.com/curl/

„Можете да инсталирате cURL за Windows само с няколко кликвания. Просто изтеглете и стартирайте инсталатора от таблицата по-долу и щракнете върху Инсталиране. Инсталацията по подразбиране включва.