2014-06-19 1 views
4

Я установил расширение ImageMagick PHP на MAC через pecl. он появляется под phpinfo() и перечисляет PDF в качестве поддерживаемого формата.PHP Uncaught exception «ImagickException» с сообщением «FailedToExecuteCommand»

Я пытаюсь читать в формате PDF и преобразовывать его в изображение. Однако конструктор генерирует исключение, когда источником является PDF. Файлы изображений успешно работают.

$im = new imagick('TestDoc.pdf[0]'); // Throws Exception when PDF specified. 
//$im = new imagick('TestImage.png'); // Succeeds. 
$im->setImageFormat('jpg'); 
header('Content-Type: image/jpeg'); 
echo $im; 


Fatal error: Uncaught exception 'ImagickException' with message 'FailedToExecuteCommand 
`"gs" -q -dQUIET -dSAFER -dBATCH -dNOPAUSE -dNOPROMPT -dMaxBitmap=500000000 - 
dAlignToPixels=0 -dGridFitTT=2 "-sDEVICE=pngalpha" -dTextAlphaBits=4 -dGraphicsAlphaBits=4 
"-r72x72" -dFirstPage=1 -dLastPage=1 "-sOutputFile=/var/tmp/magick-43594XlaRxeGWg1ps%d" "- 
f/var/tmp/magick-43594O_WVqnAJTgzr" "-f/var/tmp/magick-43594ivJ_pKBcF3s7"' (-1) @ 
error/utility.c/SystemCommand/2029' in 
/Users/garys/Documents/Projects/accrivia/code/test/test.php:8 Stack trace: #0 
/Users/garys/Documents/Projects/accrivia/code/test/test.php(8): Imagick- 
>__construct('../TestDoc.pdf[...') #1 {main} thrown in 
/Users/garys/Documents/Projects/accrivia/code/test/test.php on line 8 

Файл tmp, указанный в выводе, создан, но составляет 0 байт. Если я выполняю команду «gs» в сообщении (используя фактические файлы) в командной строке, он работает успешно.

ImageMagick и GhostScript были установлены с заваркой.

В PHP система ('echo $ PATH'); дает/usr/bin:/bin:/usr/sbin:/sbin 'gs' находится в/usr/bin/

У кого-нибудь есть предложение. Веб-поиск сообщения об исключении не вызывает ничего конкретного.

Большое спасибо Gary.

+0

Вы когда-нибудь понимали, что не так? У меня такая же проблема – Maxxer

ответ

1

Никогда не ImageMagick себя, но документы, говорит, что нужно GhostScript читать PDF документы

PDF support : Requires Ghostscript to read. 

EDIT: Проверили ли вы, что GhostScript работает?

0

У меня была та же проблема на MacOS High Sierra, PHP 7.0, установленном из Homebrew. Проблема заключается в том, что FPM $PATH содержит (как отражается <php echo getenv('PATH'); ?>) /usr/bin:/bin:/usr/sbin:/sbin, который не содержит путь установки Brew's /usr/local/bin/.

Для решения я добавил

env[PATH] = /usr/local/bin:/usr/bin:/bin:/usr/sbin:/sbin

к /usr/local/etc/php/7.0/php-fpm.d/www.conf, перезапущен php70 и работал! На Homebrew's forums @comes предложил добавить то же самое к .env файлам

 Смежные вопросы

  • Нет связанных вопросов^_^