У меня возникла странная проблема с php 5.3.6 и ImageMagick (командной строки) с использованием MAMP (и Macports тоже .. Я пробовал оба) на OS X.
Когда я запускаю команду идентификации из CLI, она работает нормально. Но когда я запускаю ту же самую команду, используя exec()
, он возвращает код значения 5
и в журналах ошибок apache у меня есть:
dyld: библиотека не загружена: /opt/local/lib/libfreetype.6.dylib
Ссылка: / opt / local / bin / ident Причина: Несовместимая версия библиотеки: идентификация требует версии 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
– 5
$output
– ничего
Проверка журналов apache дает указанную выше проблему с помощью libfreetype.
Я установил ImageMagick с помощью Macports. Я также попробовал ручную сборку из источника и запускал идентификатор из /usr/local/bin/identify
и получил тот же результат. Я также пытался запустить PHP из Macports вместо MAMP, и я получаю тот же результат.
Может ли кто-то помочь помочь пролить свет на это?
Редактировать этот файл:
/ Applications / MAMP / Library / bin / envvars
Прокомментируйте следующие строки:
DYLD_LIBRARY_PATH = "/ Applications / MAMP / Библиотека / Библиотека: $ DYLD_LIBRARY_PATH"
экспорт DYLD_LIBRARY_PATH