Zend Server CE和Mac OSX上的虚拟主机问题

时间:2012-05-08 14:49:40

标签: macos apache zend-server virtual-hosts

我在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上的网站。

我在这里做错了什么?

1 个答案:

答案 0 :(得分:0)

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

其次,如果您的文件夹位于您已授予apache读取权限的位置之外,则可能会出现错误。目录权限由DocumentRoot指令设置 - 但是:

  

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

     

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

基于名称的虚拟主机的Apache文档页面是here,它应该有助于提供一些想法。基本上你需要查看你对DocumentRoot和服务器名的定义,并通过它们确保它们都是&#34; ok&#34;。