![我在安装 Passenger 时需要安装 nginx 吗](https://linux22.com/image/551227/%E6%88%91%E5%9C%A8%E5%AE%89%E8%A3%85%20Passenger%20%E6%97%B6%E9%9C%80%E8%A6%81%E5%AE%89%E8%A3%85%20nginx%20%E5%90%97.png)
我正在尝试为 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 部分在更新之间发生了变化。