
Файлы, которые я хочу обслуживать через браузер, находятся в /root/my_folder
(ubuntu 14.04). Я изменил путь с /var/www/html
на /root/my_folder
в /etc/apache2/sites-available/000-default.conf
, после этого я получаю ошибку «запрещено» при попытке доступа к ним в браузере.
На странице приветствия Apache по умолчанию указано следующее:
По умолчанию Ubuntu не разрешает доступ через веб-браузер ни к одному файлу, кроме тех, которые находятся в каталогах /var/www, public_html (если включено) и /usr/share (для веб-приложений). Если ваш сайт использует корневой каталог веб-документов, расположенный в другом месте (например, в /srv), вам может потребоваться добавить корневой каталог документов в белый список в /etc/apache2/apache2.conf.
Как добавить корневой каталог в белый список? /etc/apache2/apache2.conf
Какой синтаксис использовать?
решение1
Вы не можете и не должны обслуживать из /root
каталога. Он доступен только пользователю, root
пока Apache работает с пользователем www-data
. Взгляните на журнал ошибок, и вы увидите, что Apache жалуется на разрешения:
tail -f /var/log/apache2/error.log
Если вы в любом случае работаете с root
пользователем в своей системе, то вам следует загружать файлы непосредственно внутрь /var/www/html
, поскольку у вас уже есть там разрешения.
решение2
Самым простым решением, вероятно, будет привязать монтирование этого каталога следующим /var/www/html
образом:
mount -t none -o bind,ro /root/my_folder /var/www/html
затем запустите Apache.
Примечание: В дистрибутиве Fedora Linux и, возможно, в других, использующих systemd, некоторые службы не видят монтирования, выполненные после их запуска, из-за некоторых функций безопасности, включенных по умолчанию. Для получения более подробной информации см.systemd для администраторов, часть XII. Также, если используется SELinux, файлы должны иметь правильную метку, например public_content_t
.