我正在使用paperclip来处理图像上传到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 / not / Users / marky / bin /来自我的开发机器。我有:
Paperclip.options[:command_path] = "/usr/bin"
在我的development.rb
中,但我仍然收到错误。我不知道如何解决这个问题,任何人都可以帮忙吗?
答案 0 :(得分:17)
安装以下软件包以使用imagemagick
1) apt-get install imagemagick
2) apt-get install libmagickwand-dev
3) gem install rmagick
我认为你错过了第二个。
答案 1 :(得分:16)
如果您使用Passenger托管您的应用程序,请记住Passenger与您登录的用户没有相同的$ PATH变量。检查Passenger是否可以看到ImageMagick命令的好方法是将其添加到您的某个erb模板中:
<%= `which convert` %>
<%= `echo $PATH` %>
并在终端中运行相同的命令来比较结果。另一种可能性是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
答案 2 :(得分:5)
您可以在计算机上安装ImageMagick。 产生这些问题是因为它找不到某些方法。
要检查您机器上安装的ImageMagick,只需在终端上运行'convert'命令即可。
答案 3 :(得分:2)
就我而言,在生产服务器(NGINX + Passenger)的环境文件下设置Paperclip命令路径选项不起作用。
我将它设置在paperclip.rb初始化文件中:
Paperclip.options[:command_path] = "/usr/bin/" if Rails.env.production?
答案 4 :(得分:1)
检查您是否通过
安装 imagemagick which convert
在你的控制台中。就我而言,结果如下:
$ which convert
/usr/bin/convert
然后我将以下行添加到 config / environments / development.rb ,它告诉Paperclip在哪里可以找到Imagemagick
Paperclip.options[:command_path] = "/usr/local/bin/"