Назад | Перейти на главную страницу

Apache 2.4 SSI в Ubuntu 13.04

У меня есть сервер Ubuntu 13.04 с нормальным стандартным Apache 2.2 с работающим SSI. Я получил ошибку в ухе, и я установил ppa:rhardy/apache24x PPA для обновления моего сервера Apache 2.4.

Хотя это не было чистым обновлением, я исправил большинство недостатков.

Однако я до сих пор не могу понять, как заставить работать Server-Side Includes. Все выглядит нормально, но когда я захожу на один из своих сайтов, обслуживаемых этим сервером, который использует SSI, он не работает.

у меня есть /etc/apache2/mods-enabled/include.load символическая ссылка на /etc/apache2/mods-available/include.load

Конфигурационный файл моего сайта выглядит так:

<VirtualHost *>
    ServerAdmin webmaster@myserver.com
    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 все еще не работает. Что мне не хватает?

Спасибо.

Похоже, что есть разница в том, как Apache 2.2 обрабатывает <Directory> записи, которые соответствуют DocumentRoot по сравнению с 2.4.

В 2.2 следующий код:

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

применит любую из директив (например, Options и XBitHack) к /var/www/myserver каталог и файлы в нем.

В 2.4 конфигурация должна измениться на это:

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

а потом apache2ctl restart, и тогда SSI снова будут работать.