Dlho som nič nenapísal. PHP, tak som sa rozhodol napísať malú sériu článkov o veľkolepom PHP modul - cURL. Ale pred použitím, cURL musí byť nainštalovaný na Denwer, pretože v základnej verzii tohto balíka cURL Vylúčené.

Pred pokračovaním v inštalácia cURL na Denwer, stručne si povedzme o možnostiach, ktoré poskytuje tento modul. cURL je pohodlný spôsob simulácie akcií používateľa na serveri. V skutočnosti môžete skontrolovať odpoveď servera na konkrétnu požiadavku. Môžete napríklad poslať žiadosti POST a uvidíte, čo server dáva. Napríklad chcete skontrolovať fungovanie autorizačného systému. Svoje používateľské meno a heslo môžete samozrejme zadať aj manuálne cez prehliadač a uvidíte, čo sa stane. Oveľa pohodlnejšie však bude napísať malú sériu testov, v ktorých odosielanie rôzne príklady prihlasovacie meno a heslo a zároveň sa zobrazí odpoveď zo servera: úspešná autorizácia alebo nie. A už sa pozeráte na to, či autorizačný skript funguje správne alebo nie. Používa sa na podobné účely modul cURL.

Teraz sa poďme zamestnať inštalácia modulu cURL na Denwer:

  • Stiahnite si balík rozšírenia: PHP5: dodatočné moduly“ na tomto odkaze: http://www.denwer.ru/packages/php5.html.
  • Nainštalujte stiahnutý balík (ak je spustený, server vopred zastavte).
  • V súbore " usr/local/php5/php.ini"odstráň komentár z riadku:" ;extension=php_curl.dll“ odstránením úvodzoviek na začiatku riadku.
  • Spustite server.
  • Skontrolujte údaje phpinfo(). Ak vidíš" Podpora cURL je povolená“, potom je všetko v poriadku. Ak nie, potom pozorne skontrolujte, či ste všetky kroky vykonali správne.

Myslím, že v ďalšom článku (a možno v jednom) si tento modul rozoberieme už na príklade jeho použitia v PHP skripty tak neprepínaj!

Krátky sprievodca pre tých, ktorí chcú nastaviť curl php v systéme Windows 8.1 x64. Ak curl nie je nakonfigurovaný na vašom webovom serveri, potom ďalšia chyba: Závažná chyba: Volanie nedefinovanej funkcie curl_init().

Nastavenie cURL

To, čo je napísané nižšie, je relevantné pre množstvo 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. Stiahnite si knižnicu cURL http://winampplugins.co.uk/curl . Rozbaľte do ľubovoľného priečinka. Napríklad "W:\WebServers\usr\local\curl".
  2. V konfiguračnom súbore PHP php.ini musí byť povolená prípona=php_curl.dll.
  3. Položka nie je povinná, ale v mnohých zdrojoch sa odporúča vykonať ju. Funguje nám to aj bez tejto položky. Z priečinka, kde je nainštalované PHP, skopírujte nasledujúce knižnice do priečinka „C:\Windows\system32“: libssh2.dll, php_curl.dll (nachádza sa v priečinku ext), ssleay32.dll, libeay32.dll. Okrem toho je potrebné skopírovať súbor ssleay32.dll do "C:\Windows\SysWOW64".
  4. Pridajte do premenných prostredia v premennej Path cestu k inštalačnému priečinku curl.exe a súboru php.ini. Napríklad "W:\WebServers\usr\local\curl;W:\WebServers\usr\local\php5". Veľmi ma potešilo, že v sa objavil windows10 (1511). nové rozhranie editovanie premenných prostredia. Stalo sa veľmi pohodlným upravovať parametre.

Povoliť podporu SSL pre cURL

  1. Stiahnite si súbor http://curl.haxx.se/ca/cacert.pem do priečinka, kde je nainštalovaná knižnica curl.exe.
  2. Premenujte stiahnutý súbor na curl-ca-bundle.crt
  3. Ak chcete reštartovať počítač.

Tí, ktorí používajú cURL po aktualizáciách na 5.6.1, 5.5.17, čelili skutočnosti, že modul cURL prestal fungovať. Odvtedy problém nezmizol. Aj v najnovšej verzii PHP 5.6.4 tento problém pretrvával.

Ako viete, či vám cURL funguje?

Vytvorte php súbor a skopíruj tam:

Otvorte ho zo servera. Ak je výstup niečo ako:

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

Takže cURL je v poriadku, ak je to namiesto toho chyba PHP, potom je problém.

Najprv samozrejme skontrolujte súbor php.ini, nájdite tam riadok

Prípona=php_curl.dll

A uistite sa, že pred ním nie je bodkočiarka.

Ak je to tak a cURL nefunguje, je možné vykonať ďalší test na potvrdenie nezvyčajnej situácie. Vytvorte ďalší súbor php s obsahom:

Vyhľadajte v prehliadači cURL, ak existuje iba jedna zhoda, modul cURL sa nenačíta:

Zároveň Apache aj PHP fungujú ako obvykle.

Tri riešenia:

  1. Metóda jedna (nie kóšer). Ak máte PHP 5.6.*, vezmite verziu PHP 5.6.0, odtiaľ vezmite starý súbor php_curl.dll a nahraďte ho novým z verzie, napríklad PHP 5.6.4. Pre tých, ktorí majú PHP 5.5.17 a vyššie, musíte vziať rovnaký súbor z PHP 5.5.16 a nahradiť ho tiež. Jediným problémom je nájsť tieto staré verzie. Môžete sa, samozrejme, pohrabať v http://windows.php.net/downloads/snaps/php-5.6 , no osobne som tam nenašiel to, čo som potreboval. A samotné rozhodnutie akosi nie je celkom kóšer.
  2. Druhý spôsob (veľmi rýchly, ale tiež nie kóšer). Skopírujte súbor libssh2.dll z adresára PHP do adresára Apache24bin a reštartujte Apache.
  3. Metóda tri (kóšer – kóšer ľudia tlieskajú v stoji). Musíte pridať svoje PHP adresár v PATH. Ako to urobiť, je veľmi dobre popísané v oficiálnej dokumentácii.

Kontrolujeme:

Voila, sekcia cURL je na mieste.

prečo je to tak? Kde sa vzal tento problém? Na túto otázku neexistuje odpoveď, hoci mechanizmus jej výskytu už bol popísaný.

Zdá sa, že problém súvisí so skutočnosťou, že 5.6.1 malo byť vydané s aktualizovanou knižnicou libcurl 7.38.0. Ale to nie je isté, autori PHP prikyvujú na Apache s tým, že tam sú nejaké chyby.

Mechanizmus problému: ak nie je zahrnutá systémová PATH PHP adresár, potom keď sa spustí služba Apache, nemôže nájsť novú dll (libssh2.dll), ktorá je závislosťou pre php_curl.

Relevantné hlásenia chýb:

Závažná chyba: Volanie nedefinovanej funkcie curl_multi_init() v ...

Vo všeobecnosti sa v PHP vyskytli problémy s cURL, zdá sa, ak nie vždy, potom veľmi často. V procese googlovania môjho problému som narazil na vlákna, z ktorých niektoré boli staré viac ako tucet rokov.

Okrem toho googlenie poskytlo niekoľko ďalších záverov:

Na internete je dosť "návodov pre debilov", v ktorých podrobne aj s obrázkami hovoria, ako odkomentovať riadok extension=php_curl.dll v súbore php.ini.

Na oficiálnej stránke PHP v časti o inštalácii cURL sú len dva návrhy týkajúce sa systému Windows:

Na prácu s týmto modulom v súbory systému Windows libeay32.dll a ssleay32.dll musia existovať v systéme premenná prostredia PATH. Nepotrebujete súbor libcurl.dll zo stránky cURL.

Čítal som ich desaťkrát. Prepnuté na anglický jazyk a prečítajte si to ešte niekoľkokrát v angličtine. Zakaždým som viac a viac presvedčený, že tieto dve vety napísali zvieratá, alebo niekto len tak skočil na klávesnicu – nerozumiem ich významu.

Je tam aj zopár bláznivých tipov a návodov (niektoré som stihla aj vyskúšať).

Na stránke PHP bug report som sa už priblížil k rozlúšteniu potreby zahrnúť adresár s PHP do systémovej premennej PATH.

Vo všeobecnosti platí, že pre tých, ktorí majú problém s cURL a ktorí potrebujú „zahrnúť adresár s PHP do systémovej premennej PATH“, prejdite na vyššie uvedený pokyn http://php.net/manual/ru/faq.installation .php#faq .installation.addtopath . Všetko je tam jednoduché, a čo je najdôležitejšie, to, čo treba urobiť, je napísané ľudskou rečou.

21 odpovedí

Možno už máte kučeru

Možno nebudete musieť nič sťahovať:

  • Ak používate Windows 10 verzie 1803 alebo novšej, váš operačný systém sa dodáva s kópiou curl už nakonfigurovanou a pripravenou na použitie.
  • Ak máte ezoterickejšie potreby (napr. potrebujete zostavy cygwin, zostavy tretích strán, libcurl, hlavičkové súbory, zdrojové kódy atď.), použite sprievodcu sťahovaním curl. Po zodpovedaní piatich otázok sa vám zobrazí zoznam odkazov na stiahnutie.

    Extrakcia a úprava zvlnenia

    Nájdite curl.exe v stiahnutom balíku; pravdepodobne je pod košom\ .

    Vyberte miesto na pevnom disku, ktoré bude slúžiť ako trvalý domov pre kučery:

    • Ak chcete vytvoriť svoj vlastný priečinok curl, urobí to C:\Program Files\curl\ alebo C:\curl\.
    • Ak máte veľa voľne spustiteľných súborov a nechcete do PATH pridávať veľa samostatných priečinkov, použite na tento účel jeden priečinok, napríklad C:\Program Files\tools\ alebo C:\tools\ .

    Umiestnite curl.exe do priečinka. A nikdy nepresúvajte priečinok ani jeho obsah.

    Ďalej budete chcieť sprístupniť curl kdekoľvek na príkazovom riadku. Ak to chcete urobiť, pridajte priečinok do PATH takto:

    1. Kliknite na ponuku Štart systému Windows 10. Začnite písať „prostredie“.
    2. Uvidíte výsledok vyhľadávania. Upravte premenné prostredia systému. Vyberte si to.
    3. Otvorí sa okno Vlastnosti systému. Kliknite na tlačidlo Premenné prostredia na spodku.
    4. Vyberte premennú "Cesta" v sekcii "Systémové premenné" (spodné pole). Kliknite na tlačidlo Zmeniť.
    5. Kliknite na " Pridať" a vložte cestu do priečinka, kde sa nachádza curl.exe.
    6. Kliknite dobre, ak je to potrebné. Zatvorte otvorené okná konzoly a znova ich otvorte, aby získali novú PATH.

    Teraz si vychutnajte písanie curl na ľubovoľnom príkazovom riadku. Čas na zábavu!

    Ak chcete spustiť curl z príkazového riadku

    a) Kliknite kliknite pravým tlačidlom myši ikona myši "Tento počítač"

    b) Vyberte "Vlastnosti"

    d) Kliknite na kartu [Rozšírené] – tlačidlo „Premenné prostredia“.

    e) V časti „Systémová premenná“ vyberte „Cesta“ a „Upraviť“

    f) Pridajte bodkočiarku a potom cestu k miestu, kam ste umiestnili súbor curl.exe (napr. D:\software\curl)

Teraz môžete spustiť z príkazového riadku zadaním:

Curl www.google.com

Počnúc systémom Windows 10 verzie 1803 (a starším s Insider Build 17063) už neinštalujete curl . Windows obsahuje svoj vlastný curl.exe (a tar.exe) v C:\Windows\System32\ , ku ktorému máte prístup priamo z bežného CMD .

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

Pravdepodobne stojí za zmienku, že Powershell v3 a vyššie neskoršie verzie obsahuje cmdlet Invoke-WebRequest, ktorý má určité možnosti curlingu. Za zmienku zrejme stoja cmdlety New-WebServiceProxy a Invoke-RestMethod.

Nie som si istý, či vám budú fungovať alebo nie, ale hoci nepoužívam Windows, musím povedať, že objektový prístup, ktorý používa PS, je oveľa jednoduchší na prácu s nástrojmi ako curl, wget atď. . Možno by stáli za pozretie

Môžete vytvárať Najnovšia verzia curl, openssl, libssh2 a zlib v 3 jednoduchých krokoch podľa tohto návodu.

Curl je postavený staticky, takže nemusíte prerozdeľovať potrebné dynamický čas exekúcie.

Môžete si tiež stiahnuť predpripravenú verziu (x86 a x64).

Hľadal som proces sťahovania zvlniť a každý, kde povedali, skopírujte súbor curl.exe v System32 ale neposkytli priamy odkaz. tak si tu môžete užiť curl.exeľahko dovnútra priečinok bin jednoducho

rozbaľte ho a potom prejdite do priečinka bin, kde získate súbor exe

Myslel som, že napíšem presne to, čo som urobil (Windows 10, 64-bitová verzia):

Vyberte spustiteľný súbor curl.

Vyberte Win64.

Vyberte si univerzálne.

Vyberte si ľubovoľné.

curl verzia: 7.53.1 - SSL povolené SSH povolené. Poďakovanie: Viktor Shakats. Tento balík je spustiteľný typ curl. Tento odkaz vám poskytne predkompilovaný binárny súbor curl (alebo v niektorých prípadoch pomocou informácií uvedených na stránke, na ktorú vás tento odkaz prenesie). Môžete alebo nemusíte nainštalovať libcurl ako zdieľanú knižnicu/DLL. Súbor je zabalený pomocou 7zip. 7zip je formát súboru na zips.

Kliknite na stiahnutie.

V priečinku sťahovania by ste mali mať súbor curl-7.53.1-win64-mingw.7z.

Nainštalujte si 7-Zip, ak ho nemáte.

Kliknite pravým tlačidlom myši, 7-Zip, rozbaľte sem. Skopírujte a prilepte extrahovaný súbor niekde ako Z:\Tools\

Ak sa pozriete do priečinka bin, uvidíte curl.exe. Ak naň dvakrát kliknete, okno rýchlo zabliká a zmizne. Ak ho chcete spustiť, musíte použiť príkazový riadok. Prejdite do priečinka bin a napíšte curl a potom svoje možnosti na odoslanie požiadavky. Musíte použiť dvojité úvodzovky . Jednoduché úvodzovky nebudú fungovať so zvlnením v systéme Windows.

Teraz musíte do vlastnej premennej Path pridať zvlnenie, aby ste nemuseli ísť do požadovaný priečinok na spustenie programu. Prejdite na „Tento počítač“, „Počítač“, „Vlastnosti systému“, „ Extra možnosti systém", prihláste sa ako správca (nie ste správca, však?). Premenné prostredia, systémové premenné, pozrite sa na zoznam a vyberte "Cesta", potom "Upraviť", potom Nový, potom napr.

z:\tools\curl-7.53.1-win64-mingw\bin

Ak chcete, môžete pridať spätné lomítko, myslím, že na tom nezáleží. Stláčajte tlačidlo pre posun nahor, kým sa nedostanete na začiatok zoznamu a nebudete ho môcť ľahko vidieť z predchádzajúcej obrazovky. Stlačte OK, OK, OK, potom otvorte príkazový riadok a môžete spustiť curl zadaním curl z ľubovoľného priečinka ako ktorýkoľvek používateľ. Nezabudnite na dvojité úvodzovky.

Toto je odpoveď, ktorú by som chcel dostať.

Tento inštalačný program mi to uľahčil http://www.confusedbycode.com/curl/

"CURL pre Windows môžete nainštalovať len niekoľkými kliknutiami. Jednoducho si stiahnite a spustite inštalačný program z tabuľky nižšie a kliknite na tlačidlo Inštalovať. Predvolená inštalácia zahŕňa.