我最近格式化并安装了 iMac。我运行的是 10.6.5。在此格式化之前,我已启动并运行了默认的 Apache Web 服务器和多个虚拟主机,并且一切运行良好。格式化后,我重新设置了一切,现在 Apache 表现得很奇怪。以下是我所遇到的情况的描述。
我的 Apache Web 服务器的默认根目录指向外部硬盘。在我的 httpd.conf 中,我的内容如下:
DocumentRoot "/Storage/Sites"
下面还有几行:
<Directory />
Options FollowSymLinks
AllowOverride All
Order deny,allow
Allow from all
</Directory>
然后在下面:
<Directory "/Storage/Sites">
Options Indexes FollowSymLinks MultiViews
AllowOverride All
Order allow,deny
Allow from All
</Directory>
在这个文件的末尾,我注释掉了用户目录包含配置文件:
Include /private/etc/apache2/extra/httpd-userdir.conf
并取消注释虚拟主机配置文件:
Include /private/etc/apache2/extra/httpd-vhosts.conf
继续,我的 vhosts 文件中有以下条目:
<VirtualHost *:80>
DocumentRoot "/Storage/Sites/mysite"
ServerName mysite.dev
</VirtualHost>
我的 /etc/hosts 文件中还有一个主机记录,将 mysite.dev 指向 127.0.0.1(我也尝试使用我的路由器 IP,192.168.1.2)。
我遇到的问题是,尽管 /Storage/Sites/mysite 中有 PHP 文件,但服务器仍在查看 /Storage/Sites。我知道这一点是因为 DocumentRoot 包含一个带有 phpinfo() 的 php 文件(而 mysite 中的 index.php 文件有不同的代码)。
我尝试设置其他虚拟主机,但它们仍然在做同样的事情。此外,“NameVirtualHost *:80”在我的 vhosts 文件中。我在另一个线程上看到了解决方案。似乎没有什么区别。
对此有什么想法吗?如果这些信息不够,请告诉我。
答案1
只包含主 httpd.conf 文件中的所有 VirtualHosts 通用的指令选项。使所有由 Apache 服务的主机都成为虚拟主机。
从主 httpd.conf 文件中删除 DocumentRoot 和块。只在 httpd-vhosts.conf 文件中保留它们。