Peter Reinhart: Perl und Apache 1.3

Hallo Leute,

Um mich in Perl einzuarbeiten, habe ich auf meinem Linux-System (Suse 5.1 / Apache 1.2.5 / Perl 5.004_04) rund zwei dutzend Skripts zu Lernzwecken, aber auch fuer praktische Aufgaben geschrieben.

Einige der groesseren Programme bedienen sich ueber "require" einer zentralen Bibliothek, die haeufig verwendete Prozeduren enthaelt. Obgleich noch nicht alle Funktionen implimentiert, funktionierten die Programme auf meinem "alten" Apache 1.2.5 ohne technische Probleme.

Nachdem ich jedoch heute auf SuSE Linux 5.3 mit Apache 1.3.0 umgestiegen bin, werde ich bei "verlinkten" Programmen, die ich ueber den Browser abrufe nur noch mit Serverfehlern (HTTP 500) bombadiert.

Die Protokolldatei sagt hierzu folgendes aus:

[error] Undefined subroutine &Apache::ROOT::cgi_2dbin::noc::show_5ftickets_2epl::getdata called at /usr/local/httpd/cgi-bin/noc/show.pl line 34, <TICKET> chunk 5049.

In diesem Fall sollte die Funktion "getdata" aus einem via "require" angegeben Skript geladen werden, die aber von Apache offensichtlich nicht gefunden wird.

Ich habe alle meine Programme durchprobiert, doch immer erkenne ich das selbe Symthom. Alle eigenstaendigen Programmen laufen ohne Murren und Knurren in jeder Umgebung (Kommandozeile und Apache), und auch verlinkte Skripts verrichten - soweit sie direkt ueber den Interpreter aufgerufen werden - problemlos ihren Dienst.

Das beschriebene Problem tritt nur in Faellen auf, in denen externe, mit require eingebundene, Funktionen ueber den Webserver aufgerufen werden sollen.

Die besagten Skripts binden die Biliotheken via

require "$program_path/bib.pl"

ein, wobei die Verzeichnisvaraible selbstverstaendlich gesetzt ist.

Ich habe sowohl die KnownBugs von Apache 1.3.0 durchgesehen, als auch meine lokale Konfigdatei ueberprueft, in keinem Fall bin ich fuendig geworden. Auch eine Suche in Newsgroups und im Internet brachte fuer mein Problem keine Loesung.

Hatte jemand von euch vielleicht schonmal ein aehnliches Problem, oder kann mir jemand von besseren Erfahrungen mit dem "Standard-Apache" von SuSE 5.3 berichten?

Ich freue mich ueber jeden Tip,
Peter

Webmaster am Gymnasium Hilpoltstein

  1. Hallo Peter,

    Deine Probleme ueberfordern mich leider auch etwas, aber es gibt ja zum Glueck eine nicht ganz kleine Linux-Gemeinde, die vielleicht Hilfe anbieten kann.
    Nur so viel: bei Unix-Systemen richten sich viele Leute ja Links ein, so dass Verzeichnisse oder Dateien nur als Link auf eine andere Quelle existieren. Nun weiss ich nicht, wie "kritisch" ein Update von Suse 5.1 auf Suse 5.3 ist, aber vielleicht ist es ja denkbar, dass solche Links dabei vielleicht zerstoert oder ungueltig werden, was dann solche "not-found"-Meldungen erklaeren wuerde.

    Und hier noch mal - falls Du die nicht schon alle kennst - eine Liste aller Newsgroups, die Dejanews zum Thema Linux findet:

    +++++   comp.os.linux.advocacy
    +++++   comp.os.linux.misc
    ++++-   comp.os.linux.setup
    ++++-   alt.os.linux
    +++--   fido7.ru.linux
    +++--   comp.os.linux.networking
    +++--   tw.bbs.comp.linux
    +++--   comp.os.linux.hardware
    ++---   no.linux
    ++---   fr.comp.os.linux
    ++---   it.comp.linux
    ++---   es.comp.os.linux
    ++---   nl.comp.os.linux
    +----   comp.os.linux.development.apps
    +----   alt.linux
    +----   comp.os.linux.development.system
    +----   pl.comp.os.linux
    +----   linux.redhat.misc
    +----   borland.public.delphi.non-technical
    +----   comp.os.linux.x
    +----   uk.comp.os.linux
    +----   alt.destroy.microsoft
    +----   hun.lists.mlf.linux
    +----   han.comp.os.linux
    +----   cn.bbs.comp.linux
    +----   fido7.ru.unix.linux
    +----   muc.lists.linux-kernel
    +----   alt.uu.comp.os.linux.questions
    +----   alt.os.linux.slackware
    +----   comp.sys.mac.advocacy
    +----   relcom.fido.ru.linux
    +----   linux.redhat.install

    "+" steht fuer "confidence", was immer das bedeuten mag <g>.

    Viele Gruesse
      Stefan Muenz

    1. Hallo!

      Und hier noch mal - falls Du die nicht schon alle kennst - eine Liste aller Newsgroups, die Dejanews zum Thema Linux findet:

      Die Linux-Gruppen sind da wahrscheinlich eher der falsche Weg. Dafür sollte man Server-, Apache- oder Perl-Gruppen suchen.
      z. B.
      comp.infosystems.www.servers.unix
      de.comm.infosystems.www.servers
      de.comp.lang.perl
      de.comp.os.unix.networking

      Außerdem fehlt de.comp.os.linux.networking in Stefans Aufstellung.

      vielleicht findest Du unter www.apache.org weitere Hinweise, auch der SuSE-Installations-Support sollte in so einem Falle helfen (Du hast da ja 60 Tage frei).

      HTH,
      markus