php exec () не работает с правильной командой - PullRequest
0 голосов
/ 11 ноября 2011

Я использую xampp на Windows 7 для разработки своих программ, но у меня возникла проблема.

Я пытаюсь запустить ImageMagick через функцию exec ().

Вот мойОтрезанный код.

<?php
    $command = 'convert '.$tempOverlay.' '.$tempBg.' -compose Overlay -composite '.$tempImage;
    exec($command);
    die($command);
?>

Если я введу заполненную команду $ ( convert temp / 100000231446889-overlay.jpg temp / 100000231446889-bg.jpg -compose Overlay -composite temp / 100000231446889.jpg ) в моем cmd в нужной папке он работает отлично, но с его выполнением с помощью php я не получаю вывод ImageMagick.

Я проверил, если он выполняется в нужной папке через 'Echo% CD%', но егонужная папка.

Ответы [ 2 ]

3 голосов
/ 25 декабря 2011

Это может произойти, когда вы устанавливаете dll-версию imagemagick.Вам необходимо установить статическую версию.Как бы то ни было, imagemagick не может загружать свои собственные dll при вызове через php, и вывод ошибок imagemagick идет не в стандартный вывод.Это идет к stderr.Так что вы не можете увидеть это из php.

1 голос
/ 11 ноября 2011

Хороший выстрел - избегать относительного пути.Используйте полный путь для теста.Это действительно похоже на проблему с путём ...

Или увеличить команду exec с помощью cd + dir, перехваченного PHP.

...