2012-01-19 133 views
3

我第一次设置了Ruby on Rails;在我的服务器上,我创建并加载了默认的rails应用程序。我可以查看默认页面(“欢迎加入!您正在使用Rails”),但是当我点击链接到“查看应用程序环境”时,它会生成500错误。Ruby on Rails安装:无法访问日志文件

(您可以查看here。)

我想知道更多有关该错误,但是,日志文件(“登录/ production.log”)是空的。看看我的Apache日志我发现:

Rails Error: Unable to access log file. Please ensure that /var/www/rails/myapp/log/production.log exists and is chmod 0666. The log level has been raised to WARN and the output directed to STDERR until the problem is fixed.

所以,我真的想让我的Ruby on Rails错误日志工作。

我知道这个问题之前已经发布过几次,但我什么都试过了我能找到的,所以这是我曾尝试:

  1. 创建了“登录/ production.log”文件,设置所有者到万维网数据,设置chmod 0666
  2. 将“日志”文件夹的所有者设置为www-data,设置为chmod 0666
  3. 再次检查我的生产环境设置,以便设置config.log_level = :info
  4. 经过Apache是​​否使用WWW的数据用户( “等/ apache2的/ envvars中”):

    export APACHE_RUN_USER=www-data 
    export APACHE_RUN_GROUP=www-data 
    
  5. “等/ apache2的/ MODS的可用/ 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. 我的虚拟主机已设置艾科rdingly:

    DocumentRoot /var/www/rails/myapp/public 
    RackBaseURI/
    RackEnv production 
    PassengerMaxPoolSize 4 
    

已经阅读并试图在这些地方提出的所有修复:

(这是我所记得的努力现在...)

我的一些环境设置:

  • 的Ubuntu 11.10在Amazon EC2上运行
  • 的Apache 2.2.20
  • RVM 1.10.2
  • Ruby 1.9。3P0
  • 的Rails 3.1.3

回答

1

这个问题现在解决了,但问题本身的原因尚不完全清楚。

我有一些奇怪的配置问题与Apache &乘客(也称为ModRails)。存在两个模块:一个似乎与Apache(?)打包在一起,另一个通过passenger-install-apache2-module获得。当我指向预装的时,我遇到了这个日志记录问题。当我指着一个由passenger-install-apache2-module部署,我有一个完全不同的问题,即乘客将与段错误崩溃(见我在ServerFault here后)。

最后,我彻底消灭我的服务器,并进行了全新安装从基本的Ubuntu AMI(在Amazon EC2上运行使得这一切足够简单。)重新安装后,我运行了passenger-install-apache2-module并配置了Apache以加载它部署的模块。这一次,模块没有崩溃,但出现了日志错误。我在我的Rails应用程序的根目录上设置了chmod 755,确保production.log存在并且它至少具有chmod 0666特权。瞧,问题没有了。

TL; DR做了全新的安装,确保我使用的是最新的Passenger模块,并且我的文件许可权设置正确。