【问题标题】:Installing passenger nginx安装乘客 nginx
【发布时间】:2012-11-07 11:53:13
【问题描述】:

我安装了乘客 gem,但它不适用于我的旧 nginx。所以我正在尝试从乘客脚本安装 nginx。

我做$ sudo ./bin/passenger-install-nginx-module,这给了

 * rack... not found
 * To install rack:
   Please install RubyGems first, then run /home/dbadmin/.rvm/wrappers/ruby-1.9.3-p286@rails-3.1.1/gem install rack

虽然实际上已经安装了 rack gem。无论如何,我愿意

$ /home/dbadmin/.rvm/wrappers/ruby-1.9.3-p286@rails-3.1.1/gem install rack
Successfully installed rack-1.4.1
1 gem installed
Installing ri documentation for rack-1.4.1...
Installing RDoc documentation for rack-1.4.1...

在这之后,$ sudo ./bin/passenger-install-nginx-module 又说* rack... not found

可能会发生什么?

【问题讨论】:

    标签: ruby-on-rails nginx rvm rack passenger


    【解决方案1】:

    如果要将 sudo 与 rvm 一起使用,则需要使用 rvmsudo - 因为 sudo 在更改为 root 用户时不会运行 root 的配置文件(即不加载 RVM)。

    rvmsudo ./bin/passenger-install-nginx-module
    

    【讨论】:

    • 谢谢。两个问题:为了通过 rvmsudo 使用 rvm gemsets 进行此安装,您不需要以部署用户身份运行它吗?那不是不应该拥有 sudo 权限的用户吗?
    • 我同意你几乎不应该同时使用 sudo 和 rvm。我们使用在我们的网络服务器上没有 sudo 访问权限的部署用户。然而,由于这个特定的乘客命令需要安装 sudo,它应该以 root 或具有 sudo 权限的人的身份运行一次。
    • 谢谢!这终于成功了。我仍然对为什么使用 sudo bash 登录并安装 rack 并没有解决它感到困惑。
    【解决方案2】:

    我最近遇到了同样的问题,我认为这是与 rvm gemsets 相关的混淆。为了继续前进,我需要以 root 身份将 rack gem 安装到系统的 gemset 中,然后乘客的安装程序才能找到它并继续。

    【讨论】:

    • 谢谢!我做了 sudo bash 并安装了 rack gem。现在每当我登录时,即使我不在 sudo 模式下,我也只会看到系统/全局设置。
    • 我确实使用 ruby​​-1.9.3-p286 回到了我的 rvm ruby​​,但即使在系统 ruby​​ 中安装 rack 后,它仍然说 rack not found。它如何检查机架的存在?
    • 好的 - 我有一份厨师食谱,可以让我准确了解您的位置。我将在今天晚些时候尝试复制它。