【问题标题】:Ruby on Rails: Errno::EACCES after few hours of operationRuby on Rails:运行几个小时后的 Errno::EACCES
【发布时间】:2014-04-08 11:01:32
【问题描述】:

我有一个 Ruby on Rails 网站。它工作了几个月没有问题,然后在最近几周突然开始显示以下错误:

Errno::EACCES in WelcomeController#index
Permission denied - /home/userName/appName/app/views/layouts/application.html.erb

通过运行命令“touch tmp/restart.txt”解决了这个问题,但几个小时后问题再次出现。

我在日志中看不到任何内容来指示问题的原因,但我不是 Ruby on Rails 开发人员,所以我不确定要查找什么。

有人怀疑该网站被蓄意破坏,尽管我个人认为这不太可能。

如果有人能帮助我找出问题所在,我将不胜感激。

【问题讨论】:

    标签: ruby-on-rails


    【解决方案1】:

    tmp 目录的权限/用户是否设置正确?根据this answer,做一个chmod 777 可能会解决它。

    sudo chmod 777 tmp
    

    无论如何,apache/nginx 是否有权读取/home/userName/appName/app/views/layouts/application.html.erb?正如您所说,可能是有人更改了实时代码,从而在不知不觉中更改了权限/所有权。

    【讨论】:

    • 我尝试将日志文件更改为 777,但没有帮助。但我注意到 /home/userName/appName/app/views/layouts/application.html.erb 有 700 个权限,这看起来很奇怪。所以我像其他文件一样将它们更改为 644,这似乎解决了问题。我会监视它几天,如果问题没有出现,我会将此问题标记为已回答。我不明白为什么这个问题才刚刚开始出现,为什么它只是间歇性地出现。
    • 可能是下游用户的文件权限设置不正确。在本地签出的 repo 副本中检查权限,该权限可能已被错误地签入。如果是这种情况,请更正并提交。
    • 更改 application.html.erb 的权限似乎已修复它。为什么这首先会成为一个问题,这是一个谜,但感谢您帮助解决它!
    • @alexrees 在你的仓库中验证文件权限,很可能你也需要在那里更新它。
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2011-09-26
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多