Почему при вызове (ImageMagick) convert.exe из PHP-скрипта страница не отвечает - PullRequest
0 голосов
/ 10 июня 2009

* Теперь это решено * путем очистки временной папки в Windows!

Некоторая информация - Сервер Windows 2003, IIS 6 ImageMagick 6.3.3 PHP 5.2.0

Я использую ImageMagick для изменения размера изображений на сервере, и я думаю, что в последнее время это вызывает проблемы. Что я заметил, так это то, что когда мой PHP-скрипт выполняет команду ImageMagick, веб-страница зависает и не перезагружается. На самом деле я обнаружил, что мне нужно очистить кеш и файлы cookie, прежде чем я смогу перезагрузить страницу и повторить попытку. Я выделил проблему в строке кода, которая вызывает imageMagick convert.exe. Я не получаю ответа и, используя Mozilla Firebug для просмотра трафика, вижу, что данные не возвращаются, информация о вызываемой странице отсутствует, просто кажется, что она зависает.

Код, который вызывает ImageMagick, не изменился и всегда работал ранее (около 2 лет!) И выглядит следующим образом -

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

(Я обычно использовал passthru, но я попробовал exec и system, чтобы посмотреть, смогу ли я вернуть некоторую информацию.)

Я могу запускать команды ImageMagick из командной строки без проблем, и изображения корректно изменяются в размерах ... поэтому ImageMagick, кажется, работает нормально, просто проблема заключается в связи PHP -> ImageMagick. Я надеюсь, что перезапуск может решить это. Вы знаете что-нибудь еще, что это может быть? Как мне отладить это?

большое спасибо

1 Ответ

1 голос
/ 10 июня 2009

Вы можете запускать другие команды, используя passthru? например: passthru("dir");

И res_image_width должно быть $res_image_width? Убедитесь, что у вас включен error_reporting (включите error_reporting(E_ALL); вверху вашего скрипта).

...