我正在使用Apache和Passenger运行Rails 3。自从我从Mongrel切换到Passenger之后,我发现每次更改代码时都必须重新启动Apache。这是预期的行为吗?避免这个问题的唯一方法是在开发中使用Mongrel吗?
答案 0 :(得分:22)
假设你必须重新启动Apache,即使是模型/视图/控制器代码,看起来好像你已经设置了Passenger来在生产环境中运行你的应用程序。您可以通过将RailsEnv development
附加到虚拟主机来解决此问题。
有些代码会要求您重新启动应用程序 - 例如config/initializers
和vendor
中的任何内容。
有一种方法只能重新启动 app (而不是整个服务器),这只是touch tmp/restart.txt
。这将更新tmp/restart.txt
的时间戳,这将触发Passenger重新启动应用程序。
此外,您可以执行touch tmp/always_restart.txt
。这将告诉Passenger在每个页面加载时重新启动应用程序。如果您正在处理需要重新启动的部分(例如上面提到的示例),这可能很有用。要停止自动重新启动,您必须删除该文件,如下所示:rm tmp/always_restart.txt
。
答案 1 :(得分:0)
您还可以使用独立模式在开发中单独使用乘客。从项目目录中,键入
passenger start