rbenv在Ubuntu上使用Assetic拒绝权限

时间:2016-01-06 15:51:28

标签: ruby-on-rails ruby symfony ubuntu rbenv

我努力让资产与Sass和Compass在我的生产服务器上工作几个小时。

错误是:

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

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

我检查了类似的问题:

但他们没有帮助。

我正在使用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 个答案:

答案 0 :(得分:1)

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

运行命令sudo chmod o+x /root/.rbend/shims/ruby,它将为文件所有者提供执行权限,大概是你运行chown命令后的www-data。

如果仍然无法运行命令ls -l /root/.rbend/shims/ruby,则第一列的第四个字符应为x,表示所有者具有执行权限。

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