Home - Datenbanken und Perl - Software www.sqldocu.com
zurück vor



    Webserver




Beschreibung
top
Ein Webserver ist nur nötig, wenn mit Perl HTML Dateien erzeugt werden, die im Internet angeboten werden sollen. Es gibt viele Hersteller von Webservern. Manche sind kostenpflichtig, andere sind kostenlos erhältich. Der meist verwendete Webserver ist der Apache und ist kostenlos erhältlich :) (siehe Apache).


Apache Server
top
Ein Webserver gestattet es, Internetbenutzern (IB) HTML Dateien zu betrachten. Der Administrator des Webservers bestimmt, auf welche Verzeichnisse ein Internetbenutzer Zugang hat. Aus Sicherheitsgünden darf ein IB keine Programme auf dem Webserver starten. Dies ist aber notwendig, will man mit Perl dynamische HTML Dateien dem IB zur Verfügung stellen. Der Ausweg heisst CGI (common gatway interface). Die meisten Webserver unterstützen CGI, so auch Apache (siehe CGI).
Infos zum Apache Server unter: www.apache.org
Andere Web Server unter: www.tucows.com


CGI
top
Mit Hilfe der CGI (common gateway interface siehe Apache) Schnittstelle können Internetbenutzer (IB) Programme auf dem Webserver starten. Bei Perl muss der Webserver den Perlinterpreter starten, dem Interpreter die aufgerufene Datei übergeben und den StandardOutput an den Internetbenutzer weiterleiten. Dies stellt ein Sicherheitsrisko dar. Daher sind beim Apache Server folgende Einstellungen DEFAULT (Standard).

PerlSkripte dürfen nur im Verzeichnis
..ApacheVerzeichnis/cgi-bin/ ausgeführt werden

Natürlich können diese Einstellungen geändert werden. Mehr dazu in der Apache Dokumentation, die automatisch nach der Installation verfügbar ist.
Infos unter: www.apache.org

Der Webserver kann prinzipell nicht zwischen HTML-Dateien und PerlScripts unterscheiden. Treffen wir keine Vorkehrungen, würde der Webserver das PerlSkript direkt an den Internetbenutzer senden, ohne den Interpreter aufzurufen. Dieser sieht dann den Programmkode des Skripts, mit dem er wahrscheinlich nicht viel anfangen könnte. In der Konfigurationsdatei (..ApachVerzeichnis/conf/httpd.conf) können wir einstellen, welche Dateien der Server als PerlScripte erkennt:

AddHandler cgi-script .cgi .pl

Steht die obere Zeile in httpd.conf interpretiert der Server alle Dateien mit der Endung *.pl und *.cgi als PerlSkript und führt die notwendigen Aktionen aus (Perlinterpreter aufrufen ..). Wie bereits erwähnt müssen diese Dateien in einem Verzeichnis stehen, in dem Programme ausgeführt werden dürfen (default ../cgi-bin/)!
Hinweis: Aus Sicherheitsgründen werden Programme von Webservern teilweise unter Benutzernamen ausgeführt, die sehr wenig Rechte besitzen (besonders auf UNIX Systemen). Da diese Benutzer ganz andere Umgebungsvariblen haben können führt dies nicht selten zu Fehlermeldungen. Zur Fehlervermeidung immer überprüfen, unter welchem Benutzer CGI Programme aufgerufen werden und welche Umgebungsvariablen gesetzt sind. Apache bietet die Möglichkeit in der Datei httpd.conf Umgebungsvariablen explizit zu setzten.


top