Internal Server Error - Wieso?
Warlock
- cgi
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
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
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
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
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
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
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
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
»» 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
Hi,
ich hatte zwar gesagt, es gibt kein Verzeichnis, das perldelta heißt...aber ich habe eine Datei namens perldelta.1 gefunden...
Warlock
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
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
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
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
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