Я установил Imagemagick, используя Homebrew на Lion, все в порядке, за исключением того, что он вообще не работает при вызове с php. Консоль:
$ convert -version Version: ImageMagick 6.7.1-1 2011-07-29 Q16 http://www.imagemagick.org Copyright: Copyright (C) 1999-2011 ImageMagick Studio LLC Features: OpenMP $ which convert /usr/local/bin/convert
PHP:
echo exec ('convert -version');
или exec ('convert -version', $ output); var_dump ($ выход);
Не производит ничего (или пустой массив).
exec ('/usr/local/bin/convert') // works, but exec ('which convert') // doesn't
Мне нужно проверить это локально, чтобы убедиться, что я могу обнаружить преобразование в производственной среде. Но я не могу его правильно проверить. PATH установлен и работает в терминале, но не с PHP.
Постановили:
Оказывается, для работы php convert
должно быть в /usr/bin/
чтобы это разрешило это:
ln -s /usr/local/bin/convert /usr/bin/convert
Обновить
Это было из-за MAMP, вот исправление: http://firedevcom.tumblr.com/post/22791937644/fix-for-homebrew-imagemagick-and-mamp
Открыть / Приложения / MAMP / Library / bin / envvars
И прокомментируйте следующие строки:
DYLD_LIBRARY_PATH="/Applications/MAMP/Library/lib:$DYLD_LIBRARY_PATH" export DYLD_LIBRARY_PATH
Готово.
Добавьте свой собственный ответ, чтобы вы могли голосовать:
Это было вызвано MAMP, вот исправление: http://firedevcom.tumblr.com/post/22791937644/fix-for-homebrew-imagemagick-and-mamp
Открыть /Applications/MAMP/Library/bin/envvars
И прокомментируйте следующие строки:
DYLD_LIBRARY_PATH="/Applications/MAMP/Library/lib:$DYLD_LIBRARY_PATH" export DYLD_LIBRARY_PATH
Готово.
sudo ln -s /usr/local/bin/convert /usr/bin/convert
Убедитесь, что преобразование – это переменная среды PATH сервера. Или просто укажите полный путь:
exec('/usr/local/bin/convert -version');
exec
возвращает последнюю строку из результата команды, которая является пустой строкой. Если вы хотите получить результат, просто выполните примерно так:
exec('convert -version', $output); var_dump($output); // it is an array which filled with every line of output from the command
Просто используйте exec("PATH=\$PATH:/usr/local/bin; convert file.pdf file.png");
Он добавит преобразование в PATH во время выполнения.
вместо просто exec («convert ….»); используйте полный путь. вы можете получить его, набрав терминал
тип конвертировать
вы должны получить что-то вроде: convert hashed (/ opt / local / bin / convert)
поэтому теперь используйте:
exec ("/ opt / local / bin / convert ….");
[кредиты @ Никки]
после этого комментария
DYLD_LIBRARY_PATH = "/ Applications / MAMP / Library / lib: $ DYLD_LIBRARY_PATH" экспорт DYLD_LIBRARY_PATH
in / Applications / MAMP / Library / bin / envvars