首页 > 解决方案 > Apache 在 dist 升级后显示空的“/”索引

问题描述

我正在使用一个 Debian 7 服务器,我对其进行了 dist 升级,所以它现在是 Debian 8。

我唯一遇到的问题是从 2.2 更新到 2.4 的 apache2。问题是现在它向我显示了一个空的“/索引”,尽管指定文件夹中有很多文件。

虚拟主机配置:

<VirtualHost *:80>
  ServerAdmin some@email
  ServerName some.server
  ServerAlias some.server
  DocumentRoot "/data/apt/public_html"

  <Directory "/data/apt/public_html">
    Options Indexes FollowSymLinks MultiViews
    AllowOverride None
    Order allow,deny
    Require all granted
  </Directory>

</VirtualHost>

我怎样才能让它再次工作?

标签: apacheapache2.4apache2.2debian-jessie

解决方案


不建议混合使用 2.2 和 2.4 访问指令。查看http://httpd.apache.org/docs/current/upgrading.html。你会发现它们从不Order allow,denyRequire all granted. 所以删除你的Order行。

混合新旧指令

将 Order、Allow 或 Deny 等旧指令与 Require 等新指令混合在技术上是可行的,但不鼓励。创建 mod_access_compat 是为了支持仅包含旧指令的配置,以促进 2.4 升级。请查看以下示例,以更好地了解可能出现的问题。


此外,您没有指定DocumentIndex文件,因此 Apache 在客户端请求时不知道应该返回哪个文件http://some.server/

假设默认页面是 index.html,在您的 VirtualHost 中添加:

DocumentIndex index.html


注 1:ServerAlias与 具有相同的值ServerName,因此不需要。
注意 2:您应该为此 VirtualHost 设置访问和错误日​​志文件。如果您只有 1 个 VirtualHost,它可能没有用,但如果您有一个大型站点(稍后有多个 VH),您会感谢我。


推荐阅读