Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/ruby-on-rails/62.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/blackberry/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Ruby on rails 为什么带有乘客/nginx的Rails仅在开发模式下工作?没有可用的日志_Ruby On Rails_Ubuntu_Nginx_Passenger - Fatal编程技术网

Ruby on rails 为什么带有乘客/nginx的Rails仅在开发模式下工作?没有可用的日志

Ruby on rails 为什么带有乘客/nginx的Rails仅在开发模式下工作?没有可用的日志,ruby-on-rails,ubuntu,nginx,passenger,Ruby On Rails,Ubuntu,Nginx,Passenger,我有一个严重的问题,我们的一个网站服务器。。。在对运行良好的mongrel/haproxy集群进行了内部alpha测试之后,我们希望将nginx与passenger一起用于我们的第一台生产服务器(客户将访问此服务器) 但是,我只能通过使用乘客/nginx的开发模式运行rails应用程序 该应用程序本身在生产模式下与mongrel或webrick完美配合 这个案例中我最大的问题是在nginx或rails日志中找不到任何信息(仅当我使用mongrel或webrick时) 权限是正确的。乘客状态显示应

我有一个严重的问题,我们的一个网站服务器。。。在对运行良好的mongrel/haproxy集群进行了内部alpha测试之后,我们希望将nginx与passenger一起用于我们的第一台生产服务器(客户将访问此服务器)

但是,我只能通过使用乘客/nginx的开发模式运行rails应用程序

该应用程序本身在生产模式下与mongrel或webrick完美配合

这个案例中我最大的问题是在nginx或rails日志中找不到任何信息(仅当我使用mongrel或webrick时)

权限是正确的。乘客状态显示应用程序正在运行,但我始终会看到static 500.html-error页面

如果你们能给我一个提示,帮我解决这个问题,那就太好了

我把配置放在帖子的底部。。。这个精确的配置与
rails\u env开发一起工作但我想使用生产模式;-)

非常感谢你的帮助


版本: Ubuntu 8.04.2 64位/ nginx-0.7.64(通过passenger-2.2.11编译和安装)

cat/opt/nginx/conf/nginx.conf

user  www-data;
worker_processes  4;

error_log  logs/error.log;

#pid        logs/nginx.pid;


events {
    worker_connections  1024;
}


http {
      passenger_root /usr/lib/ruby/gems/1.8/gems/passenger-2.2.11;
      passenger_ruby /usr/bin/ruby1.8;


    passenger_log_level 3;
    include       mime.types;
    default_type  application/octet-stream;

    #log_format  main  '$remote_addr - $remote_user [$time_local] "$request" '
    #                  '$status $body_bytes_sent "$http_referer" '
    #                  '"$http_user_agent" "$http_x_forwarded_for"';

    access_log  logs/access.log;

    sendfile        on;
    #tcp_nopush     on;

    #keepalive_timeout  0;
    keepalive_timeout  65;

    #gzip  on;

    server {
        listen       80;
        server_name  <<servername>>;


 root /srv/app01/public;
 passenger_enabled on;
}
用户www数据;
工人4;
错误日志/error.log;
#pid日志/nginx.pid;
事件{
工人(1024);;
}
http{
passenger_root/usr/lib/ruby/gems/1.8/gems/passenger-2.2.11;
乘客/usr/bin/ruby1.8;
乘客日志第3级;
包括mime.types;
默认_类型应用程序/八位字节流;
#日志格式主“$remote\u addr-$remote\u user[$time\u local]“$request””
#“$status$body\u bytes\u sent”$http\u referer”
#“$http_user_agent”“$http_x_forwarded_for””;
访问日志/access.log;
发送文件到;
#tcp_nopush on;
#保持激活超时0;
保持生命超时65;
#gzip on;
服务器{
听80;
服务器名称;
root/srv/app01/public;
乘客_开启;
}

带Nginx的乘客默认在生产模式下运行。使用
乘客安装Nginx模块
命令安装与乘客模块一起编译的Nginx。 是否确实已为生产模式创建并迁移了数据库

rake db:create RAILS_ENV=production
rake db:migrate RAILS_ENV=production
我觉得你的nginx.conf很不错。请确保nginx用户(例如
www-data
)可以访问你的rails应用程序


祝你好运

我在nginx后面的Passenger上运行Rails 2.3.5,我也遇到了同样的问题。我的解决方案总是切换到Passenger/nginx中的开发模式或WEBrick中的生产模式进行调试,但听起来你似乎已经尝试了这两种模式


您是否尝试取消对nginx.conf中的行
error\u log logs/error.log;
的注释?

只需从应用程序目录中删除config.ru即可


乘客将从机架切换到rails,一切正常

这是rails中的一个错误。故障保护中间件没有正确地将错误消息刷新到日志文件中。我在几个月前报告并修复了此问题,但他们尚未发布此问题:
自己应用补丁,您应该能够在日志中看到错误消息。

哦,我忘了,rails是2.3.5版,我不知道乘客,但我知道nginx…您不应该在
服务器下有
位置
部分吗?并且您在服务器或http上缺少一个关闭
谢谢您的评论。。。我想我错过了},因为我想缩短配置代码。。。。在我删除的配置文件中有很多被注释掉的示例。。。然而,配置文件应该是有效的,因为正如我所说的,它在开发模式下运行得很好,所以错误可能不是来自nginx!嗨,谢谢你的回答。。。数据库设置正确,文件权限应该正确,因为nginx+passenger工作在开发模式下。。。你有什么提示我可以在哪里找到调试/日志消息吗?嗨,谢谢你的回答。。。真遗憾,开发模式对我们来说太慢了,我们需要缓存和所有的东西。。。正如你在上面的帖子中看到的,我取消了这行的注释。也许我们必须通过禁用一些功能并重试来检查到底是什么问题(缓存或其他),我不建议永久运行在开发中,只是暂时查找错误的原因。无论如何,据我所知,这是一个乘客错误。令人沮丧的。