【问题标题】:Rails: "Permission denied - /tmp/cache/assets/development/sprockets/..."?Rails:“权限被拒绝 - /tmp/cache/assets/development/sprockets/...”?
【发布时间】:2013-10-22 07:06:42
【问题描述】:

当我运行 rails 应用程序并使用浏览器导航到它们时,我收到来自 rails 的错误:

Permission denied - /path/to/my_rails_app/tmp/cache/assets/development/sprockets/37b5a12047376b10a57191a10d3af30a rails error

我在./tmp/ 后面没有这样的文件/文件夹。有什么问题?

【问题讨论】:

    标签: ruby-on-rails error-handling permissions


    【解决方案1】:

    创建或“拥有” my_rails_app 目录的用户不可被服务器写入。

    chown -R webserveruser:webserveruser /path/to/my_rails_app
    

    将 webserveruser 更改为 http、apache 或运行您的服务器的任何用户名。 : 右侧的实体是组,如果您需要写入权限而不更改用户,请使用您的用户可写的组名。

    【讨论】:

    • 我试图找出哪个用户使用 phusion 乘客运行我的 nginx,所以:ps aux | grep nginx -> rootnobody。我通过sudo /opt/nginx/sbin/nginx 运行 nginx(安装了 phusion 乘客,没有 init.d 脚本)
    • 我解决了这个问题:用rm -rf .tmp 删除tmp 并重新创建mkdir tmp,现在没有错误
    • 真棒@static,你真的让我变得优雅。完全适用于我的系统。
    • 在我的例子中,我在第一次安装时以 root 用户身份打开了我的 IDE,然后运行 ​​web 应用程序导致 tmp/ 中的某些东西归 root 所有。获得tmp/ 中所有内容的所有权为我解决了这个问题。
    【解决方案2】:

    我遇到了同样的问题。

    权限被拒绝@apply2files

    问题是你的application目录下的tmp目录对当前用户是不可写的,即当前用户没有写入你的tmp目录的权限应用程序目录。

    我是这样解决的

    只需使用超级用户权限删除 应用程序 目录中的 tmp 目录:

    sudo rm -rf tmp
    

    不要再重新创建tmp目录,这是浪费精力

    只需启动您的应用程序tmp 目录将再次自动创建:

    rails s
    

    就是这样。

    我希望这会有所帮助

    【讨论】:

      【解决方案3】:

      试试这个:

      rm -rf 公共/资产 rake assets:clean RAILS_ENV=development

      chown -R nginx:nginx /www/rblpt/

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 2015-10-30
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 2016-02-10
        • 1970-01-01
        • 2020-05-31
        • 2017-08-04
        相关资源
        最近更新 更多