我在安装 Passenger 时需要安装 nginx 吗

我在安装 Passenger 时需要安装 nginx 吗

我正在尝试为 Nginx 安装 Passenger:

$ gem install passenger
$ passenger-install-nginx-module

在安装 Passenger 期间,需要编译并安装 Nginx。这是必需的步骤吗?

我检查了我的安装并发现我已经安装了带有 Passenger 模块的 Nginx:

appls:/www/redmine # zypper se passenger
Loading repository data...
Reading installed packages...

S | Name                      | Summary                                          | Type   
--+---------------------------+--------------------------------------------------+--------
i | rubygem-passenger         | Easy and robust Ruby web application deployment  | package
  | rubygem-passenger-apache2 | Passenger apache module                          | package
i | rubygem-passenger-nginx   | Passenger Nginx module for Ruby on Rails support | package

我可以在 Passenger 设置期间跳过 Nginx 安装吗?

答案1

您需要重新编译启用 Passenger 的 nginx。按照 Passenger 手册操作。(我的 DNS 坏了,因此一旦恢复,我将用链接更新此答案。)

如果我没记错的话,安装程序也会告诉你这一点。也许有一个适用于你的发行版的 NGINX + Passenger 预打包版本?


更新:您可以使用以下配置尝试是否可以使用 Passenger。还可以在其中一个配置中查找 Passenger_root 变量。否则,请尝试在您的系统上找到 Passenger 软件。

passenger_enabled on;
root /var/sites/redmine/public;

如果不存在passenger_root变量,请尝试将其添加到http{}

passenger_root /opt/ruby-enterprise-1.8.7-2011.03/lib/ruby/gems/1.8/gems/passenger-3.0.7;
passenger_ruby /opt/ruby-enterprise-1.8.7-2011.03/bin/ruby;

这些路径来自我的系统。

答案2

如果您通过 gem 更新了 Passenger,但 Passenger nginx 模块来自发行版的存储库,则可能存在版本不匹配的情况,因此我建议执行 nginx 安装。由于 nginx 不执行动态加载模块(它们在构建时链接),因此每次更新时都需要使用最新的 Passenger 模块重建它,假设 nginx 模块的 C 部分在更新之间发生了变化。

相关内容