tmp中的权限被拒绝

leo*_*nel 24 ruby ruby-on-rails

我刚刚使用Ruby 1.9.2部署了一个Rails 3应用程序.我遇到了几个错误.

  1. application.css没编译.所以我将pre compilation设置production.rb为false;
  2. 然后我得到了:cannot generate tempfile所以我做了rake tmp:clear;
  3. 而现在我得到了ActionView::Template::Error (Permission denied - /srv/www/appname/tmp/cache/assets):,我无法解决这个问题.

请帮忙.

Ada*_*lin 38

如果user:group运行您的Web服务器http:http并且它正在*nix上运行,请执行以下操作:

sudo chown -R http:http /srv/www/appname/
Run Code Online (Sandbox Code Playgroud)

还有,愚蠢的问题,但/ tmp/cache/assets是否存在?

如果是这样,正如@leonel指出的那样,您可能还需要更改权限:

chmod 777 /srv/www/appname/tmp/cache
Run Code Online (Sandbox Code Playgroud)

小心设置777任何权限.仅执行此操作以验证权限问题,然后重置为必需的最小权限.

  • 在给出任何目录777权限时请小心:请参阅[修复建议"chmod 777"的答案](http://meta.stackoverflow.com/q/318885/4174897). (5认同)
  • 那么这个命令会给任何人所有权吗?我不得不将缓存的权限更改为drwxrwxrwx. (4认同)

Van*_*uan 6

很可能你是在apache乘客下运行你的应用程序.

您必须将config/environment.rb的所有者更改为对您的应用程序文件夹具有权限的人.

http://www.modrails.com/documentation/Users%20guide%20Apache.html#user_switching

chown -R www-data:www-data /path/to/app
Run Code Online (Sandbox Code Playgroud)