Marc: Apache installed, aber perl geht nicht??

Hallo Leute...

ich habe einen kleinen heim NT server aufgemacht, wo ich den code schreiben, damit ich nicht so lange online sein muss und auch ma testen kann ob alles geht... :-)

nun zu meinem problem:
um php unterstützung zu haben, hatte ich apache und php installed...
php-support und apache-webserver laufen ohne probleme... :-)
ich dachte dass bei apache schon perl unterstützung druff wär??

however, ich habe meine perl-scripts vom netz draufgeschmissen und nichts geht...
zuerst dachte ich der pfad zum interpreter wär falsch, aber die scripts liefen auch nach anderen pfdeingaben nicht... :-(

was mache ich falsch??
oder muss ich etwas perl auch noch installieren??
wenn ja, wo kriege ich die sachen her und wie mache ich das?? (kurz anleitung, da ich noch nie einen webserver aufgestellt habe, sonder immer nur nutzer war... *g*)

MFG Marc

  1. Hi,

    wenn ja, wo kriege ich die sachen her und wie mache ich das?? (kurz anleitung, da ich noch nie einen webserver aufgestellt habe, sonder immer nur nutzer war... *g*)

    na dann fang mal am besten hier an: http://i-netlab.de/apache/apache.htm f.f.

    Rolf

    1. Hallo! :-)

      zuerst ma danke für die hilfe... *g*
      aber der apache webserver steht schon komplett konfiguriert... ;-)
      des weiteren habe ich PHP support auch schon installed... :-)

      na dann fang mal am besten hier an: http://i-netlab.de/apache/apache.htm f.f.

      also wenn ich das perl-script ausführen will erhalte ich den error 500!

      ich kann mir aber schon die version usw. anzeigen lassen...
      #!c:/apache/perl/perl -v

      nur die scripte laufen nicht...

      die einstellungen von httpd.conf sind meines erachten nach wie oben beschrieben eingestellt...

      MFG Marco

      1. Hi,

        also wenn ich das perl-script ausführen will erhalte ich den error 500!

        das soll Dir sagen, daß der aktuelle Sinn Deiner Existenz ausschließlich darin besteht, das Error-Log des Servers zu konsultieren.

        Cheatah

        1. Hey! :-)

          das soll Dir sagen, daß der aktuelle Sinn Deiner Existenz ausschließlich darin besteht, das Error-Log des Servers zu konsultieren.

          *lol* guter komentar... :-)

          ...und hier haben wir die log datei:
          [Fri Jun 08 15:05:48 2001] [error] [client 127.0.0.1] Premature end of script headers: /apache/cgi-bin/test.pl
          [Fri Jun 08 15:05:48 2001] [error] [client 127.0.0.1] Can't locate perl5db.pl in @INC (@INC contains: .).

          [Fri Jun 08 15:05:48 2001] [error] [client 127.0.0.1] BEGIN failed--compilation aborted.

          was heisst das nun??

          MFG Marc

          1. hi!

            [Fri Jun 08 15:05:48 2001] [error] [client 127.0.0.1] Premature end of script headers: /apache/cgi-bin/test.pl
            [Fri Jun 08 15:05:48 2001] [error] [client 127.0.0.1] Can't locate perl5db.pl in @INC (@INC contains: .).
            [Fri Jun 08 15:05:48 2001] [error] [client 127.0.0.1] BEGIN failed--compilation aborted.

            was heisst das nun??

            "Can't locate perl5db.pl in @INC".
            Er kann keine Datei perl5db.pl finden, die irgendwo eingebunden wird
            (per use oder require vermutlich?).

            bye, Frank!

            1. ich habe bei meinem script jedoch keine dateien eingebunden??
              und auf dem anderen server läuft es perfekt... :-(

              MFG marc

              1. Grüssi!

                Probier das script mal, wenns nicht geht, ist (a) mit der Perl-Installation was schiefgelaufen, oder (b) der Apache findet den Interpreter nicht!

                #!C:/apache/perl/bin/perl -w

                liegt bei dir die perö.exe etwa nichtin ./perl/bin?

                print "Content-type: text/html\n\n";
                print "Surprise Surprise :o)";

                Falls es immer noch nicht geht, dann führ das script auf der Kommandozeile mnit dem -w flag aus und poste die Fehler!

                lg bernhard

                1. Hallo Bernhard... *g*

                  Das war der eintscheidende tipp... *lol*

                  meine zeile lautete wie folgt:
                  #!c:/apache/perl/bin/perl -w

                  deine so....

                  #!C:/apache/perl/bin/perl -w

                  liegt bei dir die perö.exe etwa nichtin ./perl/bin?

                  was ist der unterschied?? *g*
                  das grosse C ! *lol* wenn man das c klein schreibt, kommt eine fehlermeldung... :-(

                  komisch... *g*

                  MFG Marco

                  1. Hi Marc!

                    was ist der unterschied?? *g*
                    das grosse C ! *lol* wenn man das c klein schreibt, kommt eine fehlermeldung... :-(

                    *fg* ja, das sind die Fehler, über deren Lösung man sich noch Jahre später alle Haare aufm Kopf ausreissen könnte!

                    Ehrlich gesagt hatte ich eher erwartet das fehlende /bin wär dein Problem, da es in deinem Posting nicht drinstand, aber naja, schwein gehabt kann ich da nur sagen ;-)

                    lg bernhard

                  2. Hi!

                    was ist der unterschied?? *g*
                    das grosse C ! *lol* wenn man das c klein schreibt, kommt eine fehlermeldung... :-(

                    Glaub ich nicht. Windows unterscheidet nicht zwischen Gross- und Kleinschreibung, auch nicht beim Laufwerksbuchstaben. Bist Du sicher, dass Du das /bin auch schon vorher drin hattest?

                    So long

                    1. Hallo! :-)

                      ->mein interperter, also die perl.exe befindet sich in c:/apache/perl/ sowie in c:/apache/perl/bin...
                      in der readme.txt steht auch, dass man beide directories angeben kann... und es gehen auch beide... :-)

                      Ja, es ist schon komisch, wenn ich einen link angebe mit file://c:/test.htm oder file://c:/Test.htm dann ist das die selbe datei!

                      jedoch wenn ich beim apache server in der ersten zeile den interpreter eingebe, dann muss die location des interpreters mit einem gorssen C angegeben werden, sonst kommt bei mir ein error 500 wo etwas mit misconfiguration steht... bla bla bla...

                      ...was wiederum witzig ist, wenn ich -v eingebe, kommt die version des interpreters ob es nun ein kleines oder grosses C hat...

                      also sprich: der perl code kann vom interpreter nur ausgeführt werden, wenn ein grosses C da steht...

                      ich habs mehrmals versucht, da ich es selbst nich glauben konnte...

                      MFG Marc

                      1. Hi!

                        Interessant. Ich finde das Verhalten hoechst merkwuerdig. Welche Version von Apache verwendest Du?

                        So long

  2. hi!

    oder muss ich etwas perl auch noch installieren??

    Ja, musst du. Perl für Windows kannst du hier herunterladen:
      http://aspn.activestate.com/ASPN/Downloads/ActivePerl/

    Evtl. musst du danach in der Apache-Konfiguration (httpd.conf) noch
    angeben, in welchen Verzeichnissen bzw. Dateien mit welche Endungen
    als CGI-Programme auszuführen sind.

    Die erste Zeile aller deiner Perl-Skripts muss dann folgendermaßen
    aussehen:
      #!/pfad/zu/perl

    Wenn du ActivePerl in \usr auf der gleichen Platte wie deine Skripts
    installierst, kannst du #!/usr/bin/perl wie auf den meisten Servern
    verwenden. Ansonsten musst du diese Zeile vermutlich jedes mal
    anpassen, wenn du ein Skript hochlädst.

    bye, Frank!

    1. Hallo,

      Die erste Zeile aller deiner Perl-Skripts muss dann folgendermaßen
      aussehen:
        #!/pfad/zu/perl

      Wenn du ActivePerl in \usr auf der gleichen Platte wie deine Skripts
      installierst, kannst du #!/usr/bin/perl wie auf den meisten Servern
      verwenden. Ansonsten musst du diese Zeile vermutlich jedes mal
      anpassen, wenn du ein Skript hochlädst.

      Unter Win kann man dem Apache, ein korrekt registriertes Perl vorausgesetzt, mitteilen, daß er den Interpreterpfad aus der Registry auslesen soll:

      ScriptInterpreterSource registry

      Damit kann man die Pfade der Shebangzeile unberührt lassen. Bis jetzt habe ich mit dieser Anweisung nur gute Erfahrungen gemacht (nicht ständiges Umschreiben der Pfade!)

      Gruß AlexBausW