Railsへの画像のアップロードを処理するためにペーパークリップを使用しています。私の開発OSXマシンでは正常に機能しましたが、Webサーバーでは次のエラーが発生します。
[Paperclip] /Users/marky/bin/identify '-format' '%wx%h' '/tmp/stream,16451,2.JPG[0]' 2>/dev/null
[Paperclip] An error was received while processing: #<Paperclip::CommandNotFoundError: Paperclip::CommandNotFoundError>
[Paperclip] /Users/marky/bin/identify '-format' '%wx%h' '/tmp/stream,16451,2.JPG[0]' 2>/dev/null
[Paperclip] An error was received while processing: #<Paperclip::CommandNotFoundError: Paperclip::CommandNotFoundError>
今ではその理由は明らかです。識別は実際には/ usr/bin /にあり、開発マシンからの/ Users/marky/bin /にはありません。私が持っています:
Paperclip.options[:command_path] = "/usr/bin"
私のdevelopment.rb
ですが、まだエラーが発生します。私はこれを修正する方法がわかりません、誰か助けてもらえますか?
Passengerを使用してアプリケーションをホストしている場合、Passengerにはログインしているユーザーと同じ$ PATH変数がないことに注意してください。 PassengerがImageMagickコマンドを表示できるかどうかを確認する良い方法は、これをerbテンプレートの1つに追加することです。
<%= `which convert` %>
<%= `echo $PATH` %>
ターミナルで同じコマンドを実行した場合の結果を比較します。もう1つの可能性は、ImageMagickが必要なライブラリを見つけられないことです。この場合、別の変数をエクスポートして、ライブラリがどこにあるかをImageMagickに知らせる必要がある場合があります。
# my config/environments/development.rb
Paperclip.options[:command_path] = "DYLD_LIBRARY_PATH='/Users/jch/Library/ImageMagick-6.6.3/lib' /Users/jch/Library/ImageMagick-6.6.3/bin"
それが-jerryを助けることを願っています
Imagemagickを操作するために次のパッケージをインストールします
1) apt-get install imagemagick
2) apt-get install libmagickwand-dev
3) gem install rmagick
私はあなたが2番目のものを逃していると思います。
ImageMagickをマシンにインストールできます。これらの問題は、一部のメソッドが見つからないために発生します。
ImageMagickがマシンにインストールされていることを確認するには、ターミナルで「convert」コマンドを実行するだけです。
私の場合、本番サーバー(NGINX + Passenger)の環境ファイルでペーパークリップコマンドパスオプションを設定しても機能しませんでした。
代わりに、Paperclip.rb初期化ファイルに設定しました。
Paperclip.options[:command_path] = "/usr/bin/" if Rails.env.production?
imagemagickを実行してインストールされているかどうかを確認します
which convert
コンソールで。私の場合、結果は次のとおりです。
$ which convert
/usr/bin/convert
次に、次の行をconfig/environment/development.rbに追加します。これは、PaperclipにImagemagickの場所を指示します。
Paperclip.options[:command_path] = "/usr/local/bin/"