Installer curl sur PHP cli
Je vais essayer de mettre en place une tâche cron qui nécessite curl, et je suis d'appeler directement à partir de crontab avec
* * * * * /usr/bin/php myurl/my_cron.php
Le problème est, il ressemble à la boucle module n'est pas installé pour mon phpcli.
Il fonctionne très bien lorsque je tape l'url de mon navigateur, mais quand je lance
php -q myfile.php
à partir de la ligne de commande, il retourne
PHP Fatal error: Call to undefined function curl_init() in my_cron.php on line 20
Quand je lance php -m
le curl module ne s'affiche pas. Cependant lorsque je vais sur le navigateur et le vidage de l'php_info(), le module se montre et dit son correctement installé.
L'autre bosse est que j'ai essayé d'installer curl avec apt-get
sur le serveur (Ubuntu 12.04 php 5.4), il semble prendre vers le bas de mon PHP comme il commence à simplement essayer de télécharger le index.php
fichier où j'essaie de parcourir.
Ici sont les tentatives que j'ai fait pour installer curl qui ont pris vers le bas de PHP:
sudo apt-get install php-curl
sudo apt-get install curl libcurl3 libcurl3-dev php5-curl
Après chacun de ces j'ai redémarré le serveur apache2 et toujours pas de dés, il a tenté de télécharger le fichier au lieu de l'ouverture de la page.
Comment puis-je installer php5-curl
juste la cli, de sorte que mon serveur puisse l'exécuter, et je n'ai pas à passer par un navigateur?
L'autre possibilité est que je pourrait exécuter les tâches cron via wget à partir du fichier crontab, mais j'ai entendu dire que c'est pas la meilleure option et potentiellement peu fiables.
Toute aide est très appréciée. Merci!
source d'informationauteur user2966822
Vous devez vous connecter pour publier un commentaire.
J'ai eu le même problème. Mais, enfin, je l'ai résolu en exécutant la commande suivante.
Redémarrer le serveur après l'installation. Cette réponse ne peut pas être utile pour l'utilisateur qui a demandé parce qu'il a demandé il y a deux mois. Mais, cela peut être utile pour les utilisateurs qui lisez ceci dans l'avenir.
Voici comment j'ai résolu ce sur ubuntu 14.04 quand curl travaillait dans les fichiers php exécuté par apache, mais pas lorsqu'il est appelé à partir de la cli.
ssh à votre serveur et cd /
Exécutez la commande rechercher pour localiser l'endroit où la boucle binaire est suspendue à la. Si vous ne trouvez pas le fichier, vous devrez peut-être installer curl et exécutez la commande rechercher de nouveau.
Maintenant vous voulez modifier le php.ini utilisé pour les fichiers php d'exécuter à partir de la cli (il est différent de celui utilisé par apache), et est probablement à /etc/php5/cli/php.ini
Vous pouvez également exécuter
Pour obtenir le chemin d'accès du fichier, juste pour être sûr.
Dans votre php.le fichier ini de la recherche de [curl] en appuyant sur ctrl + w
Maintenant vous voulez ajouter l'extension du fichier et il devrait ressembler à quelque chose comme ce qui suit, si votre chemin d'accès à la boucle.donc fichier et telle pourrait être un peu différent:
Après avoir fait de la ci-dessus, j'ai été en mesure d'utiliser curl en exécution des scripts php à partir de la cli.
Si vous utilisez l'interface de ligne de commande ('cli') pour
php5
au lieu deveuillez utiliser:
php5-curl
semble permettre lacurl
module pour la cliphp5
et pasphp
et les deux (can), en charge différentes configurations et les modules.J'utilise ubuntu 14.04 et php 5.3. Après la mise à jour de php 5.6.29 j'ai aussi a un problème avec php curl. Ma structure de répertoire après la mise à jour de php 5.6.29:
/etc/php5 - ancienne version (5.3)
/etc/php/5.6 - nouvelle version
La commande suivante
n'a pas aidé (dirait qu'il se connecte à la vieille version de php - 5.3).
J'ai trouvé l'article suivant: php 5.6 pour magento
Il des conseils pour utiliser la commande
apt-get -y install php5.6-curl
au lieu de
apt-get -y install php5-curl
Ça marche pour moi!
La première chose que vous devriez toujours vérifier est votre php.fichier ini. Vous devriez avoir un php.fichier ini dans la racine de votre serveur web. Curl est installé par défaut sur la plupart des serveurs web; je n'ai pas trouvé un serveur web avec PHP qui n'a pas déjà eu curl installé. Ce n'est pas toujours activé.
Vérifier votre votre php.fichier ini et de recherche pour php_curl.dll il devrait ressembler à ceci:
;extension=php_curl.dll
Juste enlever le point-virgule (;) avant de "prolongation" et enregistrez le fichier. Il doit travailler tout de suite. En fonction de vos phpinfo.php il est déjà installé, donc il est probable que doit être activé.
Une question similaire peut être trouvée ici si vous êtes intéressés: Appel de fonction non définie curl_init()
d'abord trouver la version de votre php cli par:
par exemple, si il en était à la version 7 alors:
cela vous donnera le bon module de noms pour votre version actuelle:
afin d'ajouter curl support, copiez le nom de curl module à partir de la liste ci-dessus, puis effectuez les opérations suivantes:
Au cas où quelqu'un atteint ici pour trouver la version windows de l'exécution de curl.
Ouvrir
php.ini
et enlever le ; avantextension=php_curl.dll
autour de la ligne 656.Je suis à peu près sûr de ce que Apache charge est
C:\wamp\bin\apache\Apache2.2.17\bin\php.ini
donc vous pouvez trouver le roulage de travail à partir du navigateur.Mais lorsque php est exécuté en ligne de commande, alors il peut montrer de fonction inconnue
curl_init();
Exécuter
php -r "echo php_ini_loaded_file();"
dans la ligne de commande pour voir les fichier ini est en cours de chargement.Généralement trouvés à l'intérieur de
C:\wamp\bin\php\php5.3.5\php.ini
son un fichier différent de ce que Apache. Afin de l'ouvrir puis de supprimer le ; avant extension=php_curl.dll autour de la ligne 656.Espère que cela aide quelqu'un.