Christian Wermelinger: Eigener Apache Server mit PERL-Interpreter

Hallo zusammen
2 Fragen hätte ich an euch. Vielen Dank für eure Antworten schon im voraus!

1. Frage
Damit ich meine CGI-Scripts nicht nur online Testen kann, habe ich lokal auf meinem Rechner (Win98!) den Apache Webserver sowie AktivePerl installiert. Leider werden die CGI-Skripts nicht verarbeitet, d.h anstelle eine HTML-Seite auszuspucken kriege ich nur den Code des Scripts zu sehen. Die Pfadangaben sollten stimmen. Wo müsste der Fehler am ehesten gesucht werden? Liegt das an PERL selber oder stimmt da vielleicht in der httpd.conf des Apache etwas nicht?

2. Frage
Auf Unix-Servern wird soviel ich weiss fast ausschliesslich Sendmail, als E-mail Programm eingesetzt. Wie sieht das auf der Windows-Seite aus? Wüsste jemand nen brauchbares E-mail-Programm (im Stil von Sendmail) das unter Win98 läuft?

Gruss
Christian

  1. hi,

    1. Frage
      Liegt das an PERL selber oder stimmt da vielleicht in der httpd.conf des Apache etwas nicht?

    wahrscheinlich ist es die httpd.conf. Was du beschreibst, kenne ich von perl-scripts, bei denen der Pfad (in der allerersten Zeile) nicht korrekt gesetzt war oder eben, wenn in der httpd.conf der entsprechende AddHandler nicht eingetragen war.

    1. Frage
      Auf Unix-Servern wird soviel ich weiss fast ausschliesslich Sendmail, als E-mail Programm eingesetzt. Wie sieht das auf der Windows-Seite aus? Wüsste jemand nen brauchbares E-mail-Programm (im Stil von Sendmail) das unter Win98 läuft?

    Es gibt noch ein paar Dutzend weitere mail-Programme für UNIX-Systeme ... Für Windows gibts nicht ganz so viele, was damit zusammenhängt, daß meistens bestimmte Browserfunktionen genutzt werden. Wenn Du Netscape installiert hast, ist dabei ein Mailer bereits integriert. Der IE wird in den meisten Fällen zusammen mit Outlook Express installiert.

    Aber die Angabe eines mail-Programmes ist dem Apache unter Windows ziemlich egal, das muß er ja nicht erledigen.

    Grüße aus Berlin

    Christoph S.

    1. Wenn man nicht bei jedem Perl-Script vor dem Upload die Pfad-Angabe ändern will kann man im CGI-Directive (httpd.conf) die Zeile "ScriptInterpreterSource registry" einfügen. So wird der Perl-Interpreter nicht über die erste Zeile des Scripts ausgelesen sondern über die Windows-Registry. Wichtig ist dabei, dass dem Datei-Typ *.cgi als std. Vorgang "open" [perl\bin\perl.exe] zugewiesen ist! Der Name "open" ist sehr wichtig, ansonsten erkennt der Apache den Interpreter nicht. Diese Einstellung ermöglicht leichtes Testen der Scripts unter Win32 ohne die (std.) Pfad-Angabe des Scripts zu ändern... :)

      Bye
      Spooky

  2. Moin,

    1. Frage
      Damit ich meine CGI-Scripts nicht nur online Testen kann,
      habe ich lokal auf meinem Rechner (Win98!) den Apache
      Webserver sowie AktivePerl installiert. Leider werden die
      CGI-Skripts nicht verarbeitet, d.h anstelle eine HTML-Seite
      auszuspucken kriege ich nur den Code des Scripts zu sehen.
      Die Pfadangaben sollten stimmen. Wo müsste der Fehler am
      ehesten gesucht werden? Liegt das an PERL selber oder stimmt
      da vielleicht in der httpd.conf des Apache etwas nicht?

    Wenn Du den Source Code des Skriptes bekommst, dann
    hat Apache nicht gecheckt, daß es sich um ein
    ausführbares Skript handeln sollte.

    Bei mir sieht das in der httpd.conf an entsprechender
    Stelle z.B. folgendermaßen aus:

    ScriptAlias /krrleb /home/abi/cgitest

    <Directory /home/abi/cgitest>
    AllowOverride None
    Options None
    Options ExecCGI
    SetEnv RIG /home/abi/programming/RIG
    </Directory>

    ohne das 'ScriptAlias' erkennt Apache das Verzeichnis
    nicht als ausführbar an und bietet die Dateien bestenfalls
    zum Download an.
    Die erste Zeile der Skripte muß von
    folgender Gestalt sein:

    #!/usr/bin/name_des_interpreterprogrammes

    Wie das unter Windows 98 & Apache aussieht, weiß
    ich nicht so genau. Möglicherweise muß dort der Windows-
    Pfad zum Perl-Interpreter stehen, also etwa

    #!/c:/programme/perl/bin/perl -w

    (evtl. Backslashes statt der Slashes verwenden).
    Ansonsten gibt es bei Selfaktuell einen ausführlichen
    Artikel über das Thema cgi unter
    http://www.teamone.de/selfaktuell/artikel/schroepl03.htm.

    Viel Spaß dabei und bis dannundwann...

    Andreas

  3. Vielen Dank für eure Tipps! Waren sehr nützlich! Nun läuft alles. Noch ne andere Frage. Möchte gerne ein Formmail-Skript lokal testen. Was muss ich bei der Konfiguration beachten. Kann ich zum verschicken der Daten einfach den Pfad meines E-mail-Programmes (Outlook Express) angeben?

    Schönen Tag noch...

    Gruss
    Christian Wermelinger