Logo Questions Linux Laravel Mysql Ubuntu Git Menu
 

Resolved: MAMP Php can't exec ('convert') after Homebrew ImageMagick install

I installed Imagemagick using Homebrew on Lion, everything is fine except that it doesn't work at all when being called from php. Console:

$ 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');

or exec('convert -version', $output); var_dump($output);

Produces nothing (or an empty array).

exec ('/usr/local/bin/convert') // works, but
exec ('which convert') // doesn't

I need to test this locally to make sure I can detect convert in production environment. But I can't properly test it. The PATH is set and it works in Terminal, but not from PHP.

Resolved:

Turns out, for php to work convert should be in /usr/bin/ so this solved it:

ln -s /usr/local/bin/convert /usr/bin/convert

Update

It was becasue of MAMP, here is the fix: http://firedevcom.tumblr.com/post/22791937644/fix-for-homebrew-imagemagick-and-mamp

Open /Applications/MAMP/Library/bin/envvars

And comment out the following lines:

DYLD_LIBRARY_PATH="/Applications/MAMP/Library/lib:$DYLD_LIBRARY_PATH"
export DYLD_LIBRARY_PATH

Done.

like image 849
firedev Avatar asked Aug 23 '11 15:08

firedev


4 Answers

Adding my own answer here so you can vote:

It was caused by MAMP, here is the fix: http://firedevcom.tumblr.com/post/22791937644/fix-for-homebrew-imagemagick-and-mamp

Open /Applications/MAMP/Library/bin/envvars

And comment out the following lines:

DYLD_LIBRARY_PATH="/Applications/MAMP/Library/lib:$DYLD_LIBRARY_PATH"
export DYLD_LIBRARY_PATH

Done.

like image 65
firedev Avatar answered Nov 02 '22 23:11

firedev


sudo ln -s /usr/local/bin/convert /usr/bin/convert
like image 37
NiLL Avatar answered Nov 03 '22 01:11

NiLL


Verify that convert in is the server's PATH environment variable. Or just specify the full path:

exec('/usr/local/bin/convert -version');
like image 1
Arnaud Le Blanc Avatar answered Nov 03 '22 00:11

Arnaud Le Blanc


The exec returns the last line from the result of the command which happens to be an empty string. If you want to get the output, just do something like this:

exec('convert -version', $output);
var_dump($output); // it is an array which filled with every line of output from the command
like image 1
xdazz Avatar answered Nov 03 '22 01:11

xdazz