WAMP 服务器 - localhost 仅显示目录列表

WAMP server - localhost displays directory listing only

对于 WAMP、apache 等,我完全是个新手

我正在尝试在本地建立一个 运行 站点,但到目前为止还没有成功。我已经安装了 WAMP,它似乎可以正常上网,即绿色 "W" 图标是绿色的。 phpmyadmin 之类的功能似乎正在运行。当我单击 "localhost" 时,它会打开浏览器并按照您的预期导航到本地主机,但是,我看到的只是目录列表。

所以,我的虚拟主机设置如下:

<VirtualHost *:80>
 DocumentRoot "c:/wamp/www"
 ServerName localhost    
</VirtualHost>

<VirtualHost *:80>
 DocumentRoot "c:/wamp/www/bts/BiteTheSun"
 ServerName bts
 ServerAlias bts
 <Directory  "c:/wamp/www/bts/BiteTheSun">
    Require all granted
 </Directory>
</VirtualHost>

在我的主机文件中我有:

127.0.0.1 localhost
127.0.0.1 bts
::1 bts
::1 localhost

我添加了一些图片只是为了清楚地说明问题 - 上面的图片显示了我认为我应该看到的内容,下面的图片显示了我实际看到的内容:

localhost screenshot issue

我想尽办法都没有用。在日志文件 [apache_error.log] 中提到我似乎收到与权限相关的错误也可能会有所帮助:

"AH01630: client denied by server configuration: C:/Apache24, referer: http://localhost/"

但是,我已经使用来自多个来源的示例检查了配置文件中设置的权限,似乎没有任何问题。

有人知道这里发生了什么吗?我在网上高低搜索了这个问题,还有一个似乎确实有这个问题,这让我觉得这是我在做一些非常愚蠢的事情——我只需要有人指出到底是怎么回事! :)

理查德

您的 www 文件夹中是否有索引文件?

通常,您希望将个人项目放在 www 文件夹中,并将虚拟主机指向 www/your-project/ 文件夹,该文件夹应包含 index.php 文件(除非您有自定义设置您要将虚拟主机直接指向特定文件的位置。

您的虚拟主机定义不完整。

每个 VH 都应该有自己的 <Directory>...</Directory> 定义,这样您就可以将访问权限和其他配置信息应用到该目录。

您缺少的部分是 AllowOverrideOptions

另一件要记住的事情是,当您创建虚拟主机环境时,httpd.conf 文件中定义的主机基本上会被忽略,而 VH 将占据主导地位。这就是为什么你需要重新定义VH文件中的localhost

<VirtualHost *:80>
    DocumentRoot "c:/wamp/www"
    ServerName localhost
    <Directory  "c:/wamp/www">
        AllowOverride All
        Require local
    </Directory>
</VirtualHost>

<VirtualHost *:80>
 DocumentRoot "c:/wamp/www/bts/BiteTheSun"
 ServerName bts
 <Directory  "c:/wamp/www/bts/BiteTheSun">
    AllowOverride All
    Options Indexes FollowSymLinks
    Require local
 </Directory>
</VirtualHost>

您的 AH01630: client denied by server configuration: C:/Apache24 错误可能是因为默认的 httpd-vhost.conf 文件带有 Apache 提供的 2 个示例定义。这些应该从文件中完全删除。因此,如果您将这些留在 httpd-vhost.conf 文件中。从文件中完全删除它们。

要删除的 defs 示例。请注意,它们使用 c:/Apache24 目录,该目录在 WAMPServer 环境中不存在,也不应存在!

<VirtualHost *:80>
    ServerAdmin webmaster@dummy-host.example.com
    DocumentRoot "c:/Apache24/docs/dummy-host.example.com"
    ServerName dummy-host.example.com
    ServerAlias www.dummy-host.example.com
    ErrorLog "logs/dummy-host.example.com-error.log"
    CustomLog "logs/dummy-host.example.com-access.log" common
</VirtualHost>

<VirtualHost *:80>
    ServerAdmin webmaster@dummy-host2.example.com
    DocumentRoot "c:/Apache24/docs/dummy-host2.example.com"
    ServerName dummy-host2.example.com
    ErrorLog "logs/dummy-host2.example.com-error.log"
    CustomLog "logs/dummy-host2.example.com-access.log" common
</VirtualHost>