J'ai installé wampserver2 avec php526 et en plus php522. gd2 est activée. Les scripts utilisant des ordres tels que "imagecreatetruecolor" ou "imagejpeg" n'ont aucun effet en local alors qu'ils fonctionnent très bien sur un serveur distant (aussi php5). Comme si qqchose empêchait le script d'enregistrer une image sur le disque local, alors qu'un fichier texte s'écrit sans problème sur ce même disque. Le pare-feu est désactivé pour Apache; le problème existe même si le pare-feu est désactivé complètement. Avec la version précédente wamp5 sur mon ancien PC, aucun problème.
En local, sous Windows XP Home SP3, Wampserver 2.0c, imagecreatetruecolor, imagecreate, imagecreatefromjpeg et tutti-quanti fonctionnent très bien, je m'en sert quasiment tous les jours pour créer des vignettes à partir de « grosses » images.
La première chose à faire est de vérifier s'il n'y a pas des erreurs ou avertissements qui ne seraient pas visibles.
Dans le fichier "wamp/bin/apache/apache2.2.8/bin/php.ini" mettre (ou modifier si existant) :
display_errors = On
error_reporting = E_ALL
et ne pas mettre d'arobase (@) au début du mon des fonctions, par exemple ne pas écrire "@imagecreatetruecolor" mais "imagecreatetruecolor"
affiche seulement "debut", aucun message d'erreur. Comme si "imagecreatetruecolor" interrompait l'exécution du script, qui affiche alors ce qu'il a exécuté avant cet ordre, sans autre réaction.
Précision: dans le fichier apache-error.log il y a cette dernière ligne (le script plus haut a fonctionné en dernier):
[Wed Dec 03 08:59:07 2008] [error] [client 127.0.0.1] PHP Fatal error: Call to undefined function imagecreatetruecolor() in D:\\wamp\\www\\sapin\\cible.php on line 3
"undefined function": je viens de vérifier, l'extension php_gd2 est bien cochée!
- 1 - Vous voyez l'utilité de mettre display_errors = On et error_reporting = E_ALL, au moins pour le développement et la mise au point.
- 2 - Lors du lancement de la page localhost, dans la liste des extensions chargées, "gd" est-il présent ?
- 3 - À priori, gd n'est pas chargé car, pour imagetruecolor : Suivant votre version de PHP et de GD, cette fonction est définie ou non. De PHP version 4.0.6 à la version 4.1.x, cette fonction existe toujours si le module GD est chargé, mais l'appeler sans avoir GD2 d'installé fera que PHP lancera une erreur fatale et sortira. Avec PHP 4.2.x, ce comportement est différent et PHP lancera une alerte au lieu d'une erreur. Pour les autres versions de PHP, cette fonction n'est définie que si une version correcte de GD est installée.
À essayer (Comme d'ailleurs pour tous les cas où une extension est cochée, mais pas chargée) :
- Icône Wampserver - PHP, Extensions PHP, décocher php_gd2 - Attendre au moins dix secondes - PHP, Extensions PHP, cocher php_gd2 - Attendre au moins dix secondes - Quitter Wampserver - Attendre cinq secondes - Lancer Wampserver - Vérifier avec localhost que gd fait partie des extensions chargées.
Bonjour, Merci pour cette suite de réponse à mon problème. Effectivement, GD2 était cochée dans les extensions, activée dans php.ini, mais grâce à "localhost" on voit qu'elle n'est PAS CHARGEE . - Le fichier "php_gd2.dll" existe bien dans le dossier wamp\bin\php\php5.2.6\ext - Les manipulations que vous avez eu la gentillesse d'indiquer n'ont eu aucun effet.
J'ai alors désinstallé complètement WAMP, tout nettoyé et réinstallé WAMP. A l'origine, l'état de la configuration toute neuve est toujours le même: GD2 est coché dans les extensions, actif dans php.ini, librairie présente dans son dossier, mais pas activé dans localhost... la répétition des manipulations plus haut n'ont toujours rien donné, impossible de charger réellement la librairie... je sèche!
j'ai comme une vague réminiscence de problèmes similaires du à l'ordre de chargement des extensions.
Pour essais, je vous mets ci-dessous la partie de "wamp/bin/apache/apache2.2.8/bin/php.ini" concernant le chargement des extensions. (Si vous utilisez apache 2.2.10, prendre la bonne branche).
Je vous conseille, avant de lancer Wampserver, de remplacer toute la partie de chargement des extensions par celle-ci qui fonctionne parfaitement, sans changer l'ordre et sans commenter ou décommenter une ligne :
Bonjour, J'ai fait comme indiqué, rien n'y a fait. De guerre lasse, j'ai désinstallé Wampserver 2, et j'ai réinstallé Wamp 5 (avec php 522) dont j'avais gardé une trace... et ça marche. On dirait qu'il y a une incompatibilité entre php 526 et ma machine. Mais la vie continue!