我在Ubuntu 18.04
上更新了nginx从1.14
版本到1.18 (Ubuntu)
。
这样做似乎会破坏乘客。所以我卸载并试图通过Passenger installation Ubuntu 18.04 instructions重新安装开源乘客版本。
我到了这一行:
sudo apt-get install -y libnginx-mod-http-passenger
它抛出这个错误
libnginx-mod-http-passenger:取决于:nginx-common(〈1.14.1)但1.18.0- 3ubuntu 1 + bionic 1将被安装
更新我也尝试了企业版,按照企业版安装说明,收到了类似的错误信息:
libnginx-mod-http-passenger-enterprise:取决于:nginx-common(〈1.14.1)但1.18.0- 3ubuntu 1 + bionic 1将被安装
我确实试图研究这个问题,我发现了this issue on Phusion's GitHub和this more recent issue。似乎大多数人正在做的是将他们的nginx版本回滚到1.14
。
1条答案
按热度按时间wnavrhmk1#
问题是,您尝试安装的打包模块是为通过系统默认存储库分发的较旧的Nginx版本制作的。这出现在您提到的installation guide中:
在这一点上,我们假设你已经从你的***系统***仓库安装了Nginx。
这意味着,假设您安装了特定版本的Nginx(在您的案例中为
1.14.0
),打包的模块是为该版本构建的。这在new passenger documentation中强调:如果你想使用我们打包的Nginx模块,你必须使用你的发行版提供的Nginx包。例如,如果你有NGINX安装程序提供的repo,你将需要编译一个与该Nginx兼容的动态模块。
最后一个引用中的链接将带您到如何编译动态乘客模块并在Nginx配置中启用它的指南。我不会重复整个过程以保持答案简短,但一般方法是这样的:
1.获取Nginx的乘客模块源代码。
1.获取您已安装版本的Nginx源代码。
1.使用passenger模块编译Nginx:
1.让Nginx加载模块,将这一行添加到
nginx.conf
:就个人而言,我宁愿选择'nginx-behind-nginx'方法而不是构建模块。也就是说,您可以使用任何您喜欢的Nginx版本,但它作为另一个启用乘客的Nginx的反向代理运行(乘客独立)。由于对性能的影响不明显,这将更容易维护(安装,更新)。有关详细信息,请参阅guide。