Apache2(XAMPP)虚拟主机指令不起作用(显然)

Apache2(XAMPP)虚拟主机指令不起作用(显然)

我正在一些设置基于 IP 的虚拟主机时出现问题。首先,我在 Windows 7 上使用 apachefriends 的当前 XAMPP(XAMPP 1.7.7 和 Apache 2.2.21)。

“主”服务器(来自httpd.conf)上的基本功能运行完美。但现在我想设置具有不同 IP 地址的多个虚拟主机,因为我将网卡配置为使用从 192.168.2.95 到 192.168.2.105 的所有 IP 地址。

这是虚拟主机条目:

<VirtualHost 192.168.2.96:80>
    DocumentRoot "/xampp/hegedocs/www"
    ServerName 192.168.2.96:80
</VirtualHost>

httpd -D DUMP_VHOSTS说:

PS G:\xampp\apache\bin> ./httpd -D DUMP_VHOSTS
VirtualHost configuration:
192.168.2.96:80        192.168.2.96 (G:/xampp/apache/conf/extra/httpd-vhosts.conf:45)
Syntax OK

但是我无法访问 vhost,Apache 似乎也无法在 192.168.2.96:80 上监听 - 该地址没有显示任何条目netstat -a -b

答案1

我发现了问题:基于 IP 的虚拟主机根本不起作用。只需在主机文件中定义几个名称(foo.localhost、bar.localhost 都映射到同一个 IP 地址),然后使用基于名称的虚拟主机就可以正常工作。当然,这不像 IP 地址那样可移植,因为网络中的其他机器自然不知道这些名称……但好吧,只要它能以某种方式工作……

答案2

答案3

以下是您可以尝试添加的一些基本内容,以确保您获得正确的端口。

# Ensure that Apache listens on port 80
Listen 80

# Listen for virtual host requests on all IP addresses
NameVirtualHost *:80

下面是来自 appache 的一个示例,它看起来应该是这样的:

<VirtualHost *:80>
DocumentRoot /www/example1
ServerName www.example1.com

# Other directives here

</VirtualHost>

<VirtualHost *:80>
DocumentRoot /www/example2
ServerName www.example2.org

# Other directives here

</VirtualHost>

我确信您之前已经看到过这一点,但有时回顾一下简单的东西会有所帮助。

我的设置运行良好,在 1 个盒子上运行 2 个网站,使用 ServerName www.example.com。

希望这可以帮助!

答案4

确保 apache 知道 vhost.conf 文件的位置。在 httpd.conf 的底部,您可能需要取消注释

Include conf/*.conf

相关内容