ImageMagick работает в командной строке, но при exec() в php возвращает 5 с "несовместимой версией библиотеки"

У меня странная проблема с php 5.3.6 и ImageMagick (командная строка) с использованием MAMP (и Macports тоже...я пробовал оба) на OS X.

Когда я запускаю команду identify из CLI, она работает нормально. Но когда я запускаю точно такую же команду, используя exec(), она возвращает код значения 5, а в журнале ошибок apache я вижу:

dyld: Библиотека не загружена: /opt/local/lib/libfreetype.6.dylib
. Ссылается на: /opt/local/bin/identify Причина: Несовместимость версия библиотеки: для идентификации требуется версия 14.0.0 или более поздняя, но libfreetype.6.dylib предоставляет версию 13.0.0

Например. Команда cli: /opt/local/bin/identify /Users/leonardteo/Documents/1.jpg

Это прекрасно работает при выполнении из командной строки. При выполнении из PHP:

exec("/opt/local/bin/identify /Users/leonardteo/Documents/1.jpg", $output, $return);

$return is 5

$output is nothing

Проверка логов apache дает вышеуказанную проблему с libfreetype.

Я установил ImageMagick с помощью Macports. Я также попробовал ручную сборку из исходников и запуск identify из /usr/local/bin/identify и получил тот же результат. Я также попробовал запустить PHP из Macports вместо MAMP и получил тот же результат.

Не мог бы кто-нибудь пролить свет на это?

8
задан Brad 18 October 2011 в 19:05
поделиться