Включаем SSI (на Qnap TS-219P)

Настройки Web-сервера сетевых накопителей Qnap, мягко говоря, не балуют изобилием доступных опций и для включения технологии SSI (Server Side Includes) на нашем веб-сервере придётся совершить путешествие в дебри файловой системы аппарата. Благо, на Qnap работает HTTP-сервер Apache, поэтому проблем с самой настройкой сервера у нас не возникнет.
Итак, начнём...

Необходимое ПО:

WinSCP — свободный графический клиент протоколов SFTP и SCP. Понадобиться нам для доступа к файловой системе (ФС) накопителя. Взять можно с сайта прграммы или по ссылке.

Настройка доступа к ФС:

  1. В web-интерефейсе накопителя переходим в раздел "Сетевые служы->Telnet/SHH" и ставим птички возле пунктов "Разрешить SSH-подключение" по стандартному порту и "Включить SFTP" (см. рисунок ниже). После не забываем нажать кнопку "Применить".

  2. Запускаем WinSCP. При этом увидим следующее окно с настройками соединения:

    В поле "Сервер" вводим IP адрес накопителя в локальной сети, в поле "Порт" указываем порт, выбранный на предыдущем шаге (п.1) при настройке SSH-доступа. Водим данне учётной записи администратора сервера. Жмём кнопку "Сохранить" для сохранения введённых данных, после чего - кнопку "Войти".

  3. Теперь перед нами открыто окно программы, очень напоминающее Total Commander, и найти нужный нам файл не составило бы труда, еслиб не запутанная иерархия ФС на сетевых накопителях Qnap.

  4. Переходим в каталог /mnt/HDA_ROOT/.config/apache , в котором расположены конфигурационные файлы сервера Apache. Нас интересует файл  httpd.conf .

Включение механизма Server-Side Includes

  1. Включаем модуль сервера Apache, раскомментировав строку в файле httpd.conf

    LoadModule include_module modules/mod_include.so

  2. В секции <IfModule mime_module> </IfModule> добавляем (или раскоментируем) следующие строки:

    AddType text/html .shtml

    AddOutputFilter INCLUDES .shtml

    Директива server-parsed также активирует  работу модуля SSI, т.е. вместо

    AddOutputFilter INCLUDES .shtml

    можно было записать:

    AddHandler server-parsed .shtml

    Также можно назначить обработку серверных включений в файлах любого типа, например .html или .php, для чего в  файле httpd.conf необходимо добавить  к строке необходимые расширения:

    AddHandler INCLUDES .shtml .html .php

     
  3. Включаем в опции директории  узла опцию Includes (обычно в секции <Directory>  </ Directory> нужного каталога):

    <Directory "/usr/local/httpd/htdocs">

    ...

    Options Indexes FollowSymLinks Includes MultiViews

    </Directory>

    Теперь любой документ с раширением  .shtml , расположенный в каталоге "/usr/local/httpd/htdocs" или его подкаталогах будет сканироваться модулем  mod_include и  директивы SSI , указанные  в нем, будут исполняться  сервером.

  4. Если доступа к файлу конфигурации сервера Apache нет, но обработка файла .htaccess сервером производится, то достаточнов в файле .htaccess добавить следующие строки:
    #обработка ssi в файлах .shtml .html .htm
    AddType text/html .shtml .html .htm
    AddOutputFilter INCLUDES .shtml .html .htm
     

Таким образом, всё что было добавлено в файл httpd.conf:

LoadModule include_module modules/mod_include.so

AddType text/html .shtml

AddHandler INCLUDES .shtml .html .php

<Directory "/usr/local/httpd/htdocs">

...

Options Indexes FollowSymLinks Includes MultiViews

</Directory>