Apache-2.2

RHEL Apache:在 VirtualHost 上禁止 403

  • October 9, 2013

我的文件都歸 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 的更多資訊。

引用自:https://serverfault.com/questions/544743