Apache не обрабатывает базовый SSI

Веб-сервер Apache 2.2.22 работает на Ubuntu 12.04 LTS.

Это мой файл http.conf:

DirectoryIndex index.shtml index.html index.cgi index.pl index.php index.xhtml

LoadModule cgi_module /usr/lib/apache2/modules/mod_cgi.so
ScriptAlias /cgi-bin/ /var/www/cgi-bin/
AddHandler cgi-script .cgi .pl

LoadModule include_module /usr/lib/apache2/modules/mod_include.so
<Directory "/var/www">
  Options +Includes
  AddHandler server-parsed .shtml
  AddType text/html .shtml
  AddOutputFilter INCLUDES .shtml
  XBitHack on
</Directory>

Согласно этому http://httpd.apache.org/docs/current/mod/mod_include.html Мне нужна запись AddType (получено), запись AddOutputFilter (получено) и запись Options +Includes (понятно). Он говорит, что мне нужно поместить это в раздел (понятно).

Согласно этому http://httpd.apache.org/docs/current/howto/ssi.html Мне нужны Options +Includes (понятно), AddType (понятно), AddOutputFilter (понятно) и XBitHack On может помочь.

Это файл /var/www/index.shtml:

<html>
<body>
<p>The current date is <!--#echo var="DATE_LOCAL" --></p>
</body>
</html>

Права доступа к этому файлу установлены на -rwxr-xr-x.

Когда я загружаю файл в свой веб-браузер, он загружается и отображается нормально, но часть SSI не обрабатывается. Все, что я вижу, это «Текущая дата».

Вот запись из /var/log/apache2/access.log:

10.0.2.2 - - [05/Oct/2013:16:57:07 +0000] "GET /index.shtml HTTP/1.1" 200 401 "-" "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_8_5) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/30.0.1599.66 Safari/537.36"

Вот ошибка из /var/log/apache2/error.log:

[Sat Oct 05 16:57:07 2013] [warn] [client 10.0.2.2] mod_include: Options +Includes (or IncludesNoExec) wasn't set, INCLUDES filter removed

Параметры +Включения не были установлены? Я вижу это прямо в моем файле http.conf. Я погуглил, но не мог понять, в чем проблема.


person Jeff    schedule 05.10.2013    source источник
comment
Похоже, решение находится здесь: aboutlinux. информация/2006/02/. Я опубликую решение после того, как у меня будет время попробовать его.   -  person Jeff    schedule 06.10.2013


Ответы (2)


Решение состоит в том, чтобы разместить показанные директивы в начале этой веб-страницы. в разделе Directory, но не помещайте их в файл http.conf. Вместо этого они принадлежат файлу sites-available/default.

Этого было достаточно, чтобы заставить его работать:

<Directory "/var/www">
    # ... other stuff appears here
    # add the three lines below:
    AddType text/html .shtml
    AddOutputFilter INCLUDES .shtml
    Options +Includes
</Directory>
person Jeff    schedule 06.10.2013
comment
Я знаю, что мы не должны благодарить людей, но спасибо вам :) Официальная документация очень плоха для того, чтобы заставить что-то работать: https://httpd.apache.org/docs/current/howto/ssi.html - person Sridhar Sarnobat; 04.12.2016

Быстрое добавление: для MACOS Mojave поместите эти директивы в ‎

Macintosh HD⁩ ▸ ⁨private⁩ ▸ ⁨etc⁩ ▸ ⁨apache2⁩ ▸ ⁨users⁩▸ {username}.conf
person zig    schedule 23.05.2019