Назад | Перейти на главную страницу

RHEL Apache: 403 запрещено на VirtualHost

Все мои файлы принадлежат apache: apache. Все каталоги имеют 770 разрешений, а файлы - 660 разрешений. Мой исходный виртуальный хост вроде бы в порядке, но второй выдает ошибку 403 на всех путях.

Вот моя текущая конфигурация в /etc/httpd/conf/httpd.conf

<Directory "/var/www/site1">
        Options Indexes FollowSymLinks
        AllowOverride All
        <IfModule mod_access.c>
                Order allow,deny
                Allow from all
        </IfModule>
</Directory>

<Directory "/var/www/site2">
        Options Indexes FollowSymLinks
        AllowOverride All
        <IfModule mod_access.c>
                Order allow,deny
                Allow from all
        </IfModule>
</Directory>

<VirtualHost *:80>
        ServerAdmin     serveradmin@domain.com
        DocumentRoot    /var/www/site1/
        ServerName      site1.domain.com
        ErrorLog        /var/log/httpd/site1.error.log
        CustomLog       /var/log/httpd/site1.access.log common
</VirtualHost>

<VirtualHost *:80>
        ServerAdmin     serveradmin@domain.com
        DocumentRoot    /var/www/site2/
        ServerName      site2.domain.com
        ErrorLog        /var/log/httpd/site2.error.log
        CustomLog       /var/log/httpd/site2.access.log common
</VirtualHost>

Скорее всего, виноват здесь SELinux.

Каким-то образом родительский контекст не был унаследован правильно при создании файлов / каталогов в /var/www каталог.

Неявная установка контейнера с помощью restorecon или явно с chcon должен исправить проблему.

Следите за линиями в /var/log/audit.log при устранении неполадок в настройках SELinux.

Чтобы решить проблему, запустите:

# restorecon -R /var/www

как корень. Это восстановит /var/wwwконтекст, определяемый системной политикой SELinux для /var/www и все папки и файлы под ним.

Дополнительную информацию о SELinux (поиск и устранение неисправностей) можно найти Вот, Вот и Вот.