我每次更改Rails代码时都必须重新启动Apache

时间:2011-02-02 20:38:58

标签: ruby-on-rails apache ruby-on-rails-3 passenger

我正在使用Apache和Passenger运行Rails 3。自从我从Mongrel切换到Passenger之后,我发现每次更改代码时都必须重新启动Apache。这是预期的行为吗?避免这个问题的唯一方法是在开发中使用Mongrel吗?

2 个答案:

答案 0 :(得分:22)

假设你必须重新启动Apache,即使是模型/视图/控制器代码,看起来好像你已经设置了Passenger来在生产环境中运行你的应用程序。您可以通过将RailsEnv development附加到虚拟主机来解决此问题。

有些代码会要求您重新启动应用程序 - 例如config/initializersvendor中的任何内容。

有一种方法只能重新启动 app (而不是整个服务器),这只是touch tmp/restart.txt。这将更新tmp/restart.txt的时间戳,这将触发Passenger重新启动应用程序。

此外,您可以执行touch tmp/always_restart.txt。这将告诉Passenger在每个页面加载时重新启动应用程序。如果您正在处理需要重新启动的部分(例如上面提到的示例),这可能很有用。要停止自动重新启动,您必须删除该文件,如下所示:rm tmp/always_restart.txt

答案 1 :(得分:0)

您还可以使用独立模式在开发中单独使用乘客。从项目目录中,键入

passenger start