Dlouho jsem nic nenapsal. PHP, a tak jsem se rozhodl napsat malou sérii článků o velkolepém PHP modul - cURL. Ale než jej použijete, cURL musí být nainstalován na Denwer, protože v základní verzi tohoto balíčku kučera Vyloučeno.

Než přistoupíte k instalace cURL na Denwer, pojďme si krátce říci o možnostech, které poskytuje tento modul. kučera je pohodlný způsob, jak simulovat uživatelské akce na serveru. Ve skutečnosti můžete zkontrolovat odpověď serveru na konkrétní požadavek. Můžete například odeslat požadavky POST a uvidíte, co server dává. Chcete například zkontrolovat činnost autorizačního systému. Samozřejmě můžete také ručně zadat své uživatelské jméno a heslo prostřednictvím prohlížeče a sledovat, co se stane. Mnohem pohodlnější ale bude napsat malou sérii testů, ve kterých odesílání různé příklady přihlašovací jméno a heslo a zároveň se zobrazí odpověď ze serveru: úspěšná autorizace nebo ne. A už se díváte na to, zda autorizační skript funguje správně nebo ne. Používá se pro podobné účely modul cURL.

Teď se dáme do práce instalace modulu cURL na Denwer:

  • Stáhněte si balíček rozšíření: PHP5: další moduly“ na tomto odkazu: http://www.denwer.ru/packages/php5.html.
  • Nainstalujte stažený balíček (předem zastavte server, pokud je spuštěn).
  • V souboru " usr/local/php5/php.ini"odstranit komentář z řádku:" ;přípona=php_curl.dll“ odstraněním uvozovek na začátku řádku.
  • Spusťte server.
  • Zkontrolujte data phpinfo(). Pokud vidíte" podpora cURL povolena“, pak je vše v pořádku. Pokud ne, pak pečlivě zkontrolujte, zda jste provedli všechny kroky správně.

Myslím, že v příštím článku (a možná v jednom) si tento modul rozebereme již na příkladu jeho použití v PHP skripty tak nepřepínejte!

Krátký průvodce pro ty, kteří chtějí nastavit curl php na Windows 8.1 x64. Pokud curl není na vašem webovém serveru nakonfigurován, pak další chyba: Závažná chyba: Volání nedefinované funkce curl_init().

Nastavení cURL

To, co je napsáno níže, je relevantní pro spoustu 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. Stáhněte si knihovnu cURL http://winampplugins.co.uk/curl . Rozbalte do libovolné složky. Například "W:\WebServers\usr\local\curl".
  2. Rozšíření=php_curl.dll musí být povoleno v konfiguračním souboru PHP php.ini.
  3. Položka není povinná, ale v mnoha zdrojích se doporučuje ji provést. Funguje nám to i bez této položky. Ze složky, kde je nainstalován PHP, zkopírujte do složky „C:\Windows\system32“ následující knihovny: libssh2.dll, php_curl.dll (umístěné ve složce ext), ssleay32.dll, libeay32.dll. Navíc je nutné zkopírovat soubor ssleay32.dll do "C:\Windows\SysWOW64".
  4. Přidejte do proměnných prostředí v proměnné Path cestu k instalační složce curl.exe a souboru php.ini. Například "W:\WebServers\usr\local\curl;W:\WebServers\usr\local\php5". Velmi mě potěšilo, že v objevil se windows10 (1511). nové rozhraní editaci proměnných prostředí. Stalo se velmi pohodlné upravovat parametry.

Povolit podporu SSL pro cURL

  1. Stáhněte si soubor http://curl.haxx.se/ca/cacert.pem do složky, kde je nainstalována knihovna curl.exe.
  2. Přejmenujte stažený soubor na curl-ca-bundle.crt
  3. Chcete-li restartovat počítač.

Ti, kteří používají cURL po aktualizacích na 5.6.1, 5.5.17, čelili skutečnosti, že modul cURL přestal fungovat. Problém od té doby nezmizel. I v nejnovější verzi PHP 5.6.4 tento problém přetrvával.

Jak poznáte, že vám cURL funguje?

Vytvořit php soubor a zkopírujte tam:

Otevřete jej ze serveru. Pokud je výstup něco jako:

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

Takže cURL je v pořádku, pokud je to místo toho chyba PHP, pak je problém.

Nejprve samozřejmě zkontrolujte soubor php.ini, najděte tam řádek

Přípona=php_curl.dll

A ujistěte se, že před ním není středník.

Je-li tomu tak a cURL nefunguje, lze provést další test k potvrzení neobvyklé situace. Vytvořte další php soubor s obsahem:

Vyhledejte v prohlížeči cURL, pokud existuje pouze jedna shoda, modul cURL se nenačte:

Apache i PHP přitom fungují jako obvykle.

Tři řešení:

  1. Metoda jedna (ne košer). Pokud máte PHP 5.6.*, tak vezměte verzi PHP 5.6.0, odtud vezměte starý soubor php_curl.dll a nahraďte ho svým novým z verze, například PHP 5.6.4. Pro uživatele s PHP 5.5.17 a vyšší musíte vzít stejný soubor z PHP 5.5.16 a nahradit jej také. Jediným problémem je najít tyto staré verze. Můžete se samozřejmě šťourat v http://windows.php.net/downloads/snaps/php-5.6 , ale osobně jsem tam nenašel to, co jsem potřeboval. A samotné rozhodnutí jaksi není úplně košer.
  2. Druhá metoda (velmi rychlá, ale také ne košer). Zkopírujte soubor libssh2.dll z adresáře PHP do adresáře Apache24bin a restartujte Apache.
  3. Metoda tři (košer – košer lidé tleskají ve stoje). Musíte přidat svůj adresář PHP v PATH. Jak to udělat, je velmi dobře popsáno v oficiální dokumentaci.

Kontrolujeme:

Voila, sekce cURL je na svém místě.

proč tomu tak je? Kde se tento problém vzal? Na tuto otázku neexistuje odpověď, ačkoli mechanismus jejího vzniku již byl popsán.

Zdá se, že problém souvisí se skutečností, že 5.6.1 mělo být vydáno s aktualizovanou knihovnou libcurl 7.38.0. To se ale neví jistě, autoři PHP přikyvují na Apache s tím, že tam jsou nějaké chyby.

Mechanismus problému: pokud není zahrnuta systémová PATH adresář PHP, pak když se služba Apache spustí, nemůže najít novou dll (libssh2.dll), která je závislostí pro php_curl.

Relevantní hlášení chyb:

Závažná chyba: Volání nedefinované funkce curl_multi_init() v ...

Obecně se v PHP vyskytly problémy s cURL, zdá se, že když ne vždy, tak velmi často. V procesu googlování mého problému jsem narazil na vlákna, z nichž některá byla stará více než tucet let.

Navíc googlování přineslo několik dalších závěrů:

Na internetu je dost "návodů pro blbce", ve kterých podrobně i s obrázky vyprávějí, jak odkomentovat řádek extension=php_curl.dll v souboru php.ini.

Na oficiálních stránkách PHP v sekci o instalaci cURL jsou pouze dva návrhy týkající se systému Windows:

Pro práci s tímto modulem v soubory Windows libeay32.dll a ssleay32.dll musí existovat v systému proměnná prostředí CESTA. Nepotřebujete soubor libcurl.dll ze stránky cURL.

Četl jsem je desetkrát. Přepnuto na anglický jazyk a přečtěte si to ještě několikrát v angličtině. Pokaždé jsem víc a víc přesvědčen, že tyto dvě věty napsala zvířata, nebo někdo jen skočil na klávesnici - nechápu jejich význam.

Nechybí ani bláznivé tipy a návody (některé se mi podařilo i vyzkoušet).

Na stránce PHP bug report jsem se již přiblížil k odhalení potřeby zahrnout adresář s PHP do systémové proměnné PATH.

Obecně pro ty, kteří mají problém s cURL a potřebují „zahrnout adresář s PHP do systémové proměnné PATH“, přejděte na již zmíněný návod http://php.net/manual/en/faq.installation .php#faq .installation.addtopath . Všechno je tam jednoduché, a co je nejdůležitější, to, co je potřeba udělat, je napsáno lidskou řečí.

21 odpovědí

Možná už máte loknu

Možná nebudete muset nic stahovat:

  • Pokud používáte Windows 10 verze 1803 nebo vyšší, váš operační systém je dodáván s kopií curl již nakonfigurovanou a připravenou k použití.
  • Pokud máte esoteričtější potřeby (např. potřebujete sestavení cygwin, sestavení třetích stran, libcurl, hlavičkové soubory, zdrojové kódy atd.), použijte průvodce stahováním curl. Po zodpovězení pěti otázek se vám zobrazí seznam odkazů ke stažení.

    Vytažení a úprava kadeře

    Najděte curl.exe ve staženém balíčku; pravděpodobně je pod košem\ .

    Vyberte místo na pevném disku, které bude sloužit jako trvalý domov pro kadeře:

    • Pokud si chcete vytvořit curl svou vlastní složku, udělá to C:\Program Files\curl\ nebo C:\curl\.
    • Pokud máte mnoho bezplatných spustitelných souborů a nechcete do PATH přidávat mnoho jednotlivých složek, použijte pro tento účel jedinou složku, například C:\Program Files\tools\ nebo C:\tools\ .

    Umístěte curl.exe do složky. A nikdy nepřesouvejte složku ani její obsah.

    Dále budete chtít zpřístupnit curl kdekoli na příkazovém řádku. Chcete-li to provést, přidejte složku do PATH takto:

    1. Klikněte na nabídku Start systému Windows 10. Začněte psát „environment“.
    2. Uvidíte výsledek hledání. Upravit systémové proměnné prostředí. Vyberte si to.
    3. Otevře se okno Vlastnosti systému. Klepněte na tlačítko Proměnné prostředí dole.
    4. Vyberte proměnnou "Cesta" v části "Systémové proměnné" (dolní pole). Klepněte na tlačítko Změna.
    5. Klikněte na " Přidat" a vložte cestu do složky, kde se nachází curl.exe.
    6. Klikněte OK, pokud je to potřeba. Zavřete otevřená okna konzoly a znovu je otevřete, aby získali novou PATH.

    Nyní si užijte psaní curl na libovolném příkazovém řádku. Čas na zábavu!

    Chcete-li spustit curl z příkazového řádku

    a) Klikněte klikněte pravým tlačítkem myši ikona myši "Tento počítač"

    b) Vyberte "Vlastnosti"

    d) Klikněte na záložku [Upřesnit] - tlačítko "Proměnné prostředí".

    e) V části „Systémová proměnná“ vyberte „Cesta“ a „Upravit“

    f) Přidejte středník a poté cestu k místu, kam jste umístili svůj curl.exe (např. D:\software\curl)

Nyní můžete spustit z příkazového řádku zadáním:

Curl www.google.com

Počínaje Windows 10 verze 1803 (a dřívější s Insider Build 17063) již nebudete instalovat curl . Windows obsahuje svůj vlastní curl.exe (a tar.exe) v C:\Windows\System32\ , ke kterému máte přístup přímo z normálního CMD .

C:\Users\vonc>C:\Windows\System32\curl.exe --verze curl 7.55.1 (Windows) libcurl/7.55.1 WinSSL Release-Date: Protokoly: soubor 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 --verze bsdtar 3.3.2 - libarchive 3.3.2 zlib/1.2.5.f- ipp

Pravděpodobně stojí za zmínku, že Powershell v3 a vyšší novější verze obsahuje rutinu Invoke-WebRequest, která má některé možnosti curlingu. Za zmínku pravděpodobně stojí rutiny New-WebServiceProxy a Invoke-RestMethod.

Nejsem si jistý, jestli vám budou fungovat nebo ne, ale ačkoli nejsem na Windows, musím říct, že mi přijde objektový přístup, který používá PS, mnohem snazší pracovat s nástroji jako curl, wget atd. . Možná by stálo za to se na ně podívat

Můžete tvořit Nejnovější verze curl, openssl, libssh2 a zlib ve 3 snadných krocích podle tohoto návodu.

Curl je postaven staticky, takže nemusíte přerozdělovat potřebné dynamický čas provedení.

Můžete si také stáhnout předpřipravenou verzi (x86 a x64).

Hledal jsem proces stahování kučera a každý, kde řekli, zkopírujte soubor curl.exe v System32 ale neuvedli přímý odkaz. tak tady si to můžete užít curl.exe snadno dovnitř složka bin jednoduše

rozbalte jej a poté přejděte do složky bin, kde získáte soubor exe

Myslel jsem, že napíšu přesně to, co jsem udělal (Windows 10, 64bitová verze):

Vyberte spustitelný soubor curl.

Vyberte Win64.

Vyberte univerzální.

Vyberte si libovolné.

curl verze: 7.53.1 - SSL povoleno SSH povoleno. Kredit: Viktor Shakats. Tento balíček je spustitelný typ curl. Tento odkaz vám poskytne předkompilovaný binární soubor curl (nebo v některých případech pomocí informací uvedených na stránce, na kterou vás tento odkaz zavede). Můžete nebo nemusíte nainstalovat libcurl jako sdílenou knihovnu/DLL. Soubor je zabalen pomocí 7zip. 7zip je formát komprimování souborů.

Klikněte na stáhnout.

Ve složce pro stahování byste měli mít soubor curl-7.53.1-win64-mingw.7z.

Nainstalujte 7-Zip, pokud jej nemáte.

Klikněte pravým tlačítkem, 7-Zip, rozbalte zde. Zkopírujte a vložte extrahovaný soubor někam jako Z:\Tools\

Pokud se podíváte do složky bin, uvidíte curl.exe. Pokud na něj dvakrát kliknete, okno rychle zabliká a zmizí. Chcete-li jej spustit, musíte použít příkazový řádek. Přejděte do složky bin a zadejte curl a poté vaše možnosti pro zadání požadavku. Musíte použít dvojité uvozovky . Jednoduché uvozovky nebudou fungovat s curl ve Windows.

Nyní musíte do vlastní proměnné Path přidat zvlnění, abyste nemuseli chodit do požadovanou složku ke spuštění programu. Přejděte na "Tento počítač", "Počítač", "Vlastnosti systému", " Extra možnosti system", přihlaste se jako správce (nejste správce, že? Ne?). Proměnné prostředí, systémové proměnné, podívejte se na seznam a vyberte "Cesta", pak "Upravit", pak Nový, pak např.

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

Pokud chcete, můžete přidat zpětné lomítko, myslím, že na tom nezáleží. Stiskněte tlačítko pro posun nahoru, dokud nebude v horní části seznamu a můžete jej snadno vidět z předchozí obrazovky. Stiskněte OK, OK, OK, poté otevřete příkazový řádek a můžete spustit curl zadáním curl z libovolné složky jako kterýkoli uživatel. Nezapomeňte na své dvojité uvozovky.

Toto je odpověď, kterou bych rád dostal.

Tento instalační program mi to usnadnil http://www.confusedbycode.com/curl/

"CURL pro Windows můžete nainstalovat pomocí několika kliknutí. Jednoduše si stáhněte a spusťte instalační program z tabulky níže a klikněte na Instalovat. Výchozí instalace zahrnuje.