更正Rails应用程序的路径或权限? - 没有这样的文件或目录@ rb_sysopen

时间:2017-04-11 08:48:43

标签: ruby-on-rails carrierwave ubuntu-16.04

调用Carrierwave gem功能的Rails应用程序中的以下模型方法

  before_save :generate_firma

  def generate_firma
    unless self.signature.nil?
      instructions = self.signature.map { |h| "line #{h['mx'].to_i},#{h['my'].to_i} #{h['lx'].to_i},#{h['ly'].to_i}" } * ' '
      path_signature_image="tmp/"+self.intervento_id.to_s+self.sequence+".png"
      puts path_signature_image
      system "convert -size 1010x395 xc:transparent -stroke blue -draw '#{instructions}' #{path_signature_image}"
      self.firma = File.open(path_signature_image)
    end
  end

在执行时生成错误No such file or directory @ rb_sysopen - tmp/58iniziofirma.png,突出显示行self.firma[...]上的错误。 在使用旧服务器Ubuntu 14.04上的Ubuntu 16.04 将应用程序迁移到新服务器时,会发生这种情况,该文件正确加载到S3

随着先前版本的加载,我认为最大的罪魁祸首是权限问题,因为每个服务器实例在根级别,用户级别和发布级别都有一个tmp目录。

然而,两台服务器上的权限相同:

drwxrwxrwt  (root level)
drwxrwxr-x  (user level)
drwxrwxr-x  (current release level)

如何解决这个问题?

1 个答案:

答案 0 :(得分:0)

新服务器?那么问问题有什么不同?

花了几个撞墙来找出服务器上没有安装的重要组件。 Whatever documentation there is out there它并未声明需要安装imagemagick