Які дозволи для файлів потрібно встановити в веб-корінці?


53

Я використовую Ubuntu Server 10.10 і встановив веб-сервер Nginx apt-get install nginx. Він створює веб-сторінку за замовчуванням у, /var/www/nginx-default/і цей каталог має дозволи drwxr-xr-x 2 root root.

Коли я заходжу на сайт за замовчуванням на, http://localhost/я отримую це повідомлення на сторінці 403 Forbidden.

Як я повинен встановити дозволи на файл на корені www, щоб я міг забезпечити доступ до веб-сторінок? Або є щось інше, що я повинен змінити?


Примітка: весь повний шлях до вашої останньої папці повинен бути доступний! Навіть однієї папки посередині.
Луціо

Відповіді:


33

Зазвичай я дотримуюся 755(або rwxr-xr-x) свого веб-корінця, але я не думаю, що це проблема, з якою ви стикаєтесь, оскільки ваш каталог вже встановлений для цього. nginxповинен мати доступ до вашого каталогу. Потім питання стає дозволом (або існуванням) файлу, до якого ви намагаєтесь отримати доступ. Файли у вашому каталозі повинні бути читатими користувачем, nginxякий працює як. Зазвичай я залишаю ці файли встановленими на 755(те саме, що і в каталозі). Ви можете змінити весь каталог, зробивши це sudo chmod -R 755 /var/www/nginx-default/.

Якщо в каталозі немає індексного файлу, ви все одно отримаєте ту саму помилку. Файл індексу використовується, коли ви запитуєте каталог, у якому не ввімкнено списки каталогів. Найпоширеніший індексний файл index.html. Цей параметр за замовчуванням можна редагувати у вашому конфігурації, використовуючи щось на зразок:

location / {
    index index.php;
}

Якщо ви хочете nginxстворити список файлів у цьому каталозі для вас, просто увімкніть індексацію каталогів , наприклад:

location  /  {
  autoindex  on;
}

Ні, у мене index.htmlв цьому каталозі немає.
Йонас

Які дозволи у вас index.htmlє?
Джек М.

Дякую, файл конфігурації насправді вказував, /var/www/а генерований index.htmlрозміщувався, /var/www/nginx-default/тому мені довелося скопіювати цей файл, cp /var/www/nginx-default/index.html /var/www/після чого я міг завітати на сайт за допомогою свого веб-браузера.
Йонас

56

Я б запропонував змінити групу вашого webroot на www-dataкористувача, що використовується nginx, а також php5-fpm.

Наприклад:

sudo chown -R "$USER":www-data /webdirectory
sudo chmod -R 0755 /webdirectory

де мій користувач - це ваш власний обліковий запис (що дозволяє легко розміщувати файли у веб-корі без судо).


Дякую, команди виконуються без проблем, але я все одно отримую, 403 Forbiddenколи звертаюся до нього за допомогою веб-браузера.
Йонас

@ Jonas, я б запропонував перевірити ваш журнал помилок nginx, щоб побачити, у чому проблема.
Пітер Сміт

Дякую, я знайшов помилку, вона була в журналі помилок. Дивіться мій коментар до відповіді Джека.
Йонас

4
Що з новими файлами?
mcont

@MatteoContrini використовує, chmod 2755 webdirectory/щоб вони зберігалися з однаковими дозволами та правами
rhand
Використовуючи наш веб-сайт, ви визнаєте, що прочитали та зрозуміли наші Політику щодо файлів cookie та Політику конфіденційності.
Licensed under cc by-sa 3.0 with attribution required.