2

サーバー(CentOs 5.5)にRefineryCMSをインストールしましたが、画像のアップロード以外はすべて正常に動作します。次のようなエラーが表示されます。

NoMethodError in Refinery::Admin::ImagesController#create

   undefined method `downcase' for nil:NilClass

次のように入力して ImageMagick をインストールしました。

sudo yum install ImageMagick

オンラインで検索したところ、yum によってインストールされた ImageMagick が古すぎるようです (バージョン 6.2.x)。その後、それを削除し、ソース コードから ImageMagick v6.7.7 を正常にインストールしました。画像をアップロードしようとすると、リファイナリーに次のように表示されます。

Dragonfly::Shell::CommandFailed in Refinery::Admin::ImagesController#create

   Command failed (identify '/tmp/RackMultipart20120628-29239-70xr45') with exit status 127

ただし、コマンド ラインで「identify '/tmp/RackMultipart20120628-29239-70xr45'」というコマンドを実行すると、エラーなしで結果が表示されます。Dragonfly が ImageMagick の最新バージョンのインストールを取得できないようです。設定方法を教えてもらえますか?または、centOS をアップグレードする必要がありますか?(したくない)

4

1 に答える 1

2

さて、私はこの問題に1週間以上苦労しました。私もGithubでこの質問をして、最終的に解決策を得ました。参照: https://github.com/resolve/refinerycms/issues/1781#issuecomment-6823858

この問題は、Dragonfly が imagemagick を見つけられないことが原因です。次のコードを config/application.rb に追加してみてください。

initializer 'override-image-magick-paths', :after => 'attach-refinery-images-with-      dragonfly' do
  app=Dragonfly[:refinery_images]
  app.configure_with(:imagemagick)
  app.configure do |c|
    c.convert_command = "/usr/local/bin/convert"          # defaults to "convert"
    c.identify_command = "/usr/local/bin/identify"        # defaults to "identify"
  end
end

imagemagick のインストールに従ってパスを変更します。which コマンドを使用してパスを見つけることができます。たとえば、どの変換

しかし、これはまだ私にはうまくいきません。そして最後に、toymachiner62はシンプルで完璧に機能するソリューションを見つけました。

それはシンボリックリンクを使用することです:

$ cd /usr/bin
$ ln -s /usr/local/bin/convert convert             
$ ln -s /usr/local/bin/identify identify

/usr/local/bin/convert パスもインストールに変更します。/usr/local/bin パスが $PATH にないように見えますが、実際にはあります。とにかく、トンボはそれを見つけることができないようです。

于 2012-07-09T21:26:15.213 に答える