Apache 2.4 SSI в Ubuntu 13.04

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

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

Тем не менее, я до сих пор не могу понять, как заставить работать серверные включения. Все выглядит хорошо, но когда я попал на один из моих сайтов, обслуживаемых этим сервером, который использует 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. Что мне не хватает?

Благодарю.

1 ответ

Решение

Похоже, есть разница в том, как 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 снова будут работать.

Другие вопросы по тегам