0

我需要更新系统中的 ruby​​。这是一个小更新,我将通过安装一个新的 ruby​​ RPM 来实现,该 RPM 上有一个新的补丁。

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

我尝试运行一个输出 RUBY_VERSION、RUBY_RELEASE_DATE、RUBY_PATCHLEVEL 的页面以检查这一点,但它对我不起作用,因为更新是 RPM 中的新补丁,而不是 ruby​​ 本身,所以这些常量是新旧版本相同。

谢谢

4

2 回答 2

1

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

安装新的 ruby​​ 后,您需要重新安装乘客 apache 模块,链接到您的新 ruby​​,(passenger-install-apache2-module),然后您需要获取安装后显示的 apache 配置行,并编辑您的 apache 配置文件以包含它们(替换指向旧红宝石的旧行),然后您需要重新启动 apache。

现在,可能有一种不同的方法可以在不为乘客 4 重新启动 apache 的情况下执行此操作(仍然不是官方最终版本,但在 RC 中)。乘客 4 为同时运行多个红宝石的乘客提供了一些功能,最终可能也会允许这种事情;我不确定,我没有仔细研究过。但我认为对于乘客 3(现有的稳定乘客,大多数人可能仍在使用),您必须按照上述方式进行操作。

您可以重新启动在乘客下运行的特定应用程序,restart.txt就像 Damien MATHIEU 在不同的答案中所说的那样。但是要更改乘客正在运行的 ruby​​ 版本并在其下启动应用程序 - 我很确定您需要重新启动 apache(在首先重新安装 apache 乘客模块并更改乘客 apache 配置之后)

于 2013-04-22T13:32:05.823 回答
1

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

乘客有一个简单的方法来告诉应用程序重新启动:在应用程序的 tmp 目录中创建一个 restart.txt 文件

应用程序将在下次向其发出请求时重新启动。
因此,您可能希望在部署后自动请求您的应用程序以强制重启。

于 2013-04-22T11:23:03.413 回答