添加日志文件,防止在AWS上访问`rails c`

时间:2018-02-20 15:16:20

标签: ruby-on-rails ruby-on-rails-4 permissions elastic-beanstalk

我昨天在我的rails应用程序上为我的delayed_job添加了一个新的日志文件,现在当ssh进入我的AWS实例时,我无法启动rails控制台。

错误显示为:

Rails Error: Unable to access log file. Please ensure that /var/app/current/log/production.log exists and is writable (ie, make it writable for user and group: chmod 0664 /var/app/current/log/production.log). The log level has been raised to WARN and the output directed to STDERR until the problem is fixed.
/opt/rubies/ruby-2.2.5/lib/ruby/2.2.0/open-uri.rb:36:in `initialize': Permission denied @ rb_sysopen - /var/app/current/log/delayed_job.log (Errno::EACCES)

这很奇怪,因为production.log已经在我的应用程序中存在了很长时间,我之前从未见过这个错误。

我尝试了sudo chmod 0664 /var/app/current/log/production.logsudo chmod 0664 /var/app/current/log/delayed_job.log,但它仍然会出现同样的错误。

我对这两个文件的文件权限均为-rw-rw-r--。我需要让所有用户都可写吗?我不想直接这样做,因为我不确定它是否安全。

1 个答案:

答案 0 :(得分:1)

所以我通过运行:

解决了上述问题

sudo chmod 0777 /var/app/current/log/delayed_job.log sudo chmod 0777 /var/app/current/log/production.log

我最终提供了对所有用户的读写访问权限,但我认为这是必需的,因为AWS无法获得访问权限。