У меня есть приложение Rails (магазин Spree Commerce), работающее в Digital Ocean и развернутое через Cloud 66.
Я хотел бы подключиться к своему серверу по SSH, запустить консоль rails и настроить некоторые параметры конфигурации Spree. Когда я пытаюсь сделать это, я получаю ошибку разрешений:
Errno::EACCES: Отказано в доступе @ dir_s_mkdir - /var/deploy/my-app/web_head/releases/20150220220517/tmp/cache/29B
Согласно странице настроек руководства для разработчиков Spree, это связано с тем, что настройки кэшируются в памяти, чтобы улучшить производительность. Проблема (я думаю) в том, что у моего пользователя нет прав на запись в каталог tmp/cache
, и именно мой пользователь запускает консоль rails.
Если я ls -l
в каталоге $STACK_PATH/tmp/cache, я получаю следующее:
> lrwxrwxrwx 1 nginx nginx 43 Feb 20 22:05
> tmp/cache ->
> /var/deploy/my-app/web_head/shared/cache
Я полагаю, что мне нужно предоставить моему пользователю доступ на запись к каталогу, как у пользователя nginx. Я попытался добавить себя в группу пользователей nginx, но это, похоже, не дало никакого эффекта. Что я могу сделать, чтобы предотвратить эту ошибку разрешений?
ls -l /var/deploy/my-app/web_head/releases/20150220220517/tmp/cache
? - person sites   schedule 21.02.2015lrwxrwxrwx 1 nginx nginx
.$STACK_PATH
— это переменная, ссылающаяся на/var/deploy/my-app/web_head/current
, которая, в свою очередь, ссылается на последнюю директорию/releases
. - person michaelmichael   schedule 21.02.2015