Это то, что у меня есть в моем httpd.conf
<VirtualHost *:80>
ServerAdmin spero78@spero78.com
ServerName mcmoddr.com
ServerAlias www.mcmoddr.com
DocumentRoot /home/mcmoddr/www/
ErrorLog /mcmoddr/logs/error.log
CustomLog /mcmoddr/logs/accesslog combined
</VirtualHost>
При посещении сайта я получаю ошибку 403 Forbidden, файлы добавляются с помощью vsftpd и имеют разрешения drwxr-xr-x
Вы используете стандартную установку CentOS, если это верно, проверьте, находится ли SELinux в принудительном режиме
getenforce
если результат "Принуждение"
временно изменить его на разрешающий
setenforce 0
и попробуйте еще раз, вы также можете указать состояние веб-контента для файлов в вашем домашнем каталоге.
Отключить SELinux или запустить в ROOT
setsebool -P httpd_enable_homedirs on
chcon -R -t httpd_sys_content_t /home/
chcon -R -t httpd_sys_rw_content_t /home/
Ответ Freaktor "setenforce 0" "сработал" для меня (спасибо!)
Но чтобы он работал и снова включил SELinux, мне нужно было
sudo chcon -Rv --type=httpd_t /path/to/my/files
... это дало моему каталогу и всем файлам и каталогам в нем контекст безопасности «httpd_t», что является неуклюжим способом сказать, что SELinux позволяет httpd читать эти файлы.
снова включить selinux было так же просто, как
setenforce 1
У вас наверняка есть запретить все где-то в глобальной конфигурации. Попробуйте добавить это в строфу vhost:
<Directory /home/mcmoddr/www>
Order allow,deny
Allow from all
</Directory>
вам нужно использовать <Directory>
контейнер, как упоминалось выше.
И тогда вам нужно проверить со своего DocumentRoot
путь, каждый каталог должен иметь разрешение на чтение, чтобы пользователь службы Apache может получить доступ.
вы можете проверить с помощью ls -ld
Добавьте следующую строку в существующий код.
restorecon -r /home/mcmoddr/www/
Это должно решить вашу проблему.