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

Ruby on rails Ruby on Rails安装程序:无法访问日志文件,ruby-on-rails,apache,ubuntu,Ruby On Rails,Apache,Ubuntu,我第一次安装RubyonRails;在我的服务器上,我创建并加载了默认的rails应用程序。我可以查看默认页面(“欢迎登船!您正在乘坐Rails”),但当我点击“查看应用程序环境”的链接时,它会生成一个500错误 (您可以查看它。) 我想知道更多关于错误的信息,但是日志文件(“log/production.log”)是空的。查看我的Apache日志,我发现: Rails错误:无法访问日志文件。请确保 /var/www/rails/myapp/log/production.log存在,为chmod

我第一次安装RubyonRails;在我的服务器上,我创建并加载了默认的rails应用程序。我可以查看默认页面(“欢迎登船!您正在乘坐Rails”),但当我点击“查看应用程序环境”的链接时,它会生成一个500错误

(您可以查看它。)

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

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

所以,我实际上想让我的RubyonRails错误日志工作起来

我知道这个问题之前已经发布过好几次了,但我尝试了我能找到的一切,下面是我尝试过的:

  • 创建“log/production.log”文件,将所有者设置为www-data,设置
    chmod 0666
  • 将“日志”文件夹的所有者设置为
    www-data
    ,设置
    chmod 0666
  • 仔细检查我的生产环境设置,以便设置
    config.log\u level=:info
  • 检查Apache是否正在使用www数据用户(“etc/apache2/envvars”):

  • “etc/apache2/mods available/passenger.conf”为乘客设置了默认用户:

    <IfModule mod_passenger.c>
      PassengerRoot /usr
      PassengerRuby /usr/bin/ruby
      PassengerDefaultUser www-data
    </IfModule>
    
  • 已阅读并尝试了以下位置建议的所有修复:

    (这就是我现在所能记得的尝试…)

    矿山的一些环境设置:

    • 运行在AmazonEC2上的Ubuntu11.10
    • Apache 2.2.20
    • RVM 1.10.2
    • Ruby 1.9.3p0
    • 轨道3.1.3

    这个问题现在已经解决,尽管问题本身的原因还不完全清楚

    我在Apache&Passenger(又称ModRails)上遇到了一些奇怪的配置问题。存在两个模块:一个似乎与Apache(?)一起打包,另一个是我通过
    passenger-install-apache2-module
    获得的。当我指向预装的时候,我遇到了这个日志问题。当我指出由
    passenger-install-apache2-module部署的一个时,我遇到了一个完全不同的问题,即passenger会因segfault而崩溃(请参阅我在ServerFault上的帖子)

    最后,我彻底清除了我的服务器,并对基本的Ubuntu AMI(在Amazon EC2上运行)中的所有内容进行了干净的安装。重新安装后,我运行了
    passenger-install-apache2-module
    ,并将Apache配置为加载它部署的模块。这一次,模块没有崩溃,但出现了日志错误。我在Rails应用程序的根上设置了
    chmod 755
    ,确保production.log存在,并且它至少具有
    chmod 0666
    权限。瞧,问题解决了

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

    <IfModule mod_passenger.c>
      PassengerRoot /usr
      PassengerRuby /usr/bin/ruby
      PassengerDefaultUser www-data
    </IfModule>
    
    DocumentRoot /var/www/rails/myapp/public
    RackBaseURI /
    RackEnv production
    PassengerMaxPoolSize 4