我在
1.14
上将 nginx 从版本 1.18 (Ubuntu)
更新到 Ubuntu 18.04
。
这样做似乎会破坏乘客。所以我卸载并尝试通过 Passenger 安装 Ubuntu 18.04 说明.
重新安装 Open Source Passenger 版本我到了这条线:
sudo apt-get install -y libnginx-mod-http-passenger
抛出这个错误
libnginx-mod-http-passenger :取决于:nginx-common(< 1.14.1) but 1.18.0-3ubuntu1+bionic1 is to be installed
Update 我也尝试过企业版。按照企业版安装说明,收到类似的错误信息:
libnginx-mod-http-passenger-enterprise :取决于:nginx-common(< 1.14.1) but 1.18.0-3ubuntu1+bionic1 is to be installed
我确实尝试研究这个问题,我在 Phusion 的 GitHub 上发现了这个问题以及这个最近的问题。似乎大多数人正在做的是将他们的 nginx 版本回滚到
1.14
.
它没有被弃用,没有。问题是您尝试安装的打包模块是为通过系统默认存储库分发的旧 Nginx 版本制作的。这出现在您提到的安装指南中:
此时我们假设您已经从系统存储库安装了Nginx。
这意味着假设您安装了特定版本的 Nginx(在您的情况下为
1.14.0
),为此构建了打包模块。 新乘客文件中强调了这一点:
如果你想使用我们打包的 Nginx 模块,你必须使用你的发行版提供的 Nginx 包。例如,如果你有 NGINX 设置提供的 repo,你将需要 编译一个与 Nginx 兼容的动态模块。
最后一个引用中的链接将带您进入有关如何编译动态乘客模块并在 Nginx 配置中启用它的指南。我不会重复整个过程以保持简短的答案,但一般方法是这样的:
cd /path-to-nginx-source-dir
./configure --prefix=/opt/nginx \
--with-some-configure-flag \
--add-dynamic-module=$(passenger-config --nginx-addon-dir) \
--add-module=/path-to-some-other-nginx-module
make
sudo make install
nginx.conf
:load_module modules/ngx_http_passenger_module.so;
就个人而言,我宁愿选择“nginx-behind-nginx”方法,也不愿构建模块。那就是你有任何你喜欢的 Nginx 版本,但它作为另一个 Nginx 的反向代理运行,启用了 passenger (Passenger Standalone)。由于对性能的影响不明显,这将更容易维护(安装、更新)。有关详细信息,请参阅此指南。