Я использую Ganglia-web-интерфейс, который написан на PHP. Он использует файлы шаблонов для добавления личных заголовков / нижних колонтитулов. Я хочу использовать набор страниц SSI, который я написал, но код SSI не интерпретируется apache.
более четко, ganglia использует $tpl = new TemplatePower( template("$header.tpl") );
для включения моего файла шаблона заголовка. В моем файле header.tpl я <!--#include virtual="/include/header.shtml" -->
: <!--#include virtual="/include/header.shtml" -->
который является моим включенным файлом (и который отлично работает с моими личными страницами / сценариями).
Если посмотреть на HTML-код, который я получаю в firefox (ctrl + U), я вижу, что apache включил зону SSI <!--#include virtual="/include/header.shtml" -->
как комментарий, и имеет не перепутал его.
Я полагаю, что есть что-то делать с порядком, в котором вещи интерпретируются / выполняются, но я не могу найти способ сделать это. У кого-нибудь есть идея? Я также имею корневой доступ к конфигурации apache, если это необходимо.
заранее спасибо
РЕДАКТИРОВАТЬ:
Следуя предложениям Саши, я попытался добавить
AddType text/html .tpl AddHandler server-parsed .tpl AddOutputFilter INCLUDES .tpl
to /etc/apache2/httpd.conf, но это не помогает. Я не понимаю …
EDIT 2:
Я думаю, это может быть проблема с модулем PHP TemplatePower . Но я не могу заставить его работать. Я попытался добавить также $tpl->assignInclude( "header", "./header.tpl" );
в источниках ганглиев, но это не помогает.
Является ли Apache настроен на препроцессию .tpl
файлов на стороне сервера? Если нет, он будет игнорировать директивы SSI в этих файлах.
В разделе «Включение серверных включений» в документации mod_include приведены сведения о том, как настроить это. Вам нужно убедиться, что .tpl
присутствует в директивах AddType
и AddOutputFilter
.
Вы загружаете шаблон в качестве TemplatePower
TemplatePower. Так что Apache не поддерживает этот файл .tpl, но ваш скрипт через этот объект TemplatePower
.
Поэтому это выходит за рамки обработчиков содержимого и обработчиков действий apache.
если вы используете PHP как apache SAPI, вы можете использовать функцию virtual()
.
Затем вы можете расширить механизм шаблонов для интерпретации тех, которые включают в себя виртуальные команды SSI, и вызвать функцию virtual()
.
Поэтому ключевым моментом здесь является то, что в конце Apache должен выполнить шаблон shtml через подзапрос.