2014-11-27 1 views
0

Я отчаялся ...Ghostscript через PHP на Mac Yosemite не работает. On Shell работает

Я установил Ghostscript на Mac OS X Yosemite через Homebrew. Ghostscript хорошо работает над оболочкой, но он не работает, если он выполняется через PHP.

$gs = '/usr/local/opt/ghostscript/bin/gs'; 

// Count PDF 
$shell = $gs . ' -q -dNODISPLAY -c "(' . $pdf . ') (r) file runpdfbegin pdfpagecount = quit" 2>&1'; 
$result = shell_exec($shell); 

// Execution 
$shell = $gs . ' -dNumRenderingThreads=4 -dNOPAUSE -sDEVICE=jpeg -dFirstPage=1 -dLastPage=1 -sOutputFile="' . $filePathThumb . '" -dJPEGQ=100 -r300 -q "' . $pdf . '" -c quit 2>&1'; 
$result = shell_exec($shell); 

Выход $ результата:

dyld: Library not loaded: /usr/local/lib/libtiff.5.dylib 
Referenced from: /usr/local/opt/ghostscript/bin/gs 
Reason: Incompatible library version: gs requires version 8.0.0 or later, but libtiff.5.dylib  provides version 7.0.0 

Если я выполнить ту же команду на раковине она работает ...

I усталых так много вещей, в последние дни, но я все еще борется.

Я переустановил gs и imagemagick, я удалил символические ссылки, запустил врача-пиво, попробовал некоторые другие файлы libtiff.5.dyslib.

Моя среда:

  • Yosemite
  • PHP Version 5.5.13
  • Zend Server Версия: 7.0.0
  • Imagemagick Версия 6.8.9-8 (устанавливается через варку)
  • Ghostscript Version 9.15 (установлено через варево)

ответ

0

Очевидно, что вы re используя версию Ghostscript с общими библиотеками (вот почему он хочет libtiff.dylib). Мы не рекомендуем этого, и вы могли бы избежать этого, загрузив источники Ghostscript и сами создав их. Это проект «требуется сборка», так как вам понадобятся такие вещи, как gcc. Однако мне это удалось, и я далек от эксперта Mac.

Однако это, вероятно, просто приведет вас к реальной основной проблеме, которая заключается в том, что ваша среда PHP не соответствует вашей оболочке. В этом случае переменная среды PATH, вероятно, различна, что означает, что оболочка может найти динамическую библиотеку, но PHP не может.

Поскольку Ghostscript может использовать определенные переменные среды, вам необходимо убедиться, что среда, выполняемая скриптом PHP, такая же, как и оболочка.

+0

Эта ссылка может помочь http://stackoverflow.com/questions/11256008/setting-environment-variables-in-mamp – KenS