Ruby on Rails安装程序:无法访问日志文件

时间:2012-01-19 16:47:58

标签: ruby-on-rails apache ubuntu

我是第一次建立Ruby on Rails;在我的服务器上,我已经创建并加载了默认的rails应用程序。我可以查看默认页面(“欢迎登陆!你正在骑Rails”),但是当我点击“查看应用程序环境”链接时,它会生成500错误。

(您可以查看here。)

我想了解有关错误的更多信息,但是,日志文件(“log / production.log”)为空。查看我的Apache日志,我发现:

  

Rails错误:无法访问日志文件。请确保   /var/www/rails/myapp/log/production.log存在并且是chmod 0666   日志级别已提升为WARN,输出已定向到STDERR   直到问题得到解决。

所以,我实际上想让我的Ruby on Rails错误记录工作。

我知道此问题已经发布了几次,但我尝试了所有可以找到的内容,所以这就是我尝试过的内容:

  1. 创建“log / production.log”文件,将所有者设置为www-data,设置chmod 0666
  2. 将“log”文件夹的所有者设置为www-data,设置chmod 0666
  3. 仔细检查我的生产环境设置,以便设置config.log_level = :info
  4. 检查Apache是​​否正在使用www-data用户(“etc / apache2 / envvars”):

    export APACHE_RUN_USER=www-data
    export APACHE_RUN_GROUP=www-data
    
  5. “etc / apache2 / mods-available / passenger.conf”有一个为乘客设置的默认用户:

    <IfModule mod_passenger.c>
      PassengerRoot /usr
      PassengerRuby /usr/bin/ruby
      PassengerDefaultUser www-data
    </IfModule>
    
  6. “config.ru”和“configs / environment.rb”的所有者为www-data

  7. 我的虚拟主机已相应设置:

    DocumentRoot /var/www/rails/myapp/public
    RackBaseURI /
    RackEnv production
    PassengerMaxPoolSize 4
    
  8. 已经阅读并尝试了在这些地方建议的所有修复:

    (这就是我现在所能记住的一切......)

    我的一些环境设置:

    • 在Amazon EC2上运行的Ubuntu 11.10
    • Apache 2.2.20
    • RVM 1.10.2
    • Ruby 1.9.3p0
    • Rails 3.1.3

1 个答案:

答案 0 :(得分:1)

此问题现已解决,但问题的原因本身并不完全清楚。

我有一些奇怪的配置问题与Apache&amp;乘客(a.k.a. ModRails)。存在两个模块:一个似乎与Apache(?)打包在一起,另一个我通过passenger-install-apache2-module获得。当我指出预安装的时候,我遇到了这个日志记录问题。当我指出由passenger-install-apache2-module部署的那个时,我遇到了一个完全不同的问题,即Passenger会因为段错而崩溃(请参阅我在ServerFault here上的帖子。)

最后,我完全擦除了我的服务器并执行了从基础Ubuntu AMI(在Amazon EC2上运行使得这很容易)的所有内容的干净安装。重新安装后,我运行passenger-install-apache2-module并配置Apache加载它部署的模块。这次,模块没有崩溃,但出现了日志错误。我在我的Rails应用程序的根目录上设置chmod 755,确保production.log存在并且它至少具有chmod 0666个权限。瞧,问题消失了。

TL; DR 重新安装,确保我使用的是最新的Passenger模块,并且我的文件权限已正确设置。