Wo befinden sich die Perl-Interpreter?

In jedem Perl-Skript müssen Sie auf der ersten Zeile angeben, wo sich auf dem Server der Perlinterpreter befindet. Diese erste Zeile muss lauten:

#!/usr/bin/perl

 Einem Perlskript muss die richtige Berechtigung erteilt werden. Diese Einstellungen ändern Sie mit jedem guten FTP-Programm, auch mit WS-FTP, welches Sie in unserem Download-Bereich finden.

 Wechseln Sie in Ihr "cgi-bin"-Verzeichnis und wählen Sie das Skript, welches Sie berechtigen möchten. Drücken Sie auf die rechte Maustaste und wählen Sie den Menüpunkt "chmod (UNIX)".

 Sie müssen folgende Berechtigung erteilen:

 read/write/execute (für Benutzer "Owner")

 read/execute (für Benutzer "Group")

 read/execute (für Benutzer "Other")

 Diese Angaben entsprechen dem Unixbefehl "chmod 755".

 Nun sollte das Skript die richtigen Berechtigungen haben.

 

Wo befindet sich das "sendmail"-Programm?

Auf unseren Servern befindet sich das "sendmail"-Programm im Verzeichnis "/usr/lib". Folglich muss die "sendmail"-Variable so aussehen (bsp.):

$sendmail = "/usr/sbin/sendmail";

Beachten Sie, dass die sonst übliche Option -t nicht mitgegeben werden darf!

Diese Angaben benötigen Sie für Skripts, welche Mails versenden, u.a. sind dies Gästebücher, Formularauswertungen, etc.

Bitte beachten Sie, dass beim Mailversand via Skript zwingend eine gültige Absender E-Mail-Adresse (from) angegeben werden muss, damit die Mails verschickt werden.

 

Ich kann mit  Perls keine Mails verschicken!

Kontrollieren Sie folgende Angaben in Ihrem Skript:

Pfad zu Sendmail: /usr/lib/sendmail

Verwenden Sie beim Aufruf von Sendmail keine Optionen, wie in manchen Skripts üblich (bsp. "-t").

Beachten Sie, dass der Aufruf von Optionen jeweils nicht nur bei der Definition von Sendmail erfolgt, sondern teilweise auch im weiteren Skript-Code.

Tip: Durchsuchen Sie das Skript nach der "-t" Option und löschen Sie diese überall.

Haben Sie eine gültige Empfänger- und Absender-Adresse (to/from) angegeben? Das korrekte Format lautet wie folgt (bsp.):

To: $mailtoAddress ($mailtoRealname)

From: $mailfromAddress ($mailfromRealname)

 

Dateien schreiben/lesen aus Perl-Scrips

Um eine absolut sichere Umgebung für Ihre Website zu ewährleisten, haben wir gewisse Sicherheitsmechanismen installiert. Diese haben zur Folge, dass in Perl-Skripts die Files auf eine bestimmte Art und  Weise angesprochen werden müssen.

Um ein File zu lesen oder zu schreiben, müssen Sie den ganzen Pfad zu dieser Datei angeben. Dies erreichen Sie am einfachsten durch Voranstellen der Environment-Variable "DOCUMENT_ROOT".

Dieser Umstand betrifft sämtliche Perl-Skripts, die auf unseren Servern laufen sollen - auch solche, welche Sie aus CGI-Downloadarchiven  heruntergeladen haben.

Beispiele:

in Ihrem Skript steht:

open  (FILE,"< $afile");

Schreiben Sie folgende Zeile davor:

$afile = $ENV{  DOCUMENT_ROOT }."/".$afile;

open  (FILE,"< $afile");

In diesem Beispiel wird davon ausgegangen, dass das effektive File im Grund-Verzeichnis des Servers steht. Steht dieses bspw. im Unterverzeichnis "ab/", müssen Sie dies so angeben:

$afile = $ENV{  DOCUMENT_ROOT }."/ab/".$afile;


In gewissen Skripts müssen Sie angeben, wie der Pfad zu einer HTML-Seite oder einem File heisst. Statt

$GUESTBOOK  = "gbook.html";

geben Sie an:

$GUESTBOOK=$ENV{  DOCUMENT_ROOT }."/gbook.html";

 


Welche Arten von Scripts darf ich nicht verwenden?

Um den sicheren Betrieb unserer Server gewährleisten zu können, halten wir unsere Kunden an, auf die Ausführung von Skripts der folgenden Arten zu verzichten:

  • Bannertauschsysteme *
  • IRC Roboter
  • Chat-Systeme
  • andere rechenzeitintensive Skripts

Um diese zu verwenden, brauchen Sie unsere schriftliche Zustimmung, wie es in den AGB's steht.

* Es steht Ihnen natürlich frei, an Bannertauschsystemen, deren Skripts nicht auf unseren Server installiert sind, teilzunehmen.

 

Welchen .htaccess-Eintrag brauche ich für SSI?

"Server Side Includes". Um diese Funktionalität auf Ihrem Webserver verfügbar zu machen, müssen Sie eine .htaccess-Datei mit folgendem Inhalt erstellen:

AddType application/x-httpd-cgi .cgi .pl

AddType text/x-server-parsed-html .html .htm

Speichern Sie das .htaccess in das Verzeichnis, in welchem die HTML-Seite steht, welche das Skript aufruft.

 Mein CGI-Script funktioniert ohne Problem, es werden jedoch keine Mails verschickt

Aus Sicherheitsgründen werden die CGI-Skripts in einer CHROOT-Umgebung ausgeführt (losgelöst vom System). Die Mails werden über mini_sendmail (Light-Version des sendmail) verschickt, welches im CHROOT funktionniert.

Die Applikation mini_sendmail unterstützt nur die Option -t, d.h. die Optionen -bm -f -oem -oi funktionnieren nicht und erzeugen einen Fehler. Sie müssen Ihre Skripts entsprechend anpassen um den Mail-Versand möglich zu machen.

 Warum ergibt die globale SENV(REMOTE_HOST) keinen Resultat?

Wir benutzen einen Loadbalancing System. Die Last der Anfragen wird auf unseren Web-Server balanciert. Deshalb müsst Ihr diese folgende Variable gebrauchen, um die IP Adresse des Servers zu erhalten:

my $remote_host = gethostbyaddr((inet_aton($ENV{'HTTP_X_CLUSTER_CLIENT_IP'}), AF_INET));

Achtung: Vergesst nicht die folgende Linie am Anfang Ihres Scripts zu stellen:

use Socket;

Warum erhalte ich immer die gleichen Daten mit der globalen Variable SENV(REMOTE_ADDR)?

Wir benutzen einen Loadbalancing System. Die Last der Anfragen wird auf unseren Web-Server balanciert. Deshalb müsst Ihr diese folgende Variable gebrauchen, um die IP Adresse des Servers zu erhalten:

my $remote_ip = $ENV{'HTTP_X_CLUSTER_CLIENT_IP'};

Achtung: Vergesst nicht die folgende Linie am Anfang Ihres Scripts zu stellen:

use Socket;

 

Wie kann ich meine CGI Scripts konfigurieren?

Sie werden hier unten eine Liste von Variabeln und Pfade finden, die Sie in Ihre Scripts benutzen können.

$ENV{'SCRIPT_NAME'};

Zu  ersetzen mit : $ENV{'SCRIPT_URI'};

$ENV{'SERVER_NAME'};

Zu ersetzen mit : "";

"http://$domain$script";

Zu ersetzen mit : "$domain$script";

Relativer Pfad für eine Datei ins Hauptverzeichnis zu schreiben durch einen cgi/bin Script:

'/web/IhrVerzeichnis';

 

Meine cgi/perl Script funktioniert nicht mehr

Ihre cgi/perl Scripts funktionieren nicht mehr oder Sie erhalten eine Fehlermeldung.

Ihr müsst folgendermassen Vorgehen:

  1. Sichern Sie Ihre cgi/perl Scripts.
  2. Löschen Sie das Verzeichnis cgi-bin per FTP.
  3. Deaktivieren Sie die CGI in der Konsole.
  4. Reaktivieren Sie die CGI in der Konsole. Das System wird Ihnen automatisch ein cgi-bin Verzeichnis kreieren.
  5. Publizieren Sie Ihre Scripts cgi/perl im ASCII-Modus und vergewissern Sie sich, dass die Rechte chmod auf 755 sind.
  6. Ihr Problem sollte gelöst sein.

 

Adresse

ANDURI-Web
Wangenstrasse 44
3373 Röthenbach b. Hbsee
Tel 031 921 85 01
Fax 031 921 85 02
Natal 076 399 83 28
E-Mail: Diese E-Mail-Adresse ist vor Spambots geschützt! Zur Anzeige muss JavaScript eingeschaltet sein!  

Dienstleistungen