Rails 3.1 Errno :: EACCES Отказано в доступе - PullRequest
23 голосов
/ 15 ноября 2011

Rails 3.1 Passenger в среде разработки Apache Когда я иду, чтобы получить доступ к индексу (то есть 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

Когда я иду по указанному пути (/ var / www / crbagenda / tmp / cache / assets / E2C), папка E2C отсутствует, а root (как работает apache) владеет директорией ресурсов ... не знаю, что Я сделал неправильно здесь .... или что еще я мог показать, чтобы помочь.

Ответы [ 9 ]

17 голосов
/ 15 ноября 2011

Обновление: Да, этот ответ пришел из невежества, а затем, казалось, набрал силу.В любом случае, реальный ответ можно найти в ответе Остина Томека

. Он был взломан с помощью chmod 777 в каталоге tmp, поэтому я догадываюсь, что это мое невежество в настройках пользователя / прав доступа.

15 голосов
/ 03 октября 2012

Я нашел это сообщение, когда столкнулся с этой ошибкой, и запуск chmod 777 - это , а не решение здесь.

Вам необходимо провести некоторое исследование о том, как включить групповые разрешения и правильно настроить параметры Apache. Вот ветка Stack Exchange, которая довольно подробно описывает это и содержит полезные ссылки. Убедитесь, что apache имеет доступ для чтения, записи и выполнения к соответствующим каталогам, но не позволяйте ЛЮБОМУ изменять каталог. Найдите вашу системную группу apache и запустите chown и chmod -g+[What permissions apache needs goes here]. Я бы посоветовал не запускать эту опцию с параметром -R и активно выяснить, какие разрешения apache необходимы для определенных каталогов. Ссылка на ветку Stack Exchange относительно разрешений apache и общих разрешений

12 голосов
/ 26 июля 2012

Я полностью удалил папку tmp, у меня это сработало. Он просто восстанавливается веб-сервером.

5 голосов
/ 23 ноября 2015

Для меня это было полезно:

sudo chown -R username app_path
4 голосов
/ 26 июня 2014

Просто запустите chown в папке проекта

chown -R www-data /var/www/
1 голос
/ 19 апреля 2018

Я использую Windows против кода с подсистемой Ubuntu в качестве терминала.

Мне пришлось переместить папку моего проекта из области подсистемы Ubuntu в область Windows ... поэтому каждый раз, когда я запускаю что-то с Ubuntu, у меня естьчтобы набрать cd /mnt/c/projects/my_app

, кажется, он позволяет приложениям работать, а компоненты базы данных / сервера работают нормально ..

Rhys

0 голосов
/ 01 июня 2019

В Windows просто откройте свой cmd с правами администратора и выполните команду gem install "lib"

0 голосов
/ 25 сентября 2014

В моем случае изменение прав или владение каталогом не помогло (ну, было необходимо). Оказалось, что Selinux включился (по умолчанию включен в Fedora) и отключение было лекарством:

$ sudo setenforce 0

Чтобы сделать изменение постоянным, необходимо изменить настройки в файле /etc/selinux/config:

SELINUX=disabled
0 голосов
/ 05 июля 2014

Благодаря сообщениям выше, я тоже решил свою проблему. Лично важная папка была помечена как «Скрытая» (следуйте по пути ОШИБКА Ошибка: Отказано в доступе - ... / _ netrc (Errno :: EACCES) Как только я щелкнул правой кнопкой мыши и установил параметры папки в НЕ скрытые, то все заработало отлично!

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...