Warlock: Internal Server Error - Wieso?

Ich habe einen neuen Apache Webserver unter Linux installiert.
Ich hatte vorher die Version 1.3.4 und Perl-Scripte liefen.
Jetzt habe ich Version 1.3.12 und die Perl-Scripte laufen nicht mehr.
Die Scripte sind aber korrekt, weil sie liefen ja vorher.

Die error_log des Apache sagt:
No such file or directory: exec of /usr/htdocs/cgi-bin/test.pl failed
Premature end of script headers: /usr/htdocs/cgi-bin/test.pl

Ich habe in der httpd.conf die entsprechenden Optionen eingetragen:
AddHandler cgi-script .cgi .pl

und ich habe auch die entsprechenden Optionen eingetragen: Scriptalias /cgi-bin/ /usr/htdcos/cgi-bin
woran kann es liegen, das ich immer einen Internal Server Error 500 bekommen?
mit dem Aufruf which perl unter linux bekomme ich /usr/bin/perl angezeigt.
und wenn ich das script mit perl test.pl aufrufe, bekomme ich den html quelltext angezeigt.
Bitte helft mir..ich bin schon am verzweifeln!!

MFG
Warlock

  1. Hi,

    No such file or directory: exec of /usr/htdocs/cgi-bin/test.pl failed
    Premature end of script headers: /usr/htdocs/cgi-bin/test.pl

    so spontan fällt mir außer den Standardlösungen, von denen Du die meisten bereits ausgeschlossen hast, auch nichts ein. Ich nehme an, die Zeilenumbrüche sind Unix-like, und die Dateirechte (inkl. für Verzeichnisse) stimmen alle, oder?

    und ich habe auch die entsprechenden Optionen eingetragen: Scriptalias /cgi-bin/ /usr/htdcos/cgi-bin

    Hier macht mich ein wenig stutzig, daß es "ScriptAlias" heißen müßte. Copy&Paste-Fehler? Zudem sollte das Verzeichnis mit einem Slash enden; und wenn das auch nicht hilft, setz es doch mal in Klammern...

    Cheatah

    1. Hi,

      Hier macht mich ein wenig stutzig, daß es "ScriptAlias" heißen müßte. Copy&Paste-Fehler? Zudem sollte das Verzeichnis mit einem Slash enden; und wenn das auch nicht hilft, setz es doch mal in Klammern...

      Du hast recht...es heißt ScriptAlias
      ich habe es abgeschrieben...und zwar recht schludrig...*g
      so stehts in meiner httpd.conf:
      ScriptAlias /cgi-bin/ "/usr/htdocs/cgi-bin/"

      Warlock

      1. Hi,

        ScriptAlias /cgi-bin/ "/usr/htdocs/cgi-bin/"

        und trotzdem funktioniert's nicht? Hm.

        Was gibt denn folgendes (nicht-CGI-)Script aus:

        #!/usr/bin/perl
        print @INC;

        In der Kürze liegt die Würze ;-)
        Sind in @INC alle benötigten Module?

        Cheatah

        1. Hi,

          Was gibt denn folgendes (nicht-CGI-)Script aus:

          #!/usr/bin/perl
          print @INC;

          ich hab ein script erstellt, das die zwei zeilen beinhaltet. Wenn ich dieses Script mit einem Browser aufrufe, kommt der bekannte Internal Server Error
          wenn ich die datei teste mit perl test.pl dann schreibt er:

          /usr/local/lib/perl5/5.6.0/i586-linux/usr/local/lib/perl5/5.6.0/usr/local/lib/perl5/site_perl/5.6.0/i586-linux/usr/local/lib/perl5/site_perl/5.6.0/usr/local/lib/perl5/site_perl

          1. Hi,

            Was gibt denn folgendes (nicht-CGI-)Script aus:

            ich hab ein script erstellt, das die zwei zeilen beinhaltet. Wenn ich dieses Script mit einem Browser aufrufe, kommt der bekannte Internal Server Error

            naja, deswegen habe ich ja auch extra gesagt, daß es ein nicht-CGI-Script ist ;-)

            wenn ich die datei teste mit perl test.pl dann schreibt er:

            /usr/local/lib/perl5/5.6.0/i586-linux/usr/local/lib/perl5/5.6.0/usr/local/lib/perl5/site_perl/5.6.0/i586-linux/usr/local/lib/perl5/site_perl/5.6.0/usr/local/lib/perl5/site_perl

            Und, liegen die in Deinem Problem-Script eingebundenen Module in einem dieser Verzeichnisse?

            Insbesondere fällt auf, daß Du die relativ neue Perlversion 5.6.0 benutzt. Wenn diese mit dem Server mitinstalliert wurde, schätze ich mal, daß Du den Schuldigen gefunden hast. Schau mal in

            perldoc perldelta

            nach, was sich alles geändert hat und was Du beachten mußt - ich selbst verwende diese Version nicht.

            Oh, ach ja - ist vielleicht in Apache mod_perl installiert? Wenn ja, schalte das doch mal aus.

            Cheatah

            1. Hi,

              Und, liegen die in Deinem Problem-Script eingebundenen Module in einem dieser Verzeichnisse?

              Insbesondere fällt auf, daß Du die relativ neue Perlversion 5.6.0 benutzt. Wenn diese mit dem Server mitinstalliert wurde, schätze ich mal, daß Du den Schuldigen gefunden hast. Schau mal in

              Ich habe diese version net mit dem Apache mitinstalliert, sondern nachträglich...ich muss doch Perl net als Modul in Apache mitinstallieren, so wie php4??

              »»  perldoc perldelta
              Es gibt keine solchen Verzeichnisse im

              nach, was sich alles geändert hat und was Du beachten mußt - ich selbst verwende diese Version nicht.

              welche version hast du denn?

              Oh, ach ja - ist vielleicht in Apache mod_perl installiert? Wenn ja, schalte das doch mal aus.

              Wenn mod_perl im Apache installiert ist, wie kann ich es ausschalten???

              P.S. bitte bestätige meinen ICQ Request
              Warlock

              1. Hi,

                Ich habe diese version net mit dem Apache mitinstalliert, sondern nachträglich...ich muss doch Perl net als Modul in Apache mitinstallieren, so wie php4??

                ich weiß wie gesagt nicht, was sich mit dieser Perl-Version verändert hat; aber üblicherweise nicht, nein.

                »»  perldoc perldelta
                Es gibt keine solchen Verzeichnisse im

                Dein Perl hat kein perldelta?! Das glaube ich ehrlich gesagt nicht. Tipp's bitte noch mal ein.

                nach, was sich alles geändert hat und was Du beachten mußt - ich selbst verwende diese Version nicht.
                welche version hast du denn?

                C:\usr\bin>perl -v

                This is perl, version 5.005_03 built for MSWin32-x86-object

                Wenn mod_perl im Apache installiert ist, wie kann ich es ausschalten???

                LoadModule perl_module modules/ApacheModulePerl.dll
                (o.ä.) in der httpd.conf auskommentieren.

                P.S. bitte bestätige meinen ICQ Request

                Oh je... ich hab schon seit Monaten kein ICQ mehr gestartet :-)

                Cheatah

                1. »»  perldoc perldelta
                  Dein Perl hat kein perldelta?! Das glaube ich ehrlich gesagt nicht. Tipp's bitte noch mal ein.

                  ich hab auch net windows...ich habe linux...und ich habe keine verzeichnis gefunden, das perldelta heißt

                  LoadModule perl_module modules/ApacheModulePerl.dll
                  (o.ä.) in der httpd.conf auskommentieren.

                  in der httpd.conf gab es früher mal sowas wie LoadModule perl_module...aber in der 1.3.12 gibts das nicht...
                  dort werden die module irgendwie anders geladen...
                  in meiner alten httpd.conf (Apache version: 1.3.4) gabs das och

                  Oh je... ich hab schon seit Monaten kein ICQ mehr gestartet :-)

                  Dann starte mal wieder...und miste die Contact liste aus.. *g*

                  Warlock

                2. Hi,
                  ich hatte zwar gesagt, es gibt kein Verzeichnis, das perldelta heißt...aber ich habe eine Datei namens perldelta.1 gefunden...

                  Warlock

                  1. Auch Hi!

                    ich hatte zwar gesagt, es gibt kein Verzeichnis, das perldelta heißt...aber ich habe eine Datei namens perldelta.1 gefunden...

                    Ist das so schwer? Du sollst auf der Kommandozeile
                      perldoc perldelta
                    eingeben, und nicht nach irgendwelchen Verzeichnissen oder Dateien suchen. Da Du auf Linux bist, geht wahrscheinlich auch
                      man perldelta
                    .

                    So long

                    1. Auch Hi!

                      ich hatte zwar gesagt, es gibt kein Verzeichnis, das perldelta heißt...aber ich habe eine Datei namens perldelta.1 gefunden...

                      Ist das so schwer? Du sollst auf der Kommandozeile
                        perldoc perldelta
                      eingeben, und nicht nach irgendwelchen Verzeichnissen oder Dateien suchen. Da Du auf Linux bist, geht wahrscheinlich auch
                        man perldelta

                      Habs gefunden... :-)
                      Und die Scripte laufen jetzt auch *freu
                      Warlock

                      1. Hi,

                        perldoc perldelta

                        Habs gefunden... :-)
                        Und die Scripte laufen jetzt auch *freu

                        dann erübrigt sich vermutlich auch die 151-KByte-Mail mit Deiner perldelta.1, richtig?

                        Bitte verschickt doch nicht ohne vorher zu fragen irgendwelche Dateien. Auch wenn ich gerne helfe, lasse ich mich extrem ungern dazu zwingen. Legt die Datei mit einem passenden MIME-Type in eurem Webspace ab und nennt die URL. Danke :-(

                        Cheatah

                        1. Hi,

                          dann erübrigt sich vermutlich auch die 151-KByte-Mail mit Deiner perldelta.1, richtig?

                          ja, das hat sich erübrigt :)

                          Bitte verschickt doch nicht ohne vorher zu fragen irgendwelche Dateien. Auch wenn ich gerne helfe, lasse ich mich extrem ungern dazu zwingen. Legt die Datei mit einem passenden MIME-Type in eurem Webspace ab und nennt die URL. Danke :-(

                          Ich werde es mir fürs nächste Mal merken...

                          Warlock

            2. Hi,
              noch ein Zusatz:
              mittlerweile bekomme ich nach der Eingabe von which perl
              /usr/local/bin/perl angezeigt...
              nicht mehr wie am anfang /usr/bin/perl
              ich hab das script entsprechend geändert (1. Zeile) - Trotzdem internal server error
              Warlock