[PERL] "premature end of script headers"-error *

Pagina: 1
Acties:

  • j.bouwmeester
  • Registratie: Maart 2002
  • Laatst online: 28-05-2023
Ik wil CGIperl scrips gaan gebruiken op een website die ik beheer, maar ik krijg alleen maar foutmeldingen. Ik heb verschillende forums bekeken, maar ik kom er maar niet uit.
Om scriptfouten uit te sluiten heb ik het simpele ´Hello, world!´ script gebruikt.
#!/usr/local/bin/perl

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

print "Hello, world!\n";
Ik krijg telkens een 500 internal server error en in de errorlog een ´premature end of script headers´ foutmelding.

Ik FTP met WSFTP LE en verzend het script in ASCII mode en CHMOD het naar 755. Ik heb het script met TextPAD al in verschillende formaten opgeslagen UNIX met Ansi, Unix met Unicode, Windows, etc.
Ik blijf dezelfde errors krijgen. Ook met het script Perldiver.

Iemand nog suggesties, of is het tijd om de hostingprovider te gaan lastig vallen?

De hoster is Highpoint Hosting en deze gebruikt een Apache Unix server

[ Voor 3% gewijzigd door j.bouwmeester op 22-03-2005 15:27 ]


  • gorgi_19
  • Registratie: Mei 2002
  • Laatst online: 18:52

gorgi_19

Kruimeltjes zijn weer op :9

Digitaal onderwijsmateriaal, leermateriaal voor hbo


  • muba
  • Registratie: April 2002
  • Laatst online: 19-10-2013

muba

Prince of Persia!

Maar zo te zien stuurt de TS wel de obligate content-type header... wacht ff, dan kijk ik ff in een scriptje van mij...

code:
1
print "Content-Type: text/html\n\n";


Content-Type, allebei met hoofdletter... probeer dat eens?

offtopic:
Edit: ow, trouwens... zet je code liever tussen code-tags ipv quote :)

[ Voor 12% gewijzigd door muba op 22-03-2005 23:49 ]

Reporter: Mister Gandhi, what do you think of western civilisation?
Gandhi: I think it would be a good idea


  • Juup
  • Registratie: Februari 2000
  • Niet online
Is de eerste regel leeg zoals in de openingspost?
Heb je shell / ssh access op die server?
Weet je zeker dat de Perl interpreter in /usr/local/bin staat? Meestal in /usr/bin (`which perl`)
Draait dat script wel op de command-line?

Een wappie is iemand die gevallen is voor de (jarenlange) Russische desinformatiecampagnes.
Wantrouwen en confirmation bias doen de rest.


  • j.bouwmeester
  • Registratie: Maart 2002
  • Laatst online: 28-05-2023
Uiteraard. Een heleboel artikelen doorgelezen, maar helaas geen oplossing.
code:
1
print "Content-Type: text/html\n\n";


Content-Type, allebei met hoofdletter... probeer dat eens?

offtopic:
Edit: ow, trouwens... zet je code liever tussen code-tags ipv quote :)
Alle varianten geprobeerd, zonder succes.
Juup schreef op woensdag 23 maart 2005 @ 10:56:
Is de eerste regel leeg zoals in de openingspost?
Heb je shell / ssh access op die server?
Weet je zeker dat de Perl interpreter in /usr/local/bin staat? Meestal in /usr/bin (`which perl`)
Draait dat script wel op de command-line?
Eerste regel leeg gelaten, of weg maakt niks uit. Het is inderdaad /usr/bin, dus dat heb ik veranderd, helaas zonder resultaat.

Ik heb de benodigde info van de website van de provider zelf: http://www.highpoint.nl/faq.asp?SupportID=69
Zelfs als ik aan alles voldoe en juist gechmod naar 755, dan nog doet het script het niet....

  • Soultaker
  • Registratie: September 2000
  • Laatst online: 10-05 05:42
Heb je het bestand onder Windows gemaakt? Zo ja, weet je zeker dat er geen Windows-newlines in staan? (In dat geval moet je 'm eens uploaden in ASCII mode!)

  • Rac-On
  • Registratie: November 2003
  • Niet online
ik gebruik in mijn perl dingen:
code:
1
2
3
#!/usr/bin/perl
print "Content-type: text/html\n\n";
print '<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN"><HTML><HEAD><TITLE>Excuses</TITLE>  <link href="stylesheet.css" rel="stylesheet" type="text/css"></HEAD>';


ergens van een site geplukt. Iedere andere poging resulteerde bij mij ook in een error...

doet niet aan icons, usertitels of signatures


  • Soultaker
  • Registratie: September 2000
  • Laatst online: 10-05 05:42
Allemaal leuk en aardig, maar de code die de TS gebruikt is ook gewoon goed. Geloof me. Dat is het probleem niet.

Top 3 redenen dat een CGI-script niet werkt en de foutmelding in de topic title genereert (en volgens mij verantwoordelijk voor ruim 90% van de gevallen):
• Er worden geen headers gegenereerd in de code (maar dat gebeurt hier dus expliciet wel, met die print "Content-type: text/html\n\n" regel).
• De Perl interpreter kan niet gevonden worden omdat het pad verkeerd is (in de TS staat /usr/local/bin/perl, wat onder onder bijvoorbeeld BSD wel klopt, maar de standaardlocatie is /usr/bin/perl, wat vaak een symlink is naar de werkelijke locatie).
• De Perl interpreter kan niet gevonden worden omdat er een DOS newline achter de shebang line staat; in een UNIX editor als vi ziet de regel er dan uit als #!/usr/bin/perl^M en dat extra karakter is geen onderdeel van de bestandsnaam; in dat geval moeten de regeleindes dus geconverteerd worden of het bestand in ASCII mode geüpload worden.

Dit alles gaat er vanuit dat er ueberhaupt Perl is geïnstalleerd op het systeem in kwestie, anders is het vrij logisch dat het niet werkt. Omdat de eerste twee opties al aan de orde zijn geweest zet ik 'm geld op de derde. ;)

(Misschien ook handig voor in de FAQ?)

[ Voor 8% gewijzigd door Soultaker op 23-03-2005 17:21 ]

Pagina: 1