Ubuntu 13.04 上的 Apache 2.4 SSI

Ubuntu 13.04 上的 Apache 2.4 SSI

我有一台 Ubuntu 13.04 服务器,它有正常的、原版 Apache 2.2,SSI 可以正常工作。我遇到了一个问题,于是安装了ppa:rhardy/apache24xPPA,以便将我的服务器升级到 Apache 2.4。

虽然这不是一次彻底的升级,但我已经解决了大部分问题。

但是,我仍然不知道如何让服务器端包含功能正常工作。一切看起来都正常,但是当我访问由此服务器提供服务并使用 SSI 的其中一个网站时,它不起作用。

我已经/etc/apache2/mods-enabled/include.load符号链接到/etc/apache2/mods-available/include.load

我的网站的配置文件如下:

<VirtualHost *>
    ServerAdmin [email protected]
    ServerName www.myserver.com
    ServerAlias myserver.com

    DocumentRoot /var/www/myserver
    <Directory />
        Options +Indexes +FollowSymLinks +IncludesNOEXEC
        AllowOverride None
        XBitHack On
        AddType text/html .shtml
        AddOutputFilter INCLUDES .shtml
    </Directory>
</VirtualHost>

里面/var/www/myserver

-rwxr-xr-x 1 mike mike  776 Feb 20  2012 index.shtml*

文件内容以 SSI 开头:

<!--#include virtual="/include/header.html"-->

完成所有配置更改后,我重启了服务器,但 SSI 仍然无法正常工作。我遗漏了什么?

谢谢。

答案1

<Directory>看起来 Apache 2.2 处理与之一致的条目的方式DocumentRoot与 2.4 处理的方式有所不同。

在2.2中,以下代码:

DocumentRoot /var/www/myserver
<Directory />
    [...]
</Directory>

会将任何指令(例如OptionsXBitHack)应用于/var/www/myserver目录及其中的文件。

在2.4中,配置需要改为这样:

DocumentRoot /var/www/myserver
<Directory /var/www/myserver>
    [...]
</Directory>

然后apache2ctl restart,SSI 将再次起作用。

相关内容