Я установил веб-сервер Apache на свой Centos 7 и включил mod_ssl
его. Но когда я пытаюсь изменить его корневой каталог документов по умолчанию на новый (например /home/user/public_html
, ), он показывает мне 403 Forbidden
страницу. Я думаю, что это из-за прав доступа к каталогу, но я не знаю, что с этим делать и как это изменить. Что мне теперь делать? Любая помощь действительно ценится.
решение1
Не размещайте корни документов в домашних каталогах пользователей. Это небезопасно по ряду причин, и SELinux по умолчанию не разрешает веб-серверу читать файлы в домашних каталогах пользователей. Используйте каталог, который распознает SELinux, например /srv/www
, создайте в нем каталоги для каждого виртуального хоста и предоставьте им соответствующие разрешения и списки контроля доступа для пользователей, которые должны получить доступ к содержимому.
Если по какой-то причине вы не можете следовать рекомендациям и вам необходимо, чтобы веб-сервер считывал содержимое из домашних каталогов пользователей, вы можете задать httpd_read_user_content
логическое значение.
setsebool -P httpd_read_user_content 1
Но обратите внимание, что, опять же в целях безопасности, SELinux никогда не разрешит запись в домашние каталоги пользователей, поэтому функции веб-приложений, которые ожидают записи контента (например, загрузок пользователей), работать не будут. В другом каталоге, таком как /srv/www
, каталогам, которые должны быть доступны для записи, можно присвоить тип httpd_sys_rw_content_t
.