Мы развертываем наше приложение rails на сервере ubuntu 10.04. Когда cap deploy: setup, появляется сообщение об ошибке:
* executing "mkdir -p /vol/www/myapp /vol/www/myapp/releases /vol/www/myapp/shared /vol/www/myapp/shared/system /vol/www/myapp/shared/log /vol/www/myapp/sha
red/pids"
servers: ["11.15.69.45"]
Password:
[11.15.69.245] executing command
*** [err :: 11.15.69.45] mkdir: cannot create directory `/vol/www/myapp/releases'
вывод ls -ld / vol / www:
drwxr-xr-x 3 root root 4096 2011-11-22 04:35 /vol/www
Какие дополнительные права нам нужно назначить на веб-сервере и какому подкаталогу эти права нужно назначить?
Кажется, здесь возникла некоторая путаница в отношении вашей проблемы. В ответе Эндрю рассматривается вопрос: «Имеет ли веб-сервер необходимые разрешения для записи непосредственно в то место, куда вы развертываете?»
Однако на самом деле у вас возникают проблемы на более раннем этапе: развертывание кода на сервере. На этом этапе не так важно, веб сервер можно писать в / vol / www, но пользователь, с которым вы подключаетесь как при развертывании код имеет права на запись в этот каталог.
Решение Эндрю в основном применимо, но немного иначе.
Я бы порекомендовал один из следующих подходов:
Поскольку вы уже настроили /vol/www
быть доступным для групповой записи www-data
group, вы можете просто добавить своего пользователя в эту группу:
sudo usermod -aG www-data your-username
Или вы можете сделать себя владельцем и таким образом предоставить себе доступ. Поскольку вы уже настроили групповой доступ для веб-сервера, смена владельца каталога не должна вызвать проблем в будущем.
sudo chown your-username /vol/www
Любой из этих вариантов должен предоставить вашему пользователю надлежащий доступ для развертывания кода, а также сохранить доступ веб-сервера к этому каталогу.
Пользователь веб-сервера в Ubuntu - это www-data (если вы не используете mod_suexec). Поэтому для www-data требуется разрешение на запись в / vol / www. Один из способов сделать это - сделать www-data владельцем:
chown www-data /vol/www
Или вы можете использовать групповое владение и разрешения:
chgrp www-data /vol/www
chmod g+w /vol/www
Третий способ - с ACL:
setfacl -m u:www-data:rwx /vol/www
getfacl /vol/www # to see the ACL grant