Discussion:
librairie gd en mode console
(trop ancien pour répondre)
Gilles RONSIN
2008-02-11 21:31:50 UTC
Permalink
Salut,
Je génère un rapport HTML avec des graphiques générés par GD2 qui
sera lancé par un "cron" (actuellement sous windows je lance par
"php.exe monscript.php")

pour tester la fonctionnalité j'utilise ce script :

ob_start();
$img=ImageCreateFromPng("img/test.png");
ImagePng($img,NULL);
$data=ob_get_contents();
ob_end_clean();
addIMG($data); //cette fonction ajoute l'image encodée en base64
au mail

avec le navigateur ça marche (youpi!)
mais en lançant dans une fenêtre de commande j'ai l'erreur

Fatal error: Call to undefined function ImageCreateFromPng() in C:
\wamp\www\mail.php on line 140

Call Stack:
0.0017 141008 1. {main}() C:\wamp\www\mail.php:0

Comme si la bibliothèque GD n'était pas disponible.
C'est normal ? Il y a quelque chose à faire ?

merci
Antoine Polatouche
2008-02-12 06:52:21 UTC
Permalink
Post by Gilles RONSIN
Salut,
Bonjour,
Post by Gilles RONSIN
Je génère un rapport HTML avec des graphiques générés par GD2 qui
sera lancé par un "cron" (actuellement sous windows je lance par
"php.exe monscript.php")
<snip>
Post by Gilles RONSIN
avec le navigateur ça marche (youpi!)
mais en lançant dans une fenêtre de commande j'ai l'erreur
\wamp\www\mail.php on line 140
0.0017 141008 1. {main}() C:\wamp\www\mail.php:0
Comme si la bibliothèque GD n'était pas disponible.
C'est normal ? Il y a quelque chose à faire ?
Est-ce que tu utilise le même executable php dans les deux cas?
Ajoute un phpinfo() pour voir quel php.ini est utilisé dans l'un et
l'autre cas. Ca peut-être une cause...
Gilles RONSIN
2008-02-12 08:53:19 UTC
Permalink
Antoine Polatouche <***@galacsys.com>, le mar. 12 févr. 2008
07:52:21, écrivait ceci:

Salut,
(je répond aussi à Olivier)
Post by Antoine Polatouche
Est-ce que tu utilise le même executable php dans les deux cas?
Ajoute un phpinfo() pour voir quel php.ini est utilisé dans l'un et
l'autre cas. Ca peut-être une cause...
En effet, il y a 2 php.ini. Un dans .\apache2\bin et un dans .\php
l'interface wampmanager pointe dans celui d'apache et php dans l'autre.
Au niveau configuration c'est un vrai bordel... je vais tout mettre à
plat et uniformiser tout ça...

Merci à tous les 2 pour la piste en tout cas.
Gilles RONSIN
2008-02-12 13:06:49 UTC
Permalink
Gilles RONSIN <***@please.invalid>, le mar. 12 févr. 2008
09:53:19, écrivait ceci:

Pour info :
j'ai créé une jonction pour que le php.ini du répertoire php pointe sur
le php.ini du répertoire appache2\bin
et tout roule.
Il ne me reste plus qu'à réussir à générer mes graphiques. C'est le
plus dûr à cause des fonctions asynchrones qui font que mes graphiques
ne sont pas encore dessinés quand je devrait les traiter.
Merci pour vos coups de main.
Mickaël Wolff
2008-02-14 19:13:50 UTC
Permalink
Post by Gilles RONSIN
Au niveau configuration c'est un vrai bordel... je vais tout mettre à
plat et uniformiser tout ça...
Pour quelqu'un qui travail sous MS Windows, ça ne m'étonne pas
d'entendre ça. S'il y a deux fichiers de configuration, c'est qu'il y a
une raison.

Je travaille classiquement avec des distribution Debian GNU/Linux ou
dérivé. PHP est disponible sous forme de paquets. Chez moi sont
installés php-bin, php-cgi et libapache2-mod-php5. Pour chacun de ces
paquets, un fichier de configuration existe :

/etc/php5/apache2/php.ini
/etc/php5/cli/php.ini
/etc/php5/cgi/php.ini

C'est fait ainsi parce que certaines options de configuration de PHP
ne sont pas forcément pertinentes pour une exécution en ligne de
commande ou en module PHP. Par exemple, quel est l'intérêt pour la
version module Apache PHP de charger le module PHP GTK+ ? Les
applications CLI doivent-elles partager le même fichier de log des
erreurs que le module Apache ?

Aussi je te conseille de revenir en arrière, et à considérer que le
PHP en ligne de commande n'est pas exactement le même que le PHP chargé
en module. Il doit bien y avoir une option dans le package que tu as
installé pour pouvoir configurer le PHP dans chacune de ces utilisations.

En espérant être lu malgré mon approche ^^;
--
Mickaël Wolff aka Lupus Michaelis
http://lupusmic.org
Gilles RONSIN
2008-02-14 22:15:12 UTC
Permalink
Mickaël Wolff <***@laposte.net>, le jeu. 14 févr. 2008
20:13:50, écrivait ceci:

Salut Mickaël,
Post by Mickaël Wolff
Pour quelqu'un qui travail sous MS Windows, ça ne m'étonne pas
d'entendre ça. S'il y a deux fichiers de configuration, c'est
qu'il y a une raison.
Je ne travaille pas que sous Windows (la plupart du temps je n'ai même
pas d'OS). Mais j'utilise les outils qui me sont fournis par mon
employeur.
Post by Mickaël Wolff
Je travaille classiquement avec des distribution Debian
GNU/Linux ou
dérivé. PHP est disponible sous forme de paquets. Chez moi sont
installés php-bin, php-cgi et libapache2-mod-php5. Pour chacun de
/etc/php5/apache2/php.ini
/etc/php5/cli/php.ini
/etc/php5/cgi/php.ini
Les hébergements de mes serveurs (que l'on gérait jusqu'à présent sous
diverses versions de NT) seront bientôt assurés par des pro qui
utilisent des versions de Linux pro (avec licence). Ce que je ne
connais pas de tout. Aussi toute information est la bienvenue.
Post by Mickaël Wolff
C'est fait ainsi parce que certaines options de configuration de PHP
ne sont pas forcément pertinentes pour une exécution en ligne de
commande ou en module PHP. Par exemple, quel est l'intérêt pour la
version module Apache PHP de charger le module PHP GTK+ ? Les
applications CLI doivent-elles partager le même fichier de log des
erreurs que le module Apache ?
Tu as certainement raison. Il faudrait que je passe du temps pour
éplucher les différentes configurations et les ajuster en fonction de
mes besoins. D'autant plus que lorsque je n'aurais plus la maitrise des
configurations, il me sera difficile de gérer à distance des paramètres
que je ne connais pas.
Post by Mickaël Wolff
Aussi je te conseille de revenir en arrière, et à considérer que le
PHP en ligne de commande n'est pas exactement le même que le PHP
chargé en module. Il doit bien y avoir une option dans le package
que tu as installé pour pouvoir configurer le PHP dans chacune de
ces utilisations.
Oui. Celà dit j'ai besoin de tester le fonctionnement des scripts, en
faisant comme j'ai fait, j'ai juste permis de valider l'algorithme qui
me permet d'obtenir le résultat escompté. Les réglages sur les serveurs
définitifs ne m'incomberont plus.
Post by Mickaël Wolff
En espérant être lu malgré mon approche ^^;
Bien sûr, puisque c'est constructif. J'ai tellement de choses à
apprendre et tellement peu de temps à y consacrer...

Merci pour tes remarques en tout cas.

Olivier Miakinen
2008-02-12 06:52:21 UTC
Permalink
Post by Gilles RONSIN
Je génère un rapport HTML avec des graphiques générés par GD2 qui
sera lancé par un "cron" (actuellement sous windows je lance par
"php.exe monscript.php")
[...]
\wamp\www\mail.php on line 140
0.0017 141008 1. {main}() C:\wamp\www\mail.php:0
Comme si la bibliothèque GD n'était pas disponible.
Les paramètres de lancement en ligne de commande sont-ils les mêmes que
depuis le serveur web ? Le php.ini est-il trouvé au même endroit ? Ou à
deux endroits différents mais avec le même contenu ?


Je te suggère d'essayer le script suivant au lieu de celui qui appelle
une fonction de GD :

<html>
<head>
<title>phpinfo()</title>
</head>
<body>
<?php phpinfo() ?>
</body>
</html>

Tu nous tiens au courant ?
Continuer la lecture sur narkive:
Loading...