【问题标题】:Issue with Virtual Host on Zend Server CE and Mac OSXZend Server CE 和 Mac OSX 上的虚拟主机问题
【发布时间】:2012-05-17 01:51:22
【问题描述】:

我在 Mac OSX 上使用 Zend Server CE 5.6.0。

我的httpd.conf 有以下行,添加虚拟主机文件:

Include conf/extra/httpd-vhosts.conf

在那个文件中,我有以下内容:

NameVirtualHost *:80

<VirtualHost *:80>
    ServerName localtextil.drupal.lh
    DocumentRoot /usr/local/zend/apache2/htdocs/Obiz/LocalTextil-Portal/drupal
</VirtualHost>

因此,根据定义,当我尝试访问 localtextil.drupal.lh 时,它应该将我重定向到它的文档根目录。

问题是,当我尝试访问该主机时,出现错误。

当我只是访问localhost 时,我会访问位于/usr/local/zend/apache2/htdocs/Obiz/LocalTextil-Portal/drupal 的站点。

我在这里做错了什么?

【问题讨论】:

    标签: macos apache zend-server virtual-hosts


    【解决方案1】:

    两件事 - 首先是虚拟主机定义(据我所知)覆盖了 apache 在目录和服务器名之间的映射。第一个定义的虚拟主机是 apache 在找不到地图时将使用的默认值 - 所以它应该是一个通用设置(反映你的原始域名,在你的情况下是 localhost),然后是你的特定设置。

    其次,如果您的文件夹不在您授予 apache 读取权限的位置,那么您可能会收到错误消息。目录权限由 DocumentRoot 指令设置 - 但是:

    现在,当请求到达时,服务器将首先检查它是否使用与 NameVirtualHost 匹配的 IP 地址。如果是,那么 它将使用匹配的 IP 地址查看每个部分 并尝试找到一个 ServerName 或 ServerAlias 与 请求的主机名。如果找到,则使用配置 对于该服务器。如果没有找到匹配的虚拟主机,那么第一个 将使用与 IP 地址匹配的列出的虚拟主机。

    因此,第一个列出的虚拟主机是默认虚拟主机 主持人。来自主服务器的 DocumentRoot 将永远不会被使用 IP 地址与 NameVirtualHost 指令匹配。如果你想 对不匹配的请求进行特殊配置 特定的虚拟主机,只需将该配置放在 容器并在配置文件中首先列出。

    基于名称的虚拟主机的 Apache 文档页面是 here,它应该有助于提供一些想法。基本上,您需要查看 DocumentRoot 和服务器名称的定义,并检查它们以确保它们都“正常”。

    【讨论】:

    • 我不太明白你所说的“第一个定义的虚拟主机”是什么意思;我没有定义任何其他虚拟主机,只是那个特定的。关于文件夹,权限是什么意思?
    • 缺少的是我需要将主机添加到我的 /etc/hosts 文件中,以便 apache 现在知道,当该主机被调用时,它必须指向 127.0.0.1。所以当我只访问localhost 时,它会进入第一个虚拟主机集,就像你说的那样。非常感谢。
    • @Daniel Ribeiro 我正在尝试在 Mac OSX 上安装 Zend Server CE,我在哪里可以找到免费版本?
    猜你喜欢
    • 2012-05-17
    • 2011-06-27
    • 2017-05-28
    • 2014-05-14
    • 2020-09-11
    • 2011-05-15
    • 2012-10-29
    • 2014-08-06
    • 1970-01-01
    相关资源
    最近更新 更多