Fedora, nginx и нестандартная папка для вебсервера

В который раз сталкиваюсь с проблемой настройки nginx на сервере с Fedora. Не очень удобно, когда файлы сервера находятся в /var/www/html как это предлагает по умолчанию nginx. Хочется разместить их где-нибудь «поближе», например в /www

Но в этом случае возникает ошибка связанная с тем что nginx либо не видит этих файлов, либо выдает ошибку доступа. Различные вариации с chmod и сhown не дают нужного результата. Помогает только запуск nginx от имени root. Что не очень правильно.

Как оказалось во всем виноват SELinux. Именно настройки безопастности не дают веб серверу считывать файлы вне «своей» директории.

Исправляется это простановкой правильного контекста для файлов и директорий.

Нужный контекст можно посмотреть с помощью параметра -dZ для команды ls

ls -dZ /var/www/html
system_u:object_r:httpd_sys_content_t:s0 /var/www/html

httpd_sys_content_t это необходимый контекст. Установим его для «новой» папки с файлами сайта.

chcon -Rt httpd_sys_content_t /www

Вполне возможно, что аналогичная проблема возможна не только с nginx, но и с apache. И высока вероятность, что лечится она точно так же.

Запись опубликована в рубрике Полезности, Сисадминское с метками , , , , . Добавьте в закладки постоянную ссылку.

Добавить комментарий