Rails + CarrierWave + MiniMagick で画像アップロードしてるんだけどStaging環境で動かしたらエラーした。
環境
- CentOS7
- Rails 4.2.2
- carrierwave 0.10.0
CarrierWaveのエラーログを出力する設定
最初CarrierWaveのエラーがどのログみても出てなくてかなり困ったんだけど下記設定をすることでちゃんとエラーログが出るようになった。
# config/initializers/carrierwave.rb config.ignore_integrity_errors = false config.ignore_processing_errors = false config.ignore_download_errors = false
エラー内容
フォームで画像を選んで送信したら下記エラーログが出てた。 アップロード先がOpenStackSwiftのオブジェクトストレージだからそっち関係のエラーかと思ったらその手前の画像サイズ変換でこけてたらしい。
CarrierWave::ProcessingError (Failed to manipulate with MiniMagick, maybe it is not an image? Original Error: ImageMagick/GraphicsMagick is not installed): app/controllers/user_settings_controller.rb:14:in `update_profile'
Original Error: ImageMagick/GraphicsMagick is not installed
ふむふむ。
確認
convert
ってコマンドでImageMagickを使うらしい。
$ convert -version -bash: convert: コマンドが見つかりません
確かに入ってないようだ。
手元のMacBookでやると
% convert -version [0:26:13] Version: ImageMagick 6.9.1-0 Q16 x86_64 2015-03-22 http://www.imagemagick.org Copyright: Copyright (C) 1999-2015 ImageMagick Studio LLC License: http://www.imagemagick.org/script/license.php Features: DPC OpenCL Delegates (built-in): bzlib fftw fontconfig freetype jng jpeg lcms lzma png tiff webp x xml zlib
入ってるっぽい。
ImageMagickのインストール
yum install ImageMagick
で行けるみたい。
自分はAnsibleを使ってるので下記設定を追加した。
#Install ImageMagick - name: install ImageMagick yum: name={{ item }} state=latest with_items: - ImageMagick
インストールしてから確認。
$ convert -version Version: ImageMagick 6.7.8-9 2016-03-31 Q16 http://www.imagemagick.org Copyright: Copyright (C) 1999-2012 ImageMagick Studio LLC Features: OpenMP
入ったっぽい。
これでRails + CarrierWave + ImageMagicも成功した !