2013-04-22 113 views
0

我需要更新系统中的红宝石。这是一个小小的更新,我会通过安装一个新的ruby RPM来做到这一点,它有一个新的补丁。为了让乘客重新启动,我必须在更新红宝石后重新启动apache吗?

我的问题是,我必须在系统中更新ruby之后重新启动apache吗?还是让乘客重新加载红宝石的另一种方式?

我试着运行一个页面,输出RUBY_VERSION,RUBY_RELEASE_DATE,RUBY_PATCHLEVEL为了检查,但它不适用于我,因为更新是RPM中的一个新补丁,而不是红宝石本身,所以这些常量对于旧版本和新版本是相同的。

谢谢

+1

你* * [RTFM](http://www.modrails.com/documentation/Users%20guide%20Apache.html#_redeploying_restarting_the_ruby_on_rails_application)**? – deefour 2013-04-22 11:24:52

+0

问题不在于询问代码,而在于底层ruby – DGM 2013-04-22 13:34:03

回答

1

不,你不需要重新启动整个Apache。
你需要重新启动你的应用程序。

乘客有一个简单的方法来告诉应用程序重新启动:create a restart.txt file在您的应用程序内的tmp目录中。

应用程序将在下次请求时重新启动。
因此,您可能想要在部署后强制重新启动后自动请求您的应用程序。

+1

这是重新启动应用程序,但可能无法重新启动初始乘客应用程序,因此可能无法获得更新的ruby版本。最好重启apache服务器。 – DGM 2013-04-22 13:35:38

1

我非常确定,至少在乘客3中,您确实需要重新启动apache。

安装新的红宝石后,您需要重新安装乘客Apache模块,连接到新的红宝石(passenger-install-apache2-module),那么你就需要采取Apache的配置线,它显示你安装后,和编辑包含它们的apache配置文件(替换指向旧ruby的旧行),那么您需要重新启动apache。

现在,它的可能有不同的方式来做到这一点无需重新启动Apache的乘客4(还没有正式的最终版本,但在RC)。乘客4对于同时运行多个红宝石的乘客具有一些功能,可能最终也允许这种事情;我不确定,我还没有看太多。但我认为,乘客3(现有的稳定乘客,大多数可能仍在使用),你必须按照上述方式行事。

你可以重新启动一个特定的应用程序运行在一个restart.txt像乘客Damien MATHIEU在一个不同的答案说。但要改变乘客运行下的红宝石版本,并启动应用程序下 - 我敢肯定你需要重新启动Apache(在第一次重新安装Apache乘客模块,并改变乘客Apache配置)

相关问题