【问题标题】:Passenger thinks I'm on the wrong ruby version?乘客认为我使用了错误的 ruby​​ 版本?
【发布时间】:2013-09-07 16:08:32
【问题描述】:

奇怪的问题。我在 Apache 2 服务器上安装了乘客,并试图让 Rails 应用程序运行。第一次部署 Rails 应用程序,所以不太清楚发生了什么。

乘客给我这个错误:

但问题是我的系统上什至没有安装 1.9.2-p136。我删除了所有 ruby​​ 版本并用 1.9.3-p448 完全重新安装了 ruby​​。 (我也有 2.0.0 但我默认是 1.9.3)

没有看到乘客是如何认识到我正在运行我的系统上不存在的 ruby​​ 构建的。

我希望这是我开始这项工作的最后一个障碍。我已经处理了试图启动这个该死的 Rails 应用程序时可能遇到的所有问题。我会告诉你,它们通过使其无法部署来弥补开发的容易程度。

谢谢大家!

【问题讨论】:

    标签: ruby-on-rails ruby deployment passenger


    【解决方案1】:

    1.9.2 可能是系统红宝石(或者曾经是,在某些时候)。现在,Passenger 是如何在运行的同时使用 1.9.3 的 rvm 安装中的 gems...

    无论如何,请检查您的乘客配置。确保PassengerDefaultRuby(如果存在)和PassengerRuby 指令指向正确的版本;乘客经常对不同的 PATH 感到困惑,对于 rvm 尤其如此,您可能在用户 shell 会话中运行的版本与系统工具自己发现的版本不同。

    人们喜欢 Unicorn、Puma 和 Rainbows 等解决方案是有原因的。 ;) 乘客,一旦你编译和配置它,几乎是一劳永逸,但达到这一点可能会很痛苦。

    【讨论】:

    • Unicorn/Puma/Rainbows 没有这个问题的原因是因为它们使用你 shell 中的 PATH(假设你通过你的 shell 启动它),而 Apache 和 Nginx(从 init 启动) 没有相同的环境变量。但如果这是您最大的问题,那么您可以使用Passenger Standalone。你以passenger start 开始它,它使用与你的shell 完全相同的环境,并且几乎可以正常工作。你甚至可以将它放在 Nginx 反向代理后面,就像使用 Unicorn/Puma/Rainbows 一样。
    • 所以重点是:如果您无法让 Apache/Nginx 正常工作,请使用Passenger Standalone。但在 Apache/Nginx 方面,我们已经通过从您的 shell 配置文件中推断环境变量,对 Phusion Passenger 4.0 进行了重大改进。
    • 我实际上只是删除了PassengerRuby指令并且它起作用了。不知道到底是什么问题,但它的工作原理,所以我不会抱怨!
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2013-11-30
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多