rbenv 权限在 Ubuntu 上被 Assetic 拒绝

Posted

技术标签:

【中文标题】rbenv 权限在 Ubuntu 上被 Assetic 拒绝【英文标题】:rbenv Permission denied with Assetic on Ubuntu 【发布时间】:2016-04-10 18:51:36 【问题描述】:

为了让 Assetic 与 Sass 和 Compass 在我的生产服务器上工作,我苦苦挣扎了好几个小时。

错误是:

sh: 1: /root/.rbenv/shims/ruby: Permission denied

这是因为我的 rbenv 安装在 /root 目录下,所以 Assetic 没有使用它的权限。

我检查过类似的问题:

“Rbenv permission denied issue” “rbenv: Permission Denied” “Should rbenv be installed system-wide, or at a user level?”

但他们没有帮助。

我使用的是 Apache,所以我猜默认用户是“www-data”。

如上述问题之一所述,我尝试在 /root 中授予 www-data 权限,但要么这不起作用,要么我做错了。

sudo chown -R www-data ~/.rbenv

这是完整的错误:

[exception] 500 | Internal Server Error | Assetic\Exception\FilterException
    [message] An error occurred while running:
    '/root/.rbenv/shims/ruby' '/usr/local/bin/compass' 'compile' '/var/www/myapp/app/cache/dev' '--boring' '--images-dir' '/var/www/myapp/app/../web/uploads/img' '--config' '/var/www/myapp/app/cache/dev/assetic_compassu3IAzJ' '--sass-dir' '' '--css-dir' '' '/var/www/formation-hero/app/cache/dev/assetic_compassPbwM3H.scss'

    Error Output:
    sh: 1: /root/.rbenv/shims/ruby: Permission denied

我在 Ubuntu 14.04 上使用 Apache

#  which ruby
/root/.rbenv/shims/ruby

# which compass
/usr/local/bin/compass

# which rbenv
/root/.rbenv/bin/rbenv

# rbenv -v
rbenv 1.0.0-14-gc388331

Symfony 2.7 安装在 /var/www/myapp/ 下

我应该怎么做才能授予 Apache 使用 /root 存储库的权利,或者更好的是,如何为我的 Symfony2 项目安装 rbenv?

使用 OS X 在我的本地主机上一切正常。

【问题讨论】:

【参考方案1】:

我没有使用上述组件的经验,但假设执行文件的用户是 www-data,这可能是 /root/.rbend/shims/ruby 文件的权限问题。

运行命令sudo chmod o+x /root/.rbenv/shims/ruby,它将授予文件所有者执行权限,大概是 www-data,因为您运行了 chown 命令。

如果还是不行,运行命令ls -l /root/.rbenv/shims/ruby,第一列第4个字符应该是x,表示拥有者有执行权限。

有关 linux 文件权限的更多信息,请查看“Understanding and Using File Permissions”。

【讨论】:

谢谢米格尔·亚历山大。我将权限更改为 777 并且可以正常工作。在这里,他的命令是任何人都在寻找它。 chmod 777 /root/.rbenv/shims/ruby

以上是关于rbenv 权限在 Ubuntu 上被 Assetic 拒绝的主要内容,如果未能解决你的问题,请参考以下文章

sh rbenv在Ubuntu 14.04 LTS上安装ruby 2.3.0

sh 在Ubuntu 14.04上使用rbenv和ruby-build安装ruby 2.2.3

缺少命令 rbenv install

rake cp 权限在 Windows 上被拒绝

Android 中的 Firestore 权限在测试规则上被拒绝

Android应用程序崩溃ActivityManager权限在Eclipse上被拒绝