Intereting Posts

Решено: MAMP Php не может выполнить exec ('convert') после Homebrew ImageMagick install

Я установил 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 

Готово.

Related of "Решено: MAMP Php не может выполнить exec ('convert') после Homebrew ImageMagick install"

Добавьте свой собственный ответ, чтобы вы могли голосовать:

Это было вызвано 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