【发布时间】:2014-02-14 16:46:10
【问题描述】:
我最近使用 Ubuntu 12.04 LTS 创建了一个 Linode 服务器
作为管理员用户 aurelien,我安装了 rbenv(在我的情况下,我安装了 1.9.3-p194,用于我的旧版 rails 3.2 应用程序)。
之后我运行gem install passenger并被放置在目录~/.rbenv/shims中
之后我跑了rbenv rehash
并安装 nginx:
我无法运行 passenger-install-nginx-module,因为它要求与 sudo 一起使用。当我尝试sudo passenger-install-nginx-module 时,它告诉我command not found。
然后我发现了这个帖子PhilT's answer
并尝试运行sudo bash -c "source ~/.bashrc && passenger-install-nginx-module"
/home/aurelien/.rbenv/shims/passenger-install-nginx-module
我浏览了整个passenger/nginx的安装,并在它询问前缀目录时按了“回车”。
在我的根目录cd ~/home/aurelien 中,我找不到/opt/nginx。
它是否正确创建了这些目录?
我在根目录下的唯一目录/文件是:
. .. apps .bash_history .bash_logout .bashrc .cache .gem .gitconfig .profile .rbenv .ssh .viminfo
编辑:我的 .bashrc 文件
export RBENV_ROOT="${HOME}/.rbenv"
if [ -d "${RBENV_ROOT}" ]; then
export PATH="${RBENV_ROOT}/bin:${PATH}"
eval "$(rbenv init -)"
fi
# If not running interactively, don't do anything
[ -z "$PS1" ] && return
【问题讨论】:
-
在没有更多信息的情况下调试出错的地方有点困难.. 但希望这篇文章可能会有所帮助:digitalocean.com/community/articles/…
-
感谢 Jay 的回答,但就我而言,我没有使用 RVM。有什么方法可以调试吗?我应该自己创建目录 /opt/nginx 吗?
-
我的猜测:您在 rbenv 用户中安装了乘客,但随后您通过 sudo(根)尝试了一个依赖于该乘客的命令,该命令没有安装乘客。我建议:1. 使用 rvm 或 2. gem installpassenger 在 root 用户上? (须藤宝石安装乘客)。在没有更直接的知识的情况下不确定更多..
-
对于大多数服务器来说,如果没有 root 访问权限就无法安装 nginx(它是系统范围的安装)。您的另一种选择可能是尝试为您的 ubuntu 用户授予 root 访问权限,但出于安全考虑,这通常被认为很糟糕。
-
(这并不是说您不能以非 root 用户身份安装乘客。只是 nginx 通常需要这种访问权限)。
标签: ruby ubuntu nginx passenger rbenv