Skip to main content

Alles für die Homepage... Scripte, Templates, Workshops und Support

Inhaltsverzeichnis


Das muss ich vor dem anpassen eines CGI Scriptes wissen!

Bei vielen CGI/Perl Scripten muss man die sogenannten Servervariablen (Enviroment Werte) herausfinden und noch anpassen. Die Wichtigsten sind dabei Pfade und URL’s. Bei URL’s sollte das kein Problem für viele von uns darstellen.http://www.ihredomain.de/verzeichnis/datei.html ist den meisten geläufig. Aber ein Pfad???

Nun gibt es zwei einfache Wege das herauszufinden:

  • Den Provider, oder Webmaster um die Auskunft bitten
  • Ein Script dazu einsetzen welches diese ausliest und am Bildschirm darstellt

Genau! Den zweiten Weg will ich hier beschreiben. Dem Admin Löcher in den Bauch fragen kann ja jeder.

Wo steckt Perl? Was ist ein Pfad?

Um das Script auf dem Webserver starten zu können muss ich diesem den Weg „zeigen“ wo Perl auf dem Webserver installiert ist. Das ist die erste wichtige Einstellung die man seinem Script mit auf den Weg geben muss.

Öffnet man sein Script sieht man oben in der ersten Zeile folgendes:

#!/usr/bin/perl

oder es kann auch so lauten

#!/usr/local/bin/perl

Diese beiden Perlpfade sind so ziemlich die häufigsten die man bei Perl/CGI Scripten einsetzt.

HINWEIS
Normalerweise ist die # in einem Script ein Zeichen für den Beginn eines Kommentares. Die erste Zeile eines Scriptes ist hier die Ausnahme von der Regel.

Jetzt zeige ich wie man mit einem kleinen Script die Enviroment (Umgebungsvariablen) herausfindet.

Das Enviroment Script:

#!/usr/bin/perl

# Dieses Script stellt die Enviroment-Parameter dar.

print "Content-type: text/html\n\n";

print "<HTML><HEAD><TITLE>Enviroment-Uebersicht</TITLE></HEAD><BODY>\n";
print "<h2>Enviroment-Uebersicht</h2>\n";
print "<br>\n";
foreach $key (keys %ENV) {
print "<b>$key</b>: $ENV{$key}<BR>\n";
}
print "</body>\n";
print "</HTML>";

HINWEIS
Wie das Script funktioniert erkläre ich in den Beispielkapiteln!

Die mögliche Ausgabe, Beispielhaft:


SERVER_SOFTWARE: Apache/1.3.12 (Unix)
GATEWAY_INTERFACE: CGI/1.1
DOCUMENT_ROOT: /var/www80/htdocs
UNIQUE_ID: OR-PrNFafcUAAFBb4IM
REMOTE_ADDR: 193.159.96.105
SERVER_PROTOCOL: HTTP/1.1
REQUEST_METHOD: GET
QUERY_STRING:
HTTP_USER_AGENT: Mozilla/4.0 (compatible; MSIE 5.0; Windows 95; QXW03002; DigExt; QXW03318)
PATH: /bin:/usr/bin
HTTP_ACCEPT: image/gif, image/x-xbitmap, image/jpeg, image/pjpeg, */*
HTTP_CONNECTION: Keep-Alive
REMOTE_PORT: 1064
SERVER_ADDR: 209.90.125.197
HTTP_ACCEPT_LANGUAGE: de
SCRIPT_NAME: /cgi-bin/environ.pl
HTTP_ACCEPT_ENCODING: gzip, deflate
SCRIPT_FILENAME: /var/www80/htdocs/cgi-bin/environ.pl
SERVER_NAME: ihredomain.com
REQUEST_URI: /cgi-bin/environ.pl
SERVER_PORT: 80
HTTP_HOST: ihredomain.com
SERVER_ADMIN: webmaster@ihredomain.com

So, nun haben wir die Scriptausgabe auf dem Monitor, und nun?

Nehmen wir an Sie sollen in einem Script den Pfad und die URL zu einem Verzeichnis angeben. Ihre URL wäre:
http://www.ihredomain.com

Nutzen wir nun die Werte aus dem ENV Script:
DOCUMENT_ROOT: /var/www80/htdocs

Dies ist der Pfad (/var/www80/htdocs)zu dem Verzeichnis auf der Serverfestplatte wo auch die Startseite liegt die Sie mithttp://www.ihredomain.com aufrufen.

Hinweis: Pfade fangen unter Unix im Gegensatz zu URL’s immer mit einem / an!

Nun weiter… Sie wollten im Script die Variablen eintragen. 😉

Meist steht dann im Kopf der Datei, oder auf einem Konfigurationsscreen (Formular), „Geben Sie die URL und den Pfad zum Scriptverzeichnis an.“ Das Script sei hier in http://www.ihredomain.com/cgi-bin/verzeichnis/script.cgi installiert. Sie brauchen nun für die Angabe des Pfades nur den Wert aus DOCUMENT_ROOT /var/www80/htdocs so zu erweitern /var/www80/htdocs/cgi-bin/verzeichnis

Beachten Sie dabei genauestens die Schreibweise und die Hinweise in der Readme des Scriptes. Es kann sein das Sie den Pfad oder die URL mit einem / beenden müssen oder auch nicht. Dies ist Scriptabhängig. Beachten Sie auch das Perl/CGI Scripte meist keinerlei Schreibfehler verzeihen. Schon ein versehentlich zusätzlich eingefügtes ‚ oder weggelasenes Zeichen, auch anderer Art, kann das Script unbrauchbar machen.


Zum Inhaltsverzeichnis/Pfade vs. URL Enviroment Variablen herausfinden