新手Rails编码器在这里....花了太多时间试图找出任何想法?
以下脚本适用于我的开发机器,但在生产中失败。在此脚本失败后 - 当我检查/ tmp文件夹时,“mini_magick20130627-17452-1k48fim.png”文件实际上就在那里。 ImageMagick转换和调整大小也可以从命令行按预期工作。
## resize screenshot
## wrapper for imagemagick
require 'mini_magick'
webthumb = MiniMagick::Image.open(thumbnail_image_path)
webthumb.crop('1024x768+0+0') # width, height, top, left
webthumb.resize('250x188') # width, height
# If you want to save this image use following
webthumb.write(thumbnail_image_path)
没有这样的文件或目录 - 识别-quiet -ping /tmp/mini_magick20130627-17452-1k48fim.png
答案 0 :(得分:1)
这是另一个有效的答案。
编辑development.rb(如果要与乘客一起运行)和production.rb
添加到文件底部
ENV['PATH'] = "/usr/local/bin:#{ENV['PATH']}"
答案 1 :(得分:0)
我会回答我自己的问题,因为其他人可能会看到此错误。这个问题与Phusion Passenger(在Apache下)处理环境变量的方式有关。我在这里使用Apache + Phusion Passenger服务器。
我通过将ImageMagick路径变量放入我的apache httpd-vhosts.conf文件来解决了这个问题:
<VirtualHost *:80>
...
SetEnv LD_LIBRARY_PATH /usr/local/lib
SetEnv MAGICK_HOME /usr/local/lib/ImageMagick-6.8.6
SetEnv DYLD_LIBRARY_PATH $MAGICK_HOME/lib
SetEnv PATH $MAGICK_HOME/bin:/usr/local/bin/:$PATH
...
</virtualhost>
此处提供更多信息 -
来自:http://blog.phusion.nl/2008/12/16/passing-environment-variables-to-ruby-from-phusion-passenger/
但是等等,我已经在/ etc / bashrc或/ etc / profile中设置了环境变量。他们为什么不工作?
如果您在/ etc / bashrc或/ etc / profile中设置了环境变量,那么这些环境变量可以在shell中使用。但是,在大多数操作系统上,Apache不是从shell启动的,并且不加载bashrc / profile中定义的环境变量,这就是为什么在/ etc / bashrc和/ etc / profile中设置环境变量通常对Apache没有影响(和通过归纳,乘客和铁路流程)。
答案 2 :(得分:0)
您在configure.xml中设置了ImageMagick参数: http://imagemagick.org/script/resources.php
他们拥有的示例不包含tmp目录,但您使用MAGICK_TEMPORARY_PATH: http://www.imagemagick.org/discourse-server/viewtopic.php?f=3&t=22311 (上一篇文章)
答案 3 :(得分:0)
我无法使用$PATH
这样的内容设置我的SetEnv PATH "$PATH:...
,但我找到了一种方法让它发挥作用。
在我的vhost配置文件中,我将/usr/local/bin
添加到$PATH
(这是图像magick的二进制文件所在的位置),但我还指定了所有其他$PATH
,以便一切正常:
SetEnv PATH "/usr/bin:/bin:/usr/sbin:/sbin:/usr/local/bin"