LinuxNetMag
SSI für Apache
Archiv | Home
Inhalt
   
LinuxNetMag #5

  Software
 Aktuell
kurz vorgestellt
SuSE7.0 Testbericht
Mozilla Preview
 Applikationen
Videoschnittsystem
Windows X-Server
Windowmanager
 3D
 Spiele
  
 

Hardware

TV-Karte
Wheel-Mouse
Webcam selbstgebaut
  
 

Netzwerk

Web2Fax-Gateway
Apache mit SSI
Booten übers Netz
Webcam-Streaming
offline Mailingliste
  
 Wissen
Abenteuer ReiserFS
Linux-Devices
LinuxExpo Brasilien
  
 

Sonstiges

Mailing-Liste
Gästebuch
Artikelliste
Unterstützen Sie uns !
zurück zur Hauptseite



Druckversion


  Apache-Konfiguration 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.

(Die Konfiguration bezieht sich auf einen Apache Web-Server 1.3.x)

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üssten.

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

 # 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

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 restart
Bei 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
SSI Testing
Test mit SSI
In der nächsten Zeile wird ein SSI-Befehl ausgeführt

Dies ist ein Include-Test-Text
Juhu, es hat funktioniert ;)

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

Platz für Kommentare & Fragen:
(selbst eintragen)

 

Weitere Ausgaben Linux NetMag
[ #1 | #2 | #3 | #4 | Main ]