У меня странная проблема с 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 и получил тот же результат.
Не мог бы кто-нибудь пролить свет на это?