Ruby on Rails安装程序:无法访问日志文件
我第一次设置了Ruby on Rails; 在我的服务器上,我创建并加载了默认的rails应用程序。 我可以查看默认页面(“欢迎加入!您正在使用Rails”),但是当我点击链接到“查看应用程序环境”时,它会生成500错误。
(你可以在这里查看。)
我想知道更多关于错误的信息,但是,日志文件(“log / production.log”)是空的。 看着我的Apache日志,我发现:
Rails错误:无法访问日志文件。 请确保/var/www/rails/myapp/log/production.log存在并且是chmod 0666.日志级别已提升为WARN,输出指向STDERR直到问题得到解决。
所以,我真的想让我的Ruby on Rails错误日志工作。
我知道这个问题已经发布了几次,但我尝试了一切,我可以找到,所以这是我所尝试的:
chmod 0666
。 www-data
,设置chmod 0666
。 config.log_level = :info
。 检查Apache是否使用www-data用户(“etc / apache2 / envvars”):
export APACHE_RUN_USER=www-data
export APACHE_RUN_GROUP=www-data
“etc / apache2 / mods-available / passenger.conf”有一个为Passenger设置的默认用户:
<IfModule mod_passenger.c>
PassengerRoot /usr
PassengerRuby /usr/bin/ruby
PassengerDefaultUser www-data
</IfModule>
“config.ru”和“configs / environment.rb”的所有者是www-data
我的虚拟主机已被相应设置:
DocumentRoot /var/www/rails/myapp/public
RackBaseURI /
RackEnv production
PassengerMaxPoolSize 4
已经阅读并试图在这些地方建议的所有修复:
(这就是我现在所记得的......)
我的一些环境设置:
这个问题现在已经解决了,尽管问题的原因本身并不完全清楚。
Apache和Passenger(又名ModRails)有一些奇怪的配置问题。 存在两个模块:一个似乎与Apache(?)打包在一起,另一个是通过passenger-install-apache2-module
获得passenger-install-apache2-module
。 当我指向预装的时,我遇到了这个日志记录问题。 当我指出由passenger-install-apache2-module
部署的时候,我遇到了一个完全不同的问题,Passenger会因为段错误而崩溃(请看我在ServerFault上的帖子)。
最后,我完全擦除了我的服务器,并执行了基本Ubuntu AMI(在Amazon EC2上运行,这足够简单)中的所有内容的全新安装。重新安装后,我运行了passenger-install-apache2-module
并配置了Apache以加载模块部署它。 这一次,模块没有崩溃,但出现了日志错误。 我在我的Rails应用程序的根目录上设置了chmod 755
,确保production.log存在并且它至少具有chmod 0666
权限。 瞧,问题没有了。
TL; DR进行了全新安装,确保我使用的是最新的Passenger模块,并且我的文件权限已正确设置。
链接地址: http://www.djcxy.com/p/63561.html上一篇: Ruby on Rails Setup: Unable to access log file
下一篇: Infrastructure management and deployment of Rails 3.1+ app