2016 07 06 XAMPP 配置虚拟主机出现 403 错误 - huyx/1 GitHub Wiki

问题的产生

需要给 apache2 配置一个虚拟主机,主页目录在 C:\opt\xampp\htdocs 之外,D:\work\school。直接修改配置文件 C:\opt\xampp\apache\conf\extra\httpd-vhosts.conf,增加虚拟主机:

<VirtualHost *:80>
    ServerAdmin [email protected]
    ServerName school.com

    ErrorLog "logs/school.com-error.log"
    CustomLog "logs/school.com-access.log" common

    DocumentRoot "D:/work/school"
</VirtualHost>

在 hosts 配置文件中添加下面一行:

127.0.0.1              school.com

打开浏览器,访问 http://school.com,居然出来的是 403 错误。

问题现象

  1. 访问 http://school.com 出现 403 错误
  2. 访问 http://localhost 居然也出现 403 错误

问题原因及解决

针对出现的问题,查询相关资料后终于解决,解决方法如下:

访问 http://school.com 出现 403 错误

文件所在目录在 XAMPP 的 web 根目录外,由此导致的权限问题,解决方法是在配置文件里添加 Directory 指令:

<VirtualHost *:80>
    ...
    <Directory "D:/work/school">
        Options Indexes
        AllowOverride None
        Require all granted
    </Directory>
</VirtualHost>

访问 http://localhost 也出现 403 错误

为 localhost/127.0.0.1 添加一个新的虚拟主机:

<VirtualHost *:80>
    ServerAdmin [email protected]
    ServerName 127.0.0.1

    DocumentRoot "C:/opt/xampp/htdocs"
</VirtualHost>

其他 - Allow 和 Require

另外需要注意的是,Apache 2.4 中的配置和 2.2 的不同:

# Apache 2.4
Require all granted
# Apache 2.2
Order allow,deny
Allow from all
⚠️ **GitHub.com Fallback** ⚠️