使用 XAMPP 1.7.3 的多个主机

Posted

技术标签:

【中文标题】使用 XAMPP 1.7.3 的多个主机【英文标题】:Multiples vHosts with XAMPP 1.7.3 【发布时间】:2014-12-20 05:59:34 【问题描述】:

我正在尝试在我的网络上的一台机器上配置多个虚拟主机,但是,无论我使用什么来访问 servername ,apache 总是指向第一个主机。

这是我的 vHosts 文件

<VirtualHost eurekahom:7777>
    DocumentRoot "d:\vhosts\eurekahom\controller/"
    ServerName eurekahom

 #   RewriteEngine On
 #   RewriteOptions Inherit

    <Directory />
        AllowOverride All    
    </Directory> 

    php_value include_path ".;d:\vhosts\eurekahom\controller\includes/"
</VirtualHost>


<VirtualHost eurekades:7777>
    DocumentRoot "d:\vhosts\eurekades\controller/"
    ServerName eurekades

    <Directory />
        AllowOverride All    
    </Directory>

    php_value include_path ".;d:\vhosts\eurekades\controller\includes/"
</VirtualHost>

<VirtualHost mauricio:7777>
    DocumentRoot "d:\htdocs\mauricio" 
    #\controller/"
    ServerName mauricio

 #   RewriteEngine On
 #   RewriteOptions Inherit

    <Directory />
        AllowOverride All    
    </Directory> 

    php_value include_path ".;d:\htdocs\mauricio"
</VirtualHost>

有人知道发生了什么吗?

【问题讨论】:

看起来应该可以了。你在重启apache吗?日志中是否有任何错误?你有Listen *:7777吗? 【参考方案1】:

我相信虚拟主机有基于 IP 的匹配和服务器名称匹配。所以无论你在这里输入什么:&lt;VirtualHost ________:7777&gt; 应该是一个 IP 地址。由于不想通过IP匹配,你可以留下*:7777

所以是的,您的所有语句都将以&lt;VirtualHost *:7777&gt; 开头。当该 7777 端口收到请求时,Apache 将尝试按服务器名称进行匹配,然后将考虑 ServerName 参数。

&lt;Directory&gt; 语句也可能存在更多问题,但我相信这并不是导致 Apache 始终使用第一个 VirtualHost 的原因。

以下链接非常有用,因为它在我遇到非常类似的问题时帮助了我: https://wiki.apache.org/httpd/CommonMisconfigurations

【讨论】:

【参考方案2】:

我通常不在 VirtualDirectory 元素中指定主机名,而是将其保留在 *:7777

另外,对于我的htdocs 文件夹之外的目录,我使用了额外的目录选项:

选项全部 允许覆盖所有 要求所有授予 目录>

【讨论】:

以上是关于使用 XAMPP 1.7.3 的多个主机的主要内容,如果未能解决你的问题,请参考以下文章

使用特定的 TLD XAMPP 虚拟主机重定向所有内容

使用特定的 TLD XAMPP 虚拟主机重定向所有内容

XAMPP 的多个虚拟主机不工作

通过 Internet 访问 XAMPP 中的多个站点(不是 Localhost)

XAMPP VirtualHosts 从移动设备访问

本地主机,子域,使用 XAMPP