eHome Factory - Servertests für das CMS

Server Tests

Das EHF-CMS verlangt Perl und einen Apache Server mit mod-rewite verfügbar. Sie finden hier einige Tests, um die Leistungsfähigkeit Ihres Servers zu prüfen.

Existiert ein CGI-Verzeichnis für Scripte?

Ob Perl im Angebot steht, können Sie meist schon daran erkennen, dass Ihnen via FTP ein CGI-Verzeichnis sichtbar ist. Der Name des Verzeichnisses lautet in der Regel:

Testen, ob Perl verfügbar ist

Wir können dies mit einem einfachen hello-world-Script prüfen. Erstellen Sie ein Textfile mit dem Namen helloworld.pl und eines mit dem Namen helloworld.cgi. Wir brauchen beide Versionen. Auf einigen Servern wird verlangt, dass Perl-Scripte die Endung cgi aufweisen, während die Mehrzahl der Server die Endung pl unterstützen.
In beide Dateien kommt nun das identische Perl-Script.

#!/usr/bin/perl -w
#
#
use strict;
print "Content-type:text/plain\n\n";
print "Hello World\n";
print "Der Scriptname lautet: \n", $0, "\n";
exit;

Speichern Sie beide Scripte und laden Sie diese via FTP im Text-Modus1 ins CGI-Verzeichnis Ihres Servers.
Nun müssen Sie, damit die Scripte auch ausführbar sind, die Dateirechte setzen.
Für den ersten Versuch setzen wir die Rechte 755. Reduzieren kann man nach Erfolg immer noch auf 750 oder 705.
Rufen Sie nun im Webbrowser-Location-Bar die Online-Scripte auf mit:
http://ihredomain/cgi/helloworld.pl, bzw.
http://ihredomain/cgi/helloworld.cgi.
Bitte setzen Sie im Pfad den richtigen Namen Ihres CGI-Verzeichnisses und Ihre Domain ein.
Testen Sie beide Scripte. Es kann sein, dass beide Scripte oder nur eines von beiden anspricht.
Falls gar keines anspricht, müssen Sie mit Ihrem Provider Kontakt aufnehmen, denn es muss ev. die erste Zeile im Script mit dem richtigen Pfad zum Perl-Interpreter angepasst werden.

Mehr Perl-Information

Laden Sie das folgende Script auf den Server und führen Sie es aus. Es gibt wertvolle Information aus. Entfernen Sie anschliessend das Script bitte wieder vom Server2.

#!/usr/bin/perl -w
#
# Passen Sie oben den Pfad zum Perl-Interpreter an
#    Auf UNIX Server lautet die erste Zeile
#           #!/usr/bin/perl -w
#
#    Auf Windows reicht hingegen:
#           #!perl -w
#
# Script zum Test der Server-Eigenschaften
#_________________________________________

# Kommentieren Sie die folgenden Zeilen ein,
# wenn Sie ein Error Reporting wünschen.
# Erstellen Sie eine Datei "error.txt" im gleichen Ordner.
# Versehen Sie es mit den Rechten  666.

#   BEGIN {
#      use CGI::Carp qw(carpout);
#      open(LOG, ">","error.txt")  
#         or die "Unable to append to error.txt: $!\n";
#      carpout(*LOG);
#   }

use strict;
use constant { NL => "\n", TAB => "\t"};

print "Content-type:text/html\n\n";
print '<html><head>',NL,'<title>Server-Test</title>',NL,'</head>',NL,'<body>',NL,
   '<h1>Server Test</h1>',NL,
   '<p>Kongratulation! Perl läuft...<br>Es folgen ein paar Tests.<br>',
   'Speichern Sie die Ausgabe. Sie enthält wichtige Information. </p>',NL,
   '<p><b>Entfernen Sie anschliessend das Script wieder vom Server!</b></p>',NL,
   '<pre>',NL,
   'Der aktuelle Script-Name ($0)',NL,TAB, $0 ,NL,
   'Reelle UserID',NL,TAB, $< ,NL,
   'Effektive UserID',NL,TAB, $> ,NL,
   'Reelle GroupID',NL,TAB, $( ,NL,
   'Effektive GroupID',NL,TAB, $) ,NL,NL,
   'Perl Version ',NL,TAB, sprintf("%vd",$^V) ,NL,
   'Perl Patch Level ',NL,TAB, $] ,NL,
   'OS Name (Betriebssystem)',NL,TAB, $^O ,NL,
   'Pfad zum Perl Interpreter',NL,TAB, $^X ,NL,
   'Der Inhalt der Variable @INC',NL,TAB, join(TAB, @INC), '',NL,NL,NL,
   'Der Inhalt der Umgebungsvariable %ENV',NL,
   '-------------------------------------',NL,NL;
foreach (sort keys %ENV){
   print $_,NL, TAB, $ENV{$_},NL;
}
print '</pre>',NL,'</body></html>',NL;

exit;

Htaccess testen

Liegen auf Ihrem Server bereits .htaccess Files seit Ihrer Übernahme, dann wissen Sie, dass .htaccess unterstützt wird. Das bedeutet allerdings noch nicht, dass alle benötigten Features unterstützt werden.

Mod-Rewrite-Test

Erzeugen Sie einen Ordner test. Legen Sie in diesem Ordner eine neue .htaccess Datei an. Eventuell können Sie auf Windows selbst keine .htaccess Datei mit dem Dateisystem erzeugen3. In diesem Fall laden Sie eine existierende .htaccess Datei vom Server herunter und öffnen Sie diese zum Bearbeiten.
Schreiben Sie in die .htaccess Datei folgenden Text.

# Mod Rewrite Test

RewriteEngine on
RewriteRule false.txt //test/true.txt [L]

Speichern Sie die .htaccess Datei und laden Sie diese auf den Server in den Ordner test.

Als nächstes erzeugen Sie zwei Files: false.txt und true.txt
In die Datei false.txt schreiben Sie den Text False.
In die Datei true.txt schreiben Sie den Text True.
Laden Sie beide Dateien in den Ordner test hoch.

Rufen Sie nun im Browser-Location-Bar die Url auf:
http://ihredomain/test/false.txt.
Wenn Sie nun im Bildschirm True Lesen, während im Location-Bar immer noch die http://ihredomain/pfad/false.txt erscheint, so hat die RewriteEngine die Url intern umgeschrieben und den Inhalt von true.txt geliefert.
Das ist exakt, was wir brauchen.

Falls Sie aber ein False zu Lesen erhalten, dann müssen Sie Ihren Provider kontaktieren, ob Mod-Rewrite in Ihrem Paket verfügbar ist.

Fussnoten

1 Der Text Modus (auch ASCII-Modus genannt) ist für alle Textfiles, also auch normale Scripte, zuständig. Bilder und kompilierte Programme werden hingegen im Bin-Mode (für Binary) hochgeladen.

2 Scripte, die öffentlich nicht zugänglich sein sollten, sollte man entweder via .htaccess oder eine andere Authentifizierungsmethode schützen oder wieder entfernen, nachdem Sie ihren Dienst verrichtet haben. Dies gilt besonders für Scripte, die Informationen ausliefern, welche nicht für die Welt bestimmt sind.

3 Der Windows Datei-Explorer erlaubt Ihnen nicht das Erstellen einer Datei, die mit einem Punkt beginnt. Solche Dateien lassen sich jedoch einfach mit anderen Editoren erstellen, wenn man eine neue Datei mit dem Namen .htaccess speichert. Bearbeiten kann man solche Dateien dann auch unter Windows mit jedem Editor.