2009-06-10 6 views
0

* Ceci est maintenant résolu * en effaçant le dossier temporaire dans Windows!Pourquoi appeler (ImageMagick) convert.exe à partir d'un script PHP entraînant une page qui ne répond pas?

Quelques infos - Windows Server 2003, IIS 6 ImageMagick 6.3.3 PHP 5.2.0

J'utilise ImageMagick pour redimensionner les images sur le serveur et je pense que cela a été récemment à l'origine des problèmes. Ce que je remarque, c'est que lorsque mon script PHP exécute la commande ImageMagick, la page Web se bloque et ne se recharge pas. En fait, j'ai trouvé que je dois effacer le cache et les cookies avant de pouvoir recharger la page et réessayer. J'ai isolé le problème à la ligne de code qui appelle le fichier imageMagick convert.exe. Je ne reçois aucune réponse et en utilisant Mozilla Firebug pour regarder le trafic, je peux voir qu'il n'y a pas de données retournées, aucune information sur la page étant appelée, il semble simplement se bloquer.

Le code qui appelle ImageMagick n'a pas changé et a toujours travaillé auparavant (environ 2 ans!) Et est la suivante -

$cmd = "convert.exe \"". $uploadfile . "\" -resize \"" . res_image_width ."x" . res_image_height . ">\" \"". $uploadfile. "\" 2>&1"; 
    passthru($cmd); 
    //system($cmd); 
    //exec($cmd); 

(je l'ai normalement utilisé passthru mais j'ai essayé exec et système pour voir si Je peux retourner des informations.)

Je peux exécuter les commandes ImageMagick à partir de la ligne de commande sans problème et les images sont redimensionnées correctement ... donc ImageMagick semble fonctionner correctement, il semble que ce soit la communication PHP -> ImageMagick c'est le problème. Je espère redémarrer pourrait le résoudre. Connaissez-vous autre chose que cela pourrait être? Comment pourrais-je déboguer cela?

merci beaucoup

Répondre

1

Etes-vous en mesure d'exécuter d'autres commandes à l'aide passthru? par exemple: passthru("dir");

Et est res_image_width supposé être $res_image_width? Assurez-vous que error_reporting est activé (incluez error_reporting(E_ALL); en haut de votre script).

+0

merci pour l'astuce au sujet de error_reporting ... d'ailleurs j'ai trouvé que le dossier temporaire sur Windows était chocka alors j'ai supprimé quelques fichiers et tout a recommencé à fonctionner ... Je mettrai à jour la question pour le montrer. – undefined

Questions connexes