我只是在 Windows 上安装的 XAMPP + Apache 上摆弄虚拟主机,使其工作,以便http://disko.local
重定向到我的 PC 中存储项目文件的文件夹。我已将以下几行添加到C:\Windows\System32\drivers\etc\hosts
:
127.0.0.1 localhost
127.0.0.1 disko.local
::1 localhost
然后继续编辑文件X:\xampp\apache\conf\httpd.conf
,在文件底部添加这些行(它们必须在任何特殊位置吗?):
# My custom vhosts
NameVirtualHost 127.0.0.1
<VirtualHost 127.0.0.1>
DocumentRoot "X:\Work\Web Development\Projects\disko\serverroot"
ServerName disko.local
</VirtualHost>
通过快速搜索文件,我确定这是文件中唯一存在的虚拟主机。
然后我重新启动了 Apache,打开了浏览器并尝试加载页面http://disko.local/artists.html
。出现了以下错误:
禁止访问!
您无权访问所请求的对象。该对象要么是读保护的,要么是服务器无法读取的。
如果您认为这是服务器错误,请联系网站管理员。
错误 403
disko.local 10/22/11 16:06:58 Apache/2.2.21 (Win32) mod_ssl/2.2.21 OpenSSL/1.0.0e PHP/5.3.8 mod_perl/2.0.4 Perl/v5.10.1
我尝试添加一个.htaccess
包含该字符串的文件allow from all
,但没有帮助。
error.log 文件的内容如下:
[Sat Oct 22 16:06:58 2011] [error] [client 127.0.0.1] client denied by server configuration: X:/Work/Web Development/Projects/disko/serverroot/artists.html
我做错了什么?我是否需要在 VHost 定义中添加任何内容?提前致谢。
附言:以下是 Apache 的版本,以备不时之需:
X:\xampp\apache\bin>httpd.exe -v
Server version: Apache/2.2.21 (Win32)
Server built: Sep 10 2011 11:34:11
答案1
您缺少目录权限。在虚拟主机块内...
<Directory "X:\Work\Web Development\Projects\disko\serverroot">
order allow,deny
allow from all
</Directory>
进行更改。 重新启动 Apache。