当我启用虚拟主机时 Apache 返回 403

Posted

技术标签:

【中文标题】当我启用虚拟主机时 Apache 返回 403【英文标题】:Apache returns 403 when I enable virtual hosts 【发布时间】:2014-10-10 20:35:37 【问题描述】:

我刚刚设置了一个 Cent OS 6 VPS,它可以完美地运行 LAMP,直到我启用了虚拟主机。 它总是返回 403 Forbidden 错误。

我将 /etc/httpd/conf/httpd.conf 更新为以下设置:

<Directory />
#    Options Indexes FollowSymLinks MultiViews Includes ExecCGI
    Options FollowSymLinks
    AllowOverride All
#    Order deny,allow
    Order allow,deny
    Allow from all
#    Deny from all
</Directory>

<Directory "/var/www/html">
    Options Indexes FollowSymLinks MultiViews
    #AllowOverride None
    AllowOverride All
    Order allow,deny
    Allow from all
</Directory>

NameVirtualHost *:80

我已经创建了 /etc/httpd/conf/httpd.conf 加载的 /etc/httpd/conf.d/vhosts.conf。 (我用“mydomain”替换了我的真实域名和用户名)

<VirtualHost *:80>
     ServerAdmin webmaster@mydomain

     DocumentRoot /home/mydomain/htdocs
     <Directory /home/mydomain/htdocs>
        Options Indexes FollowSymLinks MultiViews
        AllowOverride All
        Order allow,deny
        allow from all
     </Directory>
     ServerName mydomain
     ServerAlias mydomain
     ErrorLog /home/mydomain/logs/error.log
#     CustomLog /home/mydomain/logs/access.log common
</VirtualHost>

我更改了 /var/www/html 和 /home/mydomain/htdocs 的所有者和权限。

drwxr-xr-x 3 apache apache 4096 Aug 15 14:23 html

drwxr-xr-x 2 apache apache 4096 Aug 18 10:18 htdocs
drwxr-xr-x 2 apache apache 4096 Aug 18 10:37 logs

但现在我无法通过 IP 地址访问虚拟主机,即使是根文件 (/var/www/html)。如果我关闭(删除)虚拟主机,那么我可以访问 /var/www/html 中的页面。

谁能帮帮我?

非常感谢。

【问题讨论】:

【参考方案1】:

如果是403 Forbidden 那么可能是权限错误,所以请确保您递归地应用权限。在终端输入这个

sudo chmod 755 -R /home/mydomain/htdocs

在你的 conf 中试试这个

<VirtualHost *:80>

    DocumentRoot "/path/to/your/site"

    ErrorLog $APACHE_LOG_DIR/error.log
    CustomLog $APACHE_LOG_DIR/access.log combined

</VirtualHost>

【讨论】:

感谢您的回复阿卡尔。是的,我递归地更改了权限和所有者。但它返回 403 错误。 非常感谢阿卡尔。我想我解决了这个问题。我不需要更新conf。我所做的是将 mydomain 目录的权限也更改为 755。以前是 700。 很高兴我帮助了你,如果对你有帮助,请确认并投票给答案 我会说将 /home/mydomain/htdocs 更改为 755 是不够的。该命令应该是 sudo chmod 755 -R /home/mydomain。用户文件夹的权限也需要更新。我投票给你的答案。再次感谢您的回复。 是的,当然,您应该是 root 用户,因为您正在编辑根文件夹。【参考方案2】:

我刚刚解决了这个问题,将/home/mydomain/目录的权限改为755,即700。

感谢阿卡尔的帮助。他确实提到了权限。

【讨论】:

很高兴我帮助了你!现在确认答案并投票。谢谢! @Jonathan 在编辑时无法根据需要添加或删除内容,也无法键入 -updated by Jonathan-,您所做的是破坏行为。请注意规则。谢谢。 谢谢@mohacs。我没有意识到这一点。

以上是关于当我启用虚拟主机时 Apache 返回 403的主要内容,如果未能解决你的问题,请参考以下文章

当我使用 Xampp for Mac 为本地站点使用虚拟主机时,如何避免 403 错误?

SVN (mod_dav) 403 禁止选项请求

OS X 10.9 Mavericks - 使用虚拟主机设置本地主机

apache设置虚拟主机访问403禁止访问,为啥?

Apache 动态虚拟主机 - 403 Forbidden

Apache2虚拟主机403禁止?