webForumDet fria alternativet

Får http 500-fel vid access av cgi-bin

Webbservrar

11 svar · 522 visningar · startad av Peeer

Medlem sedan mars 20025 907 inlägg
Frågan#1

Hilfe!
Oavsett vilken fil jag försöker accessa i www.domän.se/cgi-bin så resulterar det i ett "500 Internal Server Error", även rena textfiler alltså.

I apaches fel-logg står det

[Tue Nov 16 20:00:38 2004] [error] [client *.*.*.*] Premature end of script headers: /home/***/domains/**/public_html/stats/cgi-bin/textfil.txt

Filen och mappen är chmod:ad med 755. Vad gör man?

Medlem sedan juni 20014 290 inlägg
#2

Filen måste vara ett program och som ger ifrån sig rätt header information.

Prova följande kod:

#!/usr/bin/perl
 
print "Content-type: text/html\n\n";
print <<EOF;
<html>
<head>
<title>foobar</title>
</head>
<body>
<h1>foobar</h1>
</body>
EOF
Medlem sedan mars 20025 907 inlägg
#3

Samma fel :(

Medlem sedan juni 20014 290 inlägg
#4

Har testat programmet på min maskin och där fungerar det ( http://www.gunnard.se/cgi-bin/test.pl ).

Kolla så att sökvägen till perl är rätt.

Har du tillgång till ett shell så gör man det enklast med kommandot "which perl".

Medlem sedan mars 20025 907 inlägg
#5

Verkar stämma ja

bash-2.05b$ which perl
/usr/bin/perl

Vad gör man då? Kan man göra något med en .htaccess eller liknande?

Medlem sedan juli 20013 378 inlägg
#6

Hmm..

Laddade du upp filerna via FTP i ASCII-mode ? (det kan kacka sådär om man laddar upp dem i "Binary")

Medlem sedan mars 20025 907 inlägg
#7

jarvklo skrev:

Hmm..

Laddade du upp filerna via FTP i ASCII-mode ? (det kan kacka sådär om man laddar upp dem i "Binary")

De riktiga filerna är uppladdade via FTP i "auto"-mode. Men exemplet som gunnarD skrev skapade jag mha nano via shellet. Fungerar ju inte det heller :(

Medlem sedan juli 20013 378 inlägg
#8

Hmm...

Den här brukar hjälpa mig när jag har problem...

http://support.aleborg.se/index.php?_a=knowledgebase&_j=questiondetails&_i=17&nav=+%26gt%3B+<a+href%3D\\\'index.php%3F_a%3Dknowledgebase%26_j%3Dsubcat%26_i%3D4\\\'>Webbplatsen<%2Fa>

...och BTW - Glöm "auto" mode (den har jag haft problem med vid några tillfällen...) Jag kör numera alltid "ascii-mode" explicit för att vara på säkra sidan när jag laddar upp .pl eller .cgi-filer.

Förresten... En annan sak... Ditt loggutdrag anger att du försökte köra exemplet som "textfil.txt"... Blir det inte bättre om du kör det döpt till "textfil.pl" ?

Medlem sedan mars 20025 907 inlägg
#9

Följande testades just:
Döpte om filen till testar.pl
körde chmod 755 testar.pl
cd ..
chmod 755 cgi-bin/
Kollade ägaren, vilket var jag (användare web***).
Kollade så att "shebang"en stämde, vilket den gjorde
Kollade att det var en blankrad mellan "shebang"en och första kodraden, vilket det också var.
Körde "perl -c testar.pl" och syntaxen var korrekt..

Fortfarande samma fel:
[Wed Nov 17 00:13:42 2004] [error] [client *.*.*.*] Premature end of script headers: /home/web***/domains/***/public_html/cgi-bin/testar.pl

Tips?

Medlem sedan juli 20013 378 inlägg
#10

Hmm...

Tyvärr inte (försåvitt du inte har en "kontrollpanel" på ditt webbhotell där man manuellt måste tillåta "CGI access" för att det skall fungera och att detta inte är påslaget per default)

Kontakta supporten på ditt webbhotell imorgon och be dem kolla om de ser något konstigt...

Lider med dig - Lycka till! :bire

Medlem sedan mars 20025 907 inlägg
#11

jarvklo skrev:

Tyvärr inte (försåvitt du inte har en "kontrollpanel" på ditt webbhotell där man manuellt måste tillåta "CGI access" för att det skall fungera och att detta inte är påslaget per default)

Jodå, enligt kontrollpanelen så är det på. Skickade iväg ett mail till dem nyss, hoppas att de kan lösa det.

Tack alla iaf!

Medlem sedan mars 20025 907 inlägg
#12

Peeer skrev:

Kollade ägaren, vilket var jag (användare web***).

Ähum, my bad :r
Ägaren stämde förvisso, men inte gruppen.

Problemet var att det var fel ägare:grupp på katalogen+scriptet.
SUExec kräver att det tex är web***:web*** som är ägare:grupp.
Genom att tex göra: tail -f /var/log/httpd/suexec_log
Och samtidigt köra scriptet via webbläsare så såg jag att det ploppade upp en rad i loggen:
[2004-11-17 09:13:47]: error: target uid/gid (1092/1092) mismatch with directory (1092/1006) or program (1092/1092)

apacheusern = 1006

Går att ändra med "chmod -R webxxx:webxxx cgi-bin"

-R=rekursivt

259 ms totalt · 4 externa anrop · v20260731065814-full.86ec41c2
128 ms — deklarationer (db)
0 ms — hämta statistik (cache)
129 ms — hämta tråd, inlägg och bilagor (db)
119 ms — ändringar (db)