RefineryCMS图像上传错误,ImageMagick CentOS 5.5

时间:2012-06-28 15:37:58

标签: imagemagick centos image-uploading refinerycms

我在我的服务器(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

但是,如果我在命令行中运行该命令“识别'/ tmp / RackMultipart20120628-29239-70xr45'”,它将显示结果而没有任何错误。似乎Dragonfly无法接受我最新版本的ImageMagick的安装。谁能告诉我如何配置它?或者我应该升级我的centOS?(我不希望)

1 个答案:

答案 0 :(得分: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中,但实际上它是。 蜻蜓似乎无论如何都找不到它。