web-dev-qa-db-fra.com

Comment faire fonctionner CURL avec PHP sous Windows? (WAMP)

Mise à jour : Le problème semble avoir été des DLL corrompues quelque part dans mon installation PHP, ou peut-être un bogue dans PHP 5.2. 9 sur Win2k. J'ai téléchargé la distribution Windows (binaires uniquement) de PHP 5.2.10 depuis php.net et l'ai extraite dans mon répertoire c:\PHP. Après cela, tout a bien fonctionné.

Update2 : J'ai défait tout ce que j'ai essayé plus tôt (tout dans la liste à puces ci-dessous), sauf que j'ai laissé " extension=php_curl.dll "Non commenté dans mon fichier php.ini. Il s'avère que c'est tout ce que vous devez faire dans une bonne installation.


J'essaie de faire fonctionner CURL sur une installation Windows de PHP (version 5.2.9-2), et je suis à bout de souffle. J'ai trouvé la page d'installation de CURL PHP , cette question SO qui fait référence cette page , et cette SO question . J'ai essayé la plupart des suggestions dans toutes ces pages mais j'obtiens toujours une erreur. Voici ma page de test très simple:

<?php
$ch = curl_init();
?>
<b>Success!</b>

Cela me donne:

Erreur fatale : appel à la fonction non définie curl_init () dans C:\ApacheRoot\curltest.php en ligne 2

Dans mon journal des erreurs Apache, j'obtiens ceci à chaque démarrage du serveur:

PHP Warning: PHP Startup: Unable to load dynamic library 'C:\\PHP\\ext\\php_curl.dll' - The specified procedure could not be found.\r\n in Unknown on line 0

J'ai fait ce qui suit:

  • Décommenté la ligne suivante dans php.ini: extension=php_curl.dll
  • ssleay32.dll Et libeay32.dll Copiés de C:\PHP vers C:\WINNT\System32
  • Téléchargé cURL pour Win32 de curl.haxx.se et extrait le fichier .Zip vers C:\cURL
  • C:\cURL Ajouté à ma variable d'environnement PATH système.
  • Vérifié que:
    • php.ini inclut extension_dir="C:\PHP\ext"
    • Le répertoire C:\PHP\ext Contient php_curl.dll
    • Le seul fichier php.ini Sur mon système se trouve dans C:\PHP (C'est-à-dire surtout qu'il n'y a pas de C:\WINNT\php.ini)
    • Le fichier Apache httpd.conf Comprend la ligne PHPIniDir "C:/PHP/"

J'ai également redémarré la machine (plusieurs fois, en fait ...).

29
Kip

Vous n'avez pas besoin de redémarrer l'ordinateur, redémarrez simplement Apache et le module php lira la nouvelle ini.
Avez-vous changé le bon php.ini? En cas de doute

<?php echo 'php.ini: ', get_cfg_var('cfg_file_path'); ?>

peut vous le dire.

Y a-t-il quelque chose dans le fichier error.log d'Apache qui indique que quelque chose s'est mal passé lors du chargement de php et de php_curl.dll?

Avez-vous démarré Apache en tant que service win32? Si vous avez essayé de le démarrer en tant qu'application console. Des messages d'erreur apparaîtront alors sur la console. Ou démarrez-le en tant que service et consultez le fichier error.log et le journal des événements de Windows (démarrer, exécuter, eventvwr.msc /s).

éditer:
"La procédure spécifiée est introuvable"
Vous avez besoin d'une DLL compatible avec votre version et votre build php. Qu'avez-vous installé exactement et d'où l'avez-vous obtenu?

9
VolkerK

Essaye ça:

  1. Arrêtez complètement WAMP.
  2. Recherchez votre dossier WAMP: C:\Path\To\WAMP\bin\Apache\ApacheVersion\bin \
  3. Modifiez ce php.ini et décommentez l'extension = php_curl.dll
  4. Redémarrez WAMP.

J'espère que cela devrait le résoudre.

* EDIT: Faites la même chose @ C:\Path\To\WAMP\bin\php\PHPVersion \

7
Mr. Smith

Avec PHP 5.6.9 sur Windows Server Core 2012 x64 cURL ne fonctionnait pas, ne s'affichant pas dans phpinfo malgré la décommentation de l'extension php_curl.dll dans mon php.ini et le redémarrage du service Apache 2.4. chemin php et le chemin php\ext vers mon chemin $ evn: Pas de joie.

Correction: je n'avais pas besoin de télécharger un autre fichier php_curl.dll et je n'ai pas pu en trouver un pour PHP 5.6 de toute façon. Ce qui a finalement fonctionné a été de copier ces trois fichiers dans le dossier Apache24\bin puis redémarrez Apache:

libeay32.dll

libssh2.dll

ssleay32.dll Il n'était pas nécessaire de les copier sur System ou System32.

1
DCR

C'est ce qui a fonctionné pour moi

Répondu par Soren d'un autre SO - CURL pour WAMP

"Il semble y avoir un bogue quelque part. Si vous rencontrez ce problème sur Win 7 64 bits, essayez d'installer le module complémentaire Apache version 2.2.9 et le module complémentaire php version 5.3.1 et de passer à ceux de WAMP, puis d'activer l'extension CURL. Cela a fonctionné pour moi."

1
Abhishek Rakshit

Cela m'a corrigé:

Allez ici:

http://www.anindya.com/php-5-4-3-and-php-5-3-13-x64-64-bit-for-windows/

Télécharger 'php_curl-5.3.13-VC9-x64.Zip'

Arrêter l'exécution du serveur WAMP

Extrayez le fichier 'php_curl.dll'.

Sur votre ordinateur local, accédez à (ou où se trouve votre installation WAMP) c:\wamp\bin\php\php5.3.13\ext

Renommez php_curl.dll en php_curl.dll.old (ou tout ce que vous choisissez), puis copiez le nouveau fichier dans le répertoire ci-dessus.

Redémarrez le serveur WAMP

Tout devrait bien fonctionner maintenant.

1
RustyIngles

J'ai eu le même problème avec php-5.5.26-Win32-VC11-x64 (sous Windows) et j'ai tout essayé sans succès. Enfin, je l'ai fait fonctionner en ajoutant répertoire d'installation PHP au chemin Windows .

1
Master Drools

Si le problème persiste après avoir décommenté le module des deux fichiers php.ini (dont les gens parlent déjà et qui se trouvent dans le dossier Apache et le dossier php) et même après avoir vérifié que vous avez obtenu le php_curl.dll ** sur

C:\WAMP\bin\php\php5.3.13\ext

VOUS DEVEZ ESSAYER DE REMPLACER L'ORIGINAL DLL COMES AVEC WAMPSERVER avec un de ce site:

http://www.anindya.com/php-5-4-3-and-php-5-3-13-x64-64-bit-for-windows/

Mon problème était là! J'espère que ça aide.

0
Lothre1