Rails nginx乘客和rake命令

时间:2015-01-24 16:16:43

标签: ruby-on-rails ruby nginx

我在乘客的帮助下运行我的导轨应用程序。我在top中看到它作为www-data用户运行,但当我尝试在此用户下运行此命令时:

rake ts:index

我觉得拒绝访问

当我在root下(在root rake ts:index下运行) - 一切正常......

更好的是:

让乘客以root身份运行(如何做)

我能做什么?

怎么做,sphinx可以重新索引数据库?

方法中的部分代码:

def self.reindexDB
      `rake ts:index`
    end

1 个答案:

答案 0 :(得分:0)

我不确定你所做的事情是否好,因为如果你在root用户中运行rake命令,我相信输出文件(索引文件)将被拥有root用户使用错误的权限,您自己的服务器(www-data)无法访问这些文件,

我认为处理此问题的最佳方法是将您自己的用户(您在服务器上使用ssh的用户)添加到www-data组中 有两种方法可以做到这一点

  1. 命令行:如sudo usermod -a -G www-data [your-user]
  2. 修改/etc/group
    编辑/etc/group文件并查找以www-data开头的行,然后将自己的用户添加到其中,它应该在最后看起来像这样

    www-data:x:33:[your-user]
    

    保存文件,然后您需要注销并重新登录才能找到更改,

  3. 我相信在此之后您将能够由您自己的用户运行该命令,它仍然可以访问www-data拥有的文件。