Root-Server SSI


Root-Server SSI

SSI sind spezielle Anweisungen in einer html-Seite die vor der eigentlichen Übertragung ausgeführt werden.
Diese ermöglichen dynamische html-Seiten deren Inhalt sich zur Laufzeit ändern kann(siehe Wikipedia).
Das einfachste Beispiel ist ein spezieller Code der automatisch das letzte Änderungsdatum einer html-Datei berechnet und anzeigt.

In der Grundeinstellung führen html-Server KEINE SSI Befehle aus, dies muss erst in der Konfiguration freigegeben werden.

Hinweis

Die Konfigurationsdateien von Apache sind bei Debian Jessie "gewandert":
/etc/apache2/httpd.conf (Hauptkonfiguration)
/etc/apache2/sites-available/000-default.conf (Virtuelle Server/Directories)
<VirtualHost *:80>
    DocumentRoot /var/www/html
    ServerAdmin webmaster@localhost
    ErrorLog ${APACHE_LOG_DIR}/error.log
    CustomLog ${APACHE_LOG_DIR}/access.log combined
    <Directory /var/www/html>
        Options -Indexes +Includes +MultiViews +SymLinksIfOwnerMatch -ExecCGI
        allow from all
        AllowOverride All Options=ExecCGI,Includes,IncludesNOEXEC,Indexes,MultiViews
        AddType text/html .html
        AddOutputFilter INCLUDES .html
        LanguagePriority en fr de
        ForceLanguagePriority Prefer
    </Directory>
</VirtualHost>
# vim: syntax=apache ts=4 sw=4 sts=4 sr noet

Diese Einträge sind noch experimentell, also UNGEPRÜFT!
Damit funktioniert SSI, Ordner ohne Index.html werden NICHT angezeigt, localized error messages funktionieren leider nicht -.-

Befehle

Apache-Server neustarten:
# apachectl -k graceful (freundliches Neueinlesen der Konfiguration)
# service apache2 restart (brutales Neueinlesen der Konfiguration)

SSI aktivieren

Um SSI für den Apache-Server zu aktivieren muss folgendes durchgeführt werden:
Entweder wird in /etc/apache2/sites-available/default Includes hinzugefügt:
        <Directory /var/www/html/>
                Options Indexes FollowSymLinks MultiViews Includes
                AllowOverride None
                Order allow,deny
                allow from all
        </Directory>
(Debian8 sollte den Zusatz html/ im den Optionen hinzugefügt bekommen..)
oder es muss in jedem Verzeichnis eine Datei namens .htaccess erstellt werden die Options +Includes enthält.

Zusätzlich muss sichergestellt werden, das das Modul include vom Apache-Server auch geladen wird.
Mit # a2enmod include wird der dafür benötigte Symlink /etc/apache2/mods-enabled/include.load angelegt.

Die Ausführung von Skripten innerhalb von html-Dateien erfolgt aber nur, wenn diese auf .html enden(index.html)!

Quelle