[RESOLU] lancer un script php en ligne de commande ubuntu.

Eléphanteau du PHP | 10 Messages

16 mai 2014, 10:03

Bonjour,

Svp j'aimerais savoir comment lancer un script php en ligne de commande ubuntu sans avoir besoin d'ouvrir la page dans un navigateur.Je ne sais pas si j'utilise la bonne technique.
dans mon code ,je crée une instance curl et je l’exécute.ensuite il y' a le chargement d'une base de données mysql.Quand j'ouvre la page sur un navigateur pour exécuter le fichier php, je vois le nouvel élément inséré dans ma base sur phpmyadmin.ca marche super bien!je n'ai pas d'erreur.Mais en ligne de commande (via la commande php my-script.php ) ,ça bloque j'ai des erreurs :

PHP Notice: Use of undefined constant CURLOPT_URL - assumed 'CURLOPT_URL' in /opt/lampp/htdocs/my_test/my_script.php on line 33
PHP Notice: Use of undefined constant CURLOPT_RETURNTRANSFER - assumed 'CURLOPT_RETURNTRANSFER' in /opt/lampp/htdocs/my_test/my_script.php on line 34
PHP Notice: Use of undefined constant CURLOPT_HEADER - assumed 'CURLOPT_HEADER' in /opt/lampp/htdocs/my_test/my_script.php on line 35
PHP Fatal error: Call to undefined function curl_init() in /opt/lampp/htdocs/my_test/my_script.php on line 38

mon code a plus ou moins cette forme :

#!/usr/bin/php
<html>
<head>
<title> my_script </title>
</head>

<body>

<?php

$url ='http://www.example.com';

$options=array(
CURLOPT_URL => $url,
CURLOPT_RETURNTRANSFER => true,
CURLOPT_HEADER => true
);

$curl = curl_init();

curl_setopt_array($curl,$options);
try
{
$content = curl_exec($curl);
}
catch (Exception $e)
{
die('Erreur : ' . $e->getMessage());
}

// INSERT ds une base de données mysql

?>

</body>
</html>

ViPHP
xTG
ViPHP | 7331 Messages

16 mai 2014, 10:15

PHP Fatal error: Call to undefined function curl_init()
Le module Curl n'est donc pas activé pour PHP-CLI.
J'avoue ne jamais l'avoir utilisé donc ne pas pouvoir t'en dire plus...
N'y a-t-il pas un php.ini spécifique pour PHP-CLI ou bien une section spécifique dans le php.ini ?

ViPHP
ViPHP | 2577 Messages

16 mai 2014, 10:35

Oui, il y a 2 php.ini pour debian et ubuntu.
De mémoire /etc/php5/apache2/php.ini et /etc/php/cli/php.ini.
Une partie de la config se trouve dans un sous-répertoire dans le même répertoire que chaque php.ini pour les modules.

Vérifie l'installation du paquet php5-curl en premier (dpkg -l |grep curl).

Autrement ajoute des quotes pour supprimer les autres messages.

Eléphanteau du PHP | 10 Messages

16 mai 2014, 12:03

Bonjour,

apparemment il me fallait installer certaines librairies.j'ai vu quelque part quelqu'un qui a eu le même problème.

sudo apt-get install php5-curl curl libcurl3 libcurl3-dev

ça marche maintenant.
merci