私はImaMemagickをLionでHomebrewを使ってインストールしましたが、phpから呼び出されたときには全く機能しません。コンソール:解決済み:Homebrew ImageMagickのインストール後にMAMP Phpがexec( 'convert')できない
$ 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($出力、 '-versionを変換します'); var_dump($ output);
何も出力しません(または空の配列)。
exec ('/usr/local/bin/convert') // works, but
exec ('which convert') // doesn't
これをローカルでテストして、本番環境で変換を検出できることを確認する必要があります。しかし、私はそれを適切にテストすることはできません。 PATHは設定されており、Terminalでは動作しますが、PHPでは動作しません。
解決:PHPはconvert
はので、これはそれを解決し/usr/bin/
にする必要があります動作するため
は、判明:
ln -s /usr/local/bin/convert /usr/bin/convert
更新
ここは、MAMPのbecasueました修正は:http://firedevcom.tumblr.com/post/22791937644/fix-for-homebrew-imagemagick-and-mamp
オープン/アプリケーション/ MAMP /ライブラリ/ binに/ envvarsが
そしてコメントアウトし、次の行:DYLD_LIBRARY_PATH="/Applications/MAMP/Library/lib:$DYLD_LIBRARY_PATH"
export DYLD_LIBRARY_PATH
を完了。
PHPのパスに変換されますか? exec()コールで '/ absolute/path/to/convert'を指定する必要があるかもしれません。 PHP exec()呼び出しの環境は、シェルプロンプトでの環境と大きく異なることに注意してください。 –
うーん、問題は - すべてがプロダクションサーバーで動作し、自宅では動作しません。私はPATHをエグゼクティブサンドボックスに継承すべきだと思ったのですが、 – firedev
phpのシェル環境は、ユーザーシェル環境とはまったく異なります。それらを直接比較することはできません。 'exec( 'echo $ PATH');'を実行してシェルの動作を確認してください。 PHPはApache環境を継承します。 –