我是第一次建立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错误记录工作。
我知道此问题已经发布了几次,但我尝试了所有可以找到的内容,所以这就是我尝试过的内容:
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”有一个为乘客设置的默认用户:
<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
已经阅读并尝试了在这些地方建议的所有修复:
(这就是我现在所能记住的一切......)
我的一些环境设置:
答案 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模块,并且我的文件权限已正确设置。