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

好吧,我已经为这个问题苦苦挣扎了一个多星期。我也在 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 回答