apache配置 - 我在这里缺少什么?

时间:2009-12-07 21:33:00

标签: apache virtual-directory

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

我将文档根目录设置为DocumentRoot“C:/ projects” 在httpd.conf中,我的项目是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 proj1

127.0.0.1 proj2

在hosts文件中。

但是,当我输入http://proj1时,我只看到文件列表,虚拟目录无效。我错过了什么?

2 个答案:

答案 0 :(得分:1)

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

首先,以下是有效vhost配置的示例:

<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>

请注意proj1proj2都有自己的VirtualHost指令。

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

# Virtual hosts
Include conf/extra/httpd-vhosts.conf

答案 1 :(得分:0)

在没有看到所有配置文件的情况下信息不够,但这里有几件事需要检查:

  • 启动时apache错误日志中的任何提示?
  • 确保在配置文件中的某处有NameVirtualHost *:80,并且在vhost之前加载该语句。
  • 如果您可以看到proj1目录的目录列表,那么vhosts正在运行,您可以调整目录权限和属性(索引文件,允许的目录列表等)。