Igor: mod_perl-Installation - Apache-Fehlermeldung

Hallo

ich habe anhand der Dokumentation auf perl.pache.org versucht, mod_perl zu installieren. Beim Starten von Apache bekomme ich nun die Fehlermeldung:
cannot load c:/pfad/zu/apache/modules/mod_perl.so into server

In dem angegeben Ordner befindet sich aber die Datei mod_perl.so.

Kann mir jemand Tipps geben, die zur Lösung des Problems führen könnten?

Danke

Igor

  1. hallo,

    ich habe anhand der Dokumentation auf perl.pache.org versucht, mod_perl zu installieren.

    Mit dieser Doku meinst du hoffentlich http://perl.apache.org/docs/2.0/os/win32/install.html. Es sollte eigentlich genügen, die dort genannten Schritte zu absolvieren.

    Beim Starten von Apache bekomme ich nun die Fehlermeldung:
    cannot load c:/pfad/zu/apache/modules/mod_perl.so into server
    In dem angegeben Ordner befindet sich aber die Datei mod_perl.so.

    Erkennt denn dein Apache auch dieses Verzeichnis an? Wie sieht das mit anderen Apache-Modulen, die als DSO eingebunden werden, aus?

    Kann mir jemand Tipps geben, die zur Lösung des Problems führen könnten?

    Ja. Bitte aber zuerst genauere Angaben zum Betriebssystem, zur installierten Apache-Version und zum installierten PERL. Notfalls auch mal die Modulliste deiner Apache-Konfiguration posten.

    Bei mir funktioniert mod_perl auch unter Windows ganz zufriedenstellend.

    Grüße aus Berlin

    Christoph S.

    1. Hallo

      Mit dieser Doku meinst du hoffentlich http://perl.apache.org/docs/2.0/os/win32/install.html. Es sollte eigentlich genügen, die dort genannten Schritte zu absolvieren.

      Nein, ich meine http://perl.apache.org/docs/1.0/os/win32/install.html. Alle dort angegebenen Schritte habe ich absolviert.

      Ja. Bitte aber zuerst genauere Angaben zum Betriebssystem, zur installierten Apache-Version und zum installierten PERL. Notfalls auch mal die Modulliste deiner Apache-Konfiguration posten.

      Windows 2000
      apache_1.3.31
      ActivePerl-5.8.4.810
      mod_perl-1.29

      Modulliste:
      #LoadModule anon_auth_module modules/mod_auth_anon.so
      #LoadModule dbm_auth_module modules/mod_auth_dbm.so
      #LoadModule digest_auth_module modules/mod_auth_digest.so
      #LoadModule cern_meta_module modules/mod_cern_meta.so
      #LoadModule digest_module modules/mod_digest.so
      #LoadModule expires_module modules/mod_expires.so
      #LoadModule headers_module modules/mod_headers.so
      #LoadModule proxy_module modules/mod_proxy.so
      #LoadModule rewrite_module modules/mod_rewrite.so
      #LoadModule speling_module modules/mod_speling.so
      #LoadModule info_module modules/mod_info.so
      #LoadModule status_module modules/mod_status.so
      #LoadModule usertrack_module modules/mod_usertrack.so
      LoadModule php4_module C:/Programme/php4/sapi/php4apache.dll
      LoadFile "C:/Programme/Perl/bin/perl58.dll"
      LoadModule perl_module modules/mod_perl.so

      Ich hoffe die Angaben sind vollständig.

      Igor

      1. hallo,

        Mit dieser Doku meinst du hoffentlich http://perl.apache.org/docs/2.0/os/win32/install.html.
        Nein, ich meine http://perl.apache.org/docs/1.0/os/win32/install.html. Alle dort angegebenen Schritte habe ich absolviert.

        Der wichtigste Satz in der von mir verlinkten Seite lautet: "As described in the discussion of issues in multithreaded win32, a mod_perl 1.0 enabled server based on Apache 1.3 on Win32 is limited to a single thread serving a request at a time. This effectively prevents concurrent processing, which can have serious implications for busy sites. This problem is addressed in the multi-thread/multi-process approach of mod_perl 2.0/Apache 2.0."

        Windows 2000
        apache_1.3.31

        Unter Windows 2000 ist unbedingt ein Apache 2.0.x zu empfehlen, aktuell ist meines Wissens 2.0.52.

        ActivePerl-5.8.4.810

        Das ist ok.

        mod_perl-1.29

        Und das sollte besser 2.0 sein, die Sourcen sind erhältlich von http://cvs.apache.org/snapshots/modperl-2.0

        Modulliste:

        Die ist ziemlich verdächtig. Es sind nur folgende Einträge bei dir aktiv:

        LoadModule php4_module C:/Programme/php4/sapi/php4apache.dll
        LoadFile "C:/Programme/Perl/bin/perl58.dll"
        LoadModule perl_module modules/mod_perl.so

        Da fehlen allerhand, zum Beispiel fehlt mod_cgi, und, ganz wichtig, mod_mime. Korrigiere deine Liste mal, zur Unterstützung ist vielleicht http://aktuell.de.selfhtml.org/artikel/server/apacheconf/apconf08.htm ein wenig hilfreich. Ob du die "LoadFile"-Anweisung wirklich brauchst, ist mir nicht ganz klar.

        Grüße aus Berlin

        Christoph S.

        1. Hallo

          Der wichtigste Satz in der von mir verlinkten Seite lautet: "As described in the discussion of issues in multithreaded win32, a mod_perl 1.0 enabled server based on Apache 1.3 on Win32 is limited to a single thread serving a request at a time. This effectively prevents concurrent processing, which can have serious implications for busy sites. This problem is addressed in the multi-thread/multi-process approach of mod_perl 2.0/Apache 2.0."

          D.h. ich könnte schon mit der Installation von Apache 2.0 eine schnellere Ausführung von Perl-Scripts erreichen, ohne mod_perl intallieren zu müssen?

          Unter Windows 2000 ist unbedingt ein Apache 2.0.x zu empfehlen, aktuell ist meines Wissens 2.0.52.

          Kann ich die neue Version einfach drüberinstallieren und die alte httpd.conf behalten, oder muss ich die Einstellungen in der httpd.conf in die neue httpd.conf kopieren (vielleicht weil die neue sonst noch Unterschiede aufweist).

          Da fehlen allerhand, zum Beispiel fehlt mod_cgi, und, ganz wichtig, mod_mime.

          Warum müssen diese aktiviert sein? Bisher laufen bei mir alle Scripts, sowohl PHP als auch Perl. Letztere aber eben nur sehr sehr langsam.

          Ob du die "LoadFile"-Anweisung wirklich brauchst, ist mir nicht ganz klar.

          So stand es in der Dokumentation, die ich genannt habe (s.o.).

          Gruß

          Igor

          1. hallo Igor,

            D.h. ich könnte schon mit der Installation von Apache 2.0 eine schnellere Ausführung von Perl-Scripts erreichen, ohne mod_perl intallieren zu müssen?

            Wenn es dir "nur" um echte PERL-Scripts (als CGI-Anwendungen) geht, brauchst du mod_perl überhaupt nicht. Dieses Modul brauchst du beispielsweise dann, wenn du PERL-Code direkt in HTML-Dokumente schreiben, also keine extra Scripts erstellen möchtest.

            Unter Windows 2000 ist unbedingt ein Apache 2.0.x zu empfehlen
            Kann ich die neue Version einfach drüberinstallieren

            Nein. Wenn du gerne möchtest, kannst du sie "daneben" installieren und zwei verschiedene Apache-Versionen laufen lassen. Besser ist es allerdings, nach einer gewissen Probezeit, die du vielleicht zum Anschauen brauchst, dann nur noch einen Apache bestehen zu lassen.

            und die alte httpd.conf behalten

            Nein, nicht vollständig. Du kannst sehr viele Einstellungen übernehmen, aber ein paar Unterschiede in der Konfiguration gibt es. Hinweise dazu findest du in Apache 1.3.31 für Windows und in Apache 2.0.50 für Windows.

            Warum müssen diese aktiviert sein? Bisher laufen bei mir alle Scripts, sowohl PHP als auch Perl.

            Erstaunlich ist das nur für PERL-Scripts, da mußt du dann das zugehörige Modul doch noch irgendwie aktiviert haben oder es gibt sowas wie "ScriptInterpreterSource registry" in deiner httpd.conf. Was es mit den Modulen auf sich hat, kannst du in einer knappen Zusammenfassung in der Umgang mit den Modulen nachlesen.

            Grüße aus Berlin

            Christoph S.

            1. Hallo

              Wenn es dir "nur" um echte PERL-Scripts (als CGI-Anwendungen) geht, brauchst du mod_perl überhaupt nicht. Dieses Modul brauchst du beispielsweise dann, wenn du PERL-Code direkt in HTML-Dokumente schreiben, also keine extra Scripts erstellen möchtest.

              D.h. ich kann durch die Installation von mod_perl gar keine Geschwindigkeitssteigerung erreichen, wenn ich nur "echte" Perl-Scripts verwende?
              Welche Möglichkeit gibt es dann?

              Erstaunlich ist das nur für PERL-Scripts, da mußt du dann das zugehörige Modul doch noch irgendwie aktiviert haben oder es gibt sowas wie "ScriptInterpreterSource registry" in deiner httpd.conf.

              Genau das gibt es in meiner httpd.conf. Das habe ich so in einer Dokumentation nachgelesen, was dieser Befehl genau bewirkt, weiß ich allerdings nicht. Vielleicht kannst du es mir erklären?

              Danke auch für die hilfreichen Links, die du gepostet hast!

              Igor