Schrift
[thread]11259[/thread]

Anfängerprobleme 500 Internal Server Error



<< >> 8 Einträge, 1 Seite
Gast Gast
 2008-02-06 21:04
#105663 #105663
Hallo

ich wage zur Zeit meine ersten Schritte mit CGI / Perl und komme nicht weiter.

Ein einfaches Hello World lässt sich auf dem Server nicht ausführen. Lokal läuft das Programm. Hier meine bisherige Vorgehensweise:
Der Code sieht wie folgt aus:

Code (perl): (dl )
1
2
3
4
5
6
#!usr/bin/perl
use strict;

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

print "<Center><H2>Hello World</H2></Center>";


Diese Datei mit dem Namen hello_world.pl schiebe ich dann im ASCII Modus auf den Server in das Verzeichnis /cgi-bin. Der Webhoster (Strato) hat mir bestätigt, dass die Shebang richtig ist und cgi Skripte ausführbar sind.
Die Berechtigungen der Datei habe ich mit chmod auf 755 gesetzt. Das Skript läuft jedoch nicht.
Auch das Einfügen von

Code: (dl )
use CGI::Carp(fatalsToBrowser);


liefert auch keine weiteren Informationen.

Ich bin für jede Hilfe dankbar.

----
Modedit Gwendragon:
Code/Perl-Tags hinzugefügt
----
moritz
 2008-02-06 21:13
#105664 #105664
User since
2007-05-11
923 Artikel
HausmeisterIn
[Homepage]
user image
Hast du das Programm per FTP übertragen? Falls ja: auf binary mode stellen.

Hast du Zugang zur error.log des Servers?
GwenDragon
 2008-02-06 21:17
#105665 #105665
User since
2005-01-17
14563 Artikel
Admin1
[Homepage]
user image
Nein, das Skript darf nicht im Modus Binär hochgeladen werden.
Dann stimmen möglicherweise die Zeilenendezeichen nicht mehr.

Bei Skripten muss im Textmodus hochgeladen werden, damit die Zeilenenden eben auf Unix umgestellt werden!
die Drachin, Gwendolyn


Unterschiedliche Perl-Versionen auf Windows (fast wie perlbrew) • Meine Perl-Artikel

RalphFFM
 2008-02-06 21:37
#105666 #105666
User since
2006-11-16
258 Artikel
BenutzerIn
[Homepage] [default_avatar]
Error 500 kann leider so ziemlich vieles beinhalten.
Benenne Dein hello_world.pl mal um in hello_world.cgi ...
(Anmerkung: Das muß nicht immer so sein, sondern ist eine reine Webserver-Konfigurationsangelegenheit.)
moritz
 2008-02-06 21:55
#105667 #105667
User since
2007-05-11
923 Artikel
HausmeisterIn
[Homepage]
user image
GwenDragon+2008-02-06 20:17:39--
Nein, das Skript darf nicht im Modus Binär hochgeladen werden.
Dann stimmen möglicherweise die Zeilenendezeichen nicht mehr.

Bei Skripten muss im Textmodus hochgeladen werden, damit die Zeilenenden eben auf Unix umgestellt werden!


Das verstehe ich nicht - Perlscripte funktionieren doch unter Unix auch wunderbar mit Windows-Zeilenenden. Wieso sollte das ein Problem sein? Perl ignoriert Whitespaces doch eh fast überall.

Ich hätte eher erwartet, dass kaputte Clients im Text-Modus irgend welche Änderungen an dem Script machen, die es nicht geben sollte (z.B. UTF-8-kodierte Umlaute zerstören oder so).
Linuxer
 2008-02-06 22:11
#105669 #105669
User since
2006-01-27
3875 Artikel
HausmeisterIn

user image
Normalerweise gibt es unter Linux/Unix keine Datei "/usr/bin/perl\x0d", sodass oftmals ein "bad interpreter: no such file or directory" ausgeworfen wird...

Da der Windows Zeilenumbruch aus \x0d\x0a besteht, das \x0a aber in der Unix-Welt der gültige Umbruch ist, wird \x0d als letztes Zeichen der Shebang gewertet...
meine Beiträge: I.d.R. alle Angaben ohne Gewähr und auf Linux abgestimmt!
Die Sprache heisst Perl, nicht PERL. - Bitte Crossposts als solche kenntlich machen!
ptk
 2008-02-06 23:33
#105671 #105671
User since
2003-11-28
3645 Artikel
ModeratorIn
[default_avatar]
Ein Workaround ist, eine Kommandozeilenoption am Shebang anzuhänge, z.B. -w:
Code: (dl )
#!/usr/bin/perl -w\015
renee
 2008-02-07 15:09
#105684 #105684
User since
2003-08-04
14371 Artikel
ModeratorIn
[Homepage] [default_avatar]
Zu 500er siehe auch http://wiki.perl-community.de/bin/view/Wissensbasi...
OTRS-Erweiterungen (http://feature-addons.de/)
Frankfurt Perlmongers (http://frankfurt.pm/)
--

Unterlagen OTRS-Workshop 2012: http://otrs.perl-services.de/workshop.html
Perl-Entwicklung: http://perl-services.de/
<< >> 8 Einträge, 1 Seite



View all threads created 2008-02-06 21:04.