Назад | Перейти на главную страницу

Какие права у / vol / www на веб-сервере ubuntu?

Мы развертываем наше приложение 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, но пользователь, с которым вы подключаетесь как при развертывании код имеет права на запись в этот каталог.

Решение Эндрю в основном применимо, но немного иначе.

Я бы порекомендовал один из следующих подходов:

  1. Поскольку вы уже настроили /vol/www быть доступным для групповой записи www-data group, вы можете просто добавить своего пользователя в эту группу:

    sudo usermod -aG www-data your-username
    
  2. Или вы можете сделать себя владельцем и таким образом предоставить себе доступ. Поскольку вы уже настроили групповой доступ для веб-сервера, смена владельца каталога не должна вызвать проблем в будущем.

    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