Rails 3.1 Errno :: EACCES权限被拒绝

Sco*_*hea 23 ruby-on-rails-3.1

Rails 3.1 Apache开发环境中的Passenger当我去访问路由的索引(即GET)时,我得到:

Errno::EACCES in Crb_agendas#index

Showing /var/www/crbagenda/app/views/layouts/application.html.erb where line #5 raised:

Permission denied - /var/www/crbagenda/tmp/cache/assets/E2C

Extracted source (around line #5):

2: <html>
3: <head>
4:   <title>CrbAgendas</title>
5:   <%= stylesheet_link_tag "application" %>
6:   <%= javascript_include_tag "application" %>
7:   <%= csrf_meta_tags %>
8: </head>

Rails.root: /var/www/crbagenda
Run Code Online (Sandbox Code Playgroud)

当我进入提到的路径(/ var/www/crbagenda/tmp/cache/assets/E2C)时,没有E2C文件夹和root(运行的是什么apache)拥有资产目录...不确定我做错了什么在这....或者我可以展示什么来帮助.

Sco*_*hea 17

更新:是的,这个答案来自无知,然后似乎获得牵引力.无论如何,真正的答案可以在Austen Tomek的答案中找到

通过在tmp目录上执行chmod 777来解决这个问题所以我猜这是我对用户/权限设置的无知.

  • 这真的不是解决这个问题的方法.这就像说你的钥匙不会打开你的前门所以你只需要取下锁并称它为一天.请参阅奥斯汀的答案以获得更好的方法. (4认同)

Aus*_*mek 15

我发现这个职位时,我遇到了这个错误并运行chmod 777不是这里的解决方案.

您需要对如何启用组权限和适当配置apach设置进行一些研究.这是一个Stack Exchange线程,它详细说明了这一点,并包含有用的链接.确保apache具有对相应目录的读取,写入和执行访问权限,但不要简单地让ANYONE修改目录.找到您的系统apache组并运行chown,chmod -g+[What permissions apache needs goes here]我建议不要使用该-R选项运行它,并主动查看apache对特定目录所需的权限.链接到Stack Exchange线程一般关于apache权限和权限


Cha*_*lie 12

我完全删除了tmp文件夹,这对我有用.它只是由Web服务器重新生成.


com*_*tos 5

只需在项目文件夹上运行 chown

chown -R www-data /var/www/
Run Code Online (Sandbox Code Playgroud)


小智 5

对我来说这很有用:

sudo chown -R username app_path
Run Code Online (Sandbox Code Playgroud)