Extensia PHP “php_curl.dll” nu poate fi incarcata

Extensia PHP curl nu poate fi incarcata din biblioteca cu extensii C:\Server\Php\ext\ (locul unde a fost instalat PHP) pe Windows 7 x64 desi in folder exista modului php_curl.dll C:\Server\Php\ext\php_curl.dll

Recent am instalat Apache, PHP si MySQL (separat, adica nu am instalat pachele ca XAML / WAMP) pe Windows 7 Professional arhitectura cu x64. Instalarea a decurs cu succes, pana cand am dorit sa folosesc unul din modulele din pachetul PHP curl. Dupa lungi cautari am gasit de fapt solutia pentru a merge curl pe PHP (Versiunea 5.3.5).

Atunci cand accesam fisierul PHP care avea implementata functia curl_init() sau curl_multi_init() imi apareau erori ca

Fatal error: Call to undefined function curl_init() in D:\SERVER\testcurl.php on line 50

Fatal error: Call to undefined function curl_multi_init() in F:\SERVER\website\functions.php on line 10

Cu toate ca nu intelegeam de ce se intampla asta am inceput sa studiez problema in detaliu pentru ca aveam nevoie de aceast modul in functiile mele.

Pasi pentru a activa curl:

  • Prima data verifica daca ai scos comentariul din fisierul php.ini de la linia care contine extension=php_curl.dll .
    ;extension=php_curl.dll -> extension=php_curl.dll
    Acest lucru inseamna ca PHP va sti sa incarce modului curl din bibloteca cu extensii. Dupa ce s-a facut modificarea se va da restart la Apache. Pentru a verifica daca merge va trebui sa scrii intr-ul fisier php codul urmator:
    <?php
    phpinfo();
    ?>

    In cazul in care nu da nici un semn sa mearga si dupa rularea acestui fisier se cauta dupa cuvantul curl si nu se gaseste, in acelasi caz ca si la mine va trebuie sa procedam ca la urmatoarele etape.
  • Se verifica tot in php.ini daca s-a setat extension_dir = “C:\Server\Php\ext” (cazul in care la mine C:\Server\Php este folderul in care se afla PHP) eliminandu-se comentariul din fata.
  • Fii sigur ca la instalarea si configurarea pachetului PHP ai adaugat C:\Server\Php\ la Environment PATH
  • Ai ajuns in acest punct si tot nu merge sa utilizezi modului curl. Nu te teme ca acest lucru s-a intamplat si la mine. Ceea ce o sa iti spun in continuare nu e complicat. O sa dorim sa vedem dependenta fisierului php_curl.dll, adica de ce alte fisiere este nevoie pentru a putea rula in conditii normale. Pentru aceasta este nevoie de un program gratuit numit dependency walker. Poate fi descarcat de aici sau cautand pe google. Acest program iti va arata care dintre fisiere lipsesc.

 

Dependency Walker

  • Dupa cum se vede in imagine mie imi lipsesc: libeay32.dll , ssleay32.dll si php5ts.dll. Ce inseamna asta este ca aceste fisiere nu se afla in sistem. Vor trebui cautate si pune in sistem. Aceste 3 fisiere vor trebui cautate cu Google (desi nu ar fi prea indicat), descarcate de aici sau cautate cu functia de search din Windows 7 in folderul in care e instalat PHP.
  • Ai facut rost de aceste 3 fisiere: libeay32.dll , ssleay32.dll si php5ts.dll si acum urmeaza sa le pui in folderul de sistem din Windows C:\Windows
  • Dupa ce ai copiat aceste fisiere trebuie sa dai din nou restart la Apache dupa care sa verifici cu phpinfo(); (asa cum ti-am aratat mai sus) sa vezi daca curl apare. Problema mea asta a fost, pentru ca in windows nu existau aceste fisiere, sa speram ca ai noroc si la tine este aceeasi problema pentru a putea fi rezolvata.

Din fericire la mine a aparut curl, modului destul de folositor, asa cum se vede in imagine:

Curl Activ

Ai avut parte de o asemenea dificultate de problema?

About admin