Errno :: EACCES在其中一个平等的RoR项目中

时间:2014-08-08 09:14:03

标签: ruby-on-rails apache passenger cpanel permission-denied

在我的带有cpanel(CentOs)的VPS上,我在Passenger服务的不同虚拟主机上有两个rails项目。 第二个项目是第一个分支,所以现在它们是平等的。

他们的目录是:

/home/web/public_html/msystem
/home/web/public_html/msystem2

httpd.conf中的设置:

    <VirtualHost My.host.IP.adress:80>
        ServerName msystem.mydomain.com
        ServerAlias www.msystem.mydomain.com
        DocumentRoot /home/web/public_html/msystem
        CustomLog /usr/local/apache/domlogs/msystem.mydomain.com combined
        CustomLog /usr/local/apache/domlogs/msystem.mydomain.com-bytes_log "%{%s}t %I .\n%{%s}t %O ."
        ScriptAlias /cgi-bin/ /home/web/public_html/msystem/cgi-bin/
        Include "/usr/local/apache/conf/userdata/std/2_2/web/msystem.mydomain.com/*.conf"
    </VirtualHost>

/usr/local/apache/conf/userdata/std/2_2/web/msystem.mydomain.com/msystem.conf:

    DocumentRoot /home/web/public_html/msystem/public/
    <Directory /home/web/public_html/msystem/public/>
        AllowOverride all
        Options -MultiViews
    </Directory>

我删除了所有标准的cpanel线。第二个VirtualHost是相同的,除了替换msystem -> msystem2

第一个项目有效,第二个项目

项目中有一项延迟工作。在这两个项目中,我将记录器设置为initializers/delayed_job.rb

Delayed::Worker.logger = Logger.new(Rails.root.join('log', 'dj.log'))

第二个项目引发错误:

  

权限被拒绝@ rb_sysopen - /home/web/public_html/msystem2/log/dj.log(Errno :: EACCES)

两个项目中的dj.log具有相同的权限:

# ls -l msystem/log/dj.log
-rw-r--r-- 1 nobody nobody 10604043 Aug  7 12:34 msystem/log/dj.log
# ls -l msystem2/log/dj.log
-rw-r--r-- 1 nobody nobody 66 Aug  8 09:25 msystem2/log/dj.log

错误页面上的乘客表示他是无人驾驶的:无人用户。

  

用户和群组   uid = 99(nobody)gid = 99(nobody)groups = 99(nobody)

我在stackoverflow.com上阅读了很多关于此错误的主题。我尝试将所有者更改为root或777的权限。尝试重新启动Apache,Passenger。

第一部作品,第二部作品不是。它是什么?可能是我忘记了什么?

1 个答案:

答案 0 :(得分:0)

这个问题有一个答案:

Ruby on Rails: permission denied when using "rails generate controller welcome"

chmod 1644 msystem2/log