SSI für Apache
Sie haben keine Lust mehr auf statische HTML-Seiten?SSI-generiert Teile von HTML-Seiten erst bei der Anfrage eines Besuchers, und erlaubt es somit, die Seiten abwechslungsreicher zu gestalten.
ServerSideIncluded
Statische HTML-Seiten sehen immer gleich aus, und das kann sehr schnell
langweilig werden.
Techniken wie SSI und PHP generieren die HTML-Seiten erst dann, wenn ein
Benutzer sie auch sehen will. Das erzeugt zwar etwas mehr Last für den
Rechner, macht die Seiten dafür aber um so interessanter.
Sie können sogar immer aktuelle Nachrichten auf Ihren Seiten präsentieren,
ohne daß sie jemals die Seiten per Hand ändern müssen.
Ein weiterer Vorteil ist es, daß Sie Ausgaben von Programmen, wie CGI-Skripten in die Seiten einbinden können.
Konfiguration
Bevor es aber soweit ist, diese Technik auch nutzen zu können, steht zumeist eine kurze Änderung in den Konfigurationsdateien an, da SSI bei vielen Distributionen standardmäßig ausgestellt ist.
Als erstes benötigt man einen Eintrag in der Datei /etc/httpd/acess.conf. In der Zeile Options benötigen wir die beiden Einträge Include und ExecCGI:
| /etc/httpd/acess.conf |
<Directory "/usr/local/httpd/htdocs"> # This may also be "None", "All", or any combination of "Indexes", # "Includes", "FollowSymLinks", "ExecCGI", or "MultiViews". # Note that "MultiViews" must be named *explicitly* --- "Options All" # doesn't give it to you. Options Indexes FollowSymLinks Includes ExecCGI # ^^^^^^^^^^^^^^^^Hinzugefuegt </Directory> |
Außerdem müssen wir noch einstellen, daß sowohl Seiten mit der Endung
.shtml auch bisherige Seiten mit der .html-Endung
auf SSI-Befehle untersucht werden.
Um Server-Last zu reduzieren kann man auch nur in .shtml-Seiten
SSI-Befehle erlauben, da ansonsten jedes Dokument vor dem Anzeigen überprüft
wird.
Die Datei /etc/httpd/srm.conf erhält dafür folgende Zeilen (häufig müssen auch nur die Kommentare entfernt werden):
| /etc/httpd/srm.conf |
# To use server-parsed HTML files AddType text/html .shtml AddType text/x-server-parsed-html .html AddHandler server-parsed .shtml |
Danach muß man den Apache Web-Server neu starten, damit die neue Konfiguration auch benutzt wird. Dies geschieht am schnellsten über das vorhandene init-Skript. Unter SuSE lautet der Befehl
>> /sbin/init.d/apache restartBei RedHat liegen die init-Skripte gewöhnlich unter /etc/rc.d/init.d/.
Sollte der Neustart des Web-Servers geglückt sein, steht Ihnen nun die Welt von SSI offen.
Die HTML-Dateien
Der Server ist nun korrekt konfiguriert, aber wie verwendet man jetzt SSI in den HTML-Seiten?
Die einfachste Methode ist es, eine externe Datei in eine bestehende Datei
mit einzubinden, so daß der Besucher der Web-Seite statt des
SSI-Befehls den Text der eingebundenen Datei sieht.
Die SSI-Befehle werden als Kommentare getarnt, so daß ein
Besucher, falls SSI nicht aktiviert ist, die Befehle nicht auf Anhieb
sieht.
Zum Einbinden einer Datei benutzt man den Befehl
<!--#include file="./Dateiname.txt" -->Zum Veranschaulichen hier eine Beispielseite:
| ssi.html |
<html> <head> <title>SSI Testing </title> </head> <body> <center> Test mit SSI<br> In der nächsten Zeile wird ein SSI-Befehl ausgeführt </center> <p> <!--#include file="./test.txt" --> </body> </html> |
Zusätzlich benötigt man natürlich noch die einzubindende Datei test.txt.
| test.txt |
<h1> Dies ist ein Include-Test-Text <br>Juhu, es hat funktioniert ;) </h1> |
Beides schnell auf den Server kopiert, und die Seite ssi.html dann mit einem Web-Browser besucht, sollte dann so aussehen:
| Ausgabe von ssi.html |
|
In der nächsten Zeile wird ein SSI-Befehl ausgeführt
Dies ist ein Include-Test-Text
|
Sollte die einzubindende Datei nicht in dem vorgegebenem Verzeichnis existieren, erhält man eine Fehlermeldung der Form:
[an error occurred while processing this directive]Erhalten Sie weder eine Fehlermeldung, noch wird die Datei test.txt angezeigt, dann schauen Sie sich den Seiten-Quelltext in ihrem Browser an. Steht dort an der entsprechenden Zeile
<!--#include file="./test.txt" -->haben Sie etwas bei der Konfiguration des Web-Servers verkehrt gemacht.
Der Server führt anscheinend noch keine SSI-Befehle aus, sondern denkt, daß es sich bei der entsprechenden Zeile um einen HTML-Befehl handelt.
Neben dem Einbinden von Text-Dateien kann man auch die Ausgabe von CGI-Programmen anzeigen lassen. Dafür benötigt man den Befehl
<!--#exec cgi="/cgi-bin/programm.cgi" -->In dieser Zeile erscheint dann der Text oder das Bild, welches das cgi-Programm ausgibt.
Links:
| http://hoohoo.ncsa.uiuc.edu/docs-1.5/tutorials/includes.html | Etwas Informationen zum Einsatz von SSI |
Anmerkungen zu diesem Artikel
Eigene Anmerkung eintragen