0

我有一台 Windows XP 机器,将 apache 安装在 C:\Program Files\Apache Software Foundation\Apache2.2

我在 httpd.conf 中将文档根目录设置为 DocumentRoot "C:/projects",我的项目是 c:\projects 中的 proj1 和 proj2

<VirtualHost *:80>
 DocumentRoot "C:/projects/proj1"

 ServerName  proj1

</VirtualHost>

<VirtualHost *:80>

 DocumentRoot "C:/projects/proj2"

 ServerName  proj2

</VirtualHost>

proj1 和 proj2 都有 index.php 文件。我添加了

127.0.0.1 项目 1

127.0.0.1 项目 2

在主机文件中。

仍然,当我输入http://proj1时,我只看到文件列表,虚拟目录不起作用。我错过了什么?

4

2 回答 2

1

除了重新启动/重新加载 Apache 之外,还有一些其他的事情需要检查:

首先,以下是有效虚拟主机配置的示例:

<VirtualHost *:80>
    ServerName proj1
    DocumentRoot "c:/www/proj1"
    <Directory "c:/www/proj1" >
        AllowOverride All
        Order allow,deny
        Allow from all
    </Directory>
</VirtualHost>

<VirtualHost *:80>
    ServerName proj2
    DocumentRoot "c:/www/proj2"
    <Directory "c:/www/proj2" >
        AllowOverride All
        Order allow,deny
        Allow from all
    </Directory>
</VirtualHost>

请注意proj1两者proj2都有自己的VirtualHost指令。

其次,确保 Apache 正在加载 vhosts 声明。为了让我的工作,我不得不取消注释这一行httpd.conf

# Virtual hosts
Include conf/extra/httpd-vhosts.conf
于 2009-12-07T21:40:06.467 回答
0

没有看到你所有的配置文件就没有足够的信息,但这里有几件事需要检查:

  • 启动时 apache 错误日志中有任何提示吗?
  • 确保您的配置文件中有 NameVirtualHost *:80 并且该语句在您的虚拟主机之前加载。
  • 如果您可以看到 proj1 目录的目录列表,则表示 vhost 正在工作,您可以调整目录权限和属性(索引文件、允许的目录列表等)。
于 2009-12-07T21:44:59.813 回答