Rails 2.3.3 - 如何切换至生产模式

6

如何将应用程序设置为生产模式?

好的,这应该是一个简单的问题,但我即将部署我的第一个Rails应用程序,并且已经正确设置了所有内容:Ubuntu Hardy、Passenger、MySQL。然而,它仍在开发模式下运行。我只能找到旧版本Rails的文档,并希望确保我做得对。

谢谢您提前。

3个回答

7

您需要设置RackEnv而不是RailsEnv。实际上,我两个都设置(尽管我可能不需要...?)。

Rails 2.3应用程序的示例虚拟主机:

<VirtualHost *:80>

  ...
  RackEnv production
  RailsEnv production
  ...

</VirtualHost>

1
谢谢你的提示。我刚刚找出了我的错误。它是基于视图中的RAILS_ENV在生产环境中运行的。 - Tim B.
升级Passenger到3版本后,我也遇到了这个问题。现在我被迫使用RackEnv,但不知道为什么。 - knoopx

2
乘客默认情况下会在生产模式下运行所有内容,除非您另有指定: Passenger RailsEnv documentation 如果您创建了一个输出RAILS_ENV的视图,它会显示“development”吗?
- 如果是这样,那么您可能在environment.rb文件中的某个地方设置了RAILS_ENV变量为“development”。 - 如果没有看到这个,并且看到其他症状,请列出这些症状。

我最近开始使用Rails.env而不是RAILS_ENV。没有任何区别,但感觉更好。与Rails.root很搭配。 - Gareth
谢谢Andy和btelles。我的environment.rb中没有关于Rails_ENV的内容。感谢确认Passenger默认运行在生产模式下。还有一件事,我发现public/index.html可以加载,但是当尝试访问任何控制器时,我会得到一个500服务器错误。我被难住了。 - Tim B.
如果这样做还不行,你可能需要创建一个新问题,但是在你的 production.rb 中设置 config.action_controller.consider_all_requests_local = true ,这样你就可以看到错误信息。 - Andy Gaskell
没错,安迪正在处理这个问题。 你也可以检查日志文件,如果最近的几个请求难以解密,可以将它们发布出来。 - btelles

0

根据文档,您可以设置RailEnv。默认情况下,Passenger在生产模式下运行,因此您可能将RailsEnv development复制到配置文件中。


呵呵...哦,你先到了! - btelles

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接