webForumDet fria alternativet

Script Alias cgi-bin

25 svar · 775 visningar · startad av nordan

nordanMedlem sedan juni 2000949 inlägg
#1

Hej!
Varför körs inte perl programmen under cgi-bin när jag gör script alias :q
Jag har gjort så att man för varje anv har en katalog som heter public_html där man lägger sina html sidor m.m. det jag då vill är att ha en mapp som heter cgi-bin som ligger i public_html där jag kan köra perl script
Att styra om så att html sidorna funka gick bra men när jag skall göra samma sak för cgi katalogen så funkar det inte.
Programmen körs inte utan den skriver ut koden som om det vore en txt fil man har länkat till :l Under /var/www/cgi-bin/ funkar perl filerna som dom skall.
Hur gör jag??

nordanMedlem sedan juni 2000949 inlägg
#2

Ingen som kan detta?
Snälla hjälp mig :l

spangoMedlem sedan juni 20008 205 inlägg
#3

Du måste ha ExecCGI påslaget för att det ska gå.
http://httpd.apache.org/docs/howto/cgi.html

RobbanMedlem sedan dec. 19992 555 inlägg
#4

Frågan är en FAQ, så jag föreslår att du börjar där. :)

http://httpd.apache.org/docs/misc/FAQ.html#user-cgi

nordanMedlem sedan juni 2000949 inlägg
#5

Hallå!
Oki har kollat på länken
http://httpd.apache.org/docs/misc/FAQ.html#user-cgi
och fått mitt lilla perlscript att reagera :) dock inte som jag vill
Nu är jag inte hundra på om jag placera detta

<Directory /home/*/public_html/cgi-bin>
    Options ExecCGI
    SetHandler cgi-script
</Directory>

på rätt ställe
Placera det under:
<IfModule mod_userdir.c>
UserDir public_html
HÄR
</IfModule>

Man skulle skriva in det under public_html directory och detta är det ända jag hittar som inte är bortkommenterat
Oki när jag har skrivigt in detta så blir det iaf fel och i error_loggen står detta fel Premature end of script headers Och då tog man ju åt sig av Robba och kolla FAQ först
http://httpd.apache.org/docs/misc/FAQ.html#premature-script-headers
Men såklart hajja jag inte det någon som kan hjälpa till?
Jag har iaf kollat om scriptet är fel eller inte men det funkar fin fint :)
Kan någon :q

spangoMedlem sedan juni 20008 205 inlägg
#6

Hur ser scriptet ut?

nordanMedlem sedan juni 2000949 inlägg
#7
#!/usr/bin/perl
print "Content-type: text/html\n\n";
print "Hello world";
RobbanMedlem sedan dec. 19992 555 inlägg
#8

Hur flyttar du skriptet till public_html/cgi-bin? Med FTP, eller?

Fungerar skriptet om du kör det från skalet när det ligger i public_html/cgi-bin?

nordanMedlem sedan juni 2000949 inlägg
#9

Hur flyttar du skriptet till public_html/cgi-bin? Med FTP, eller?

Nope jag lägger in det i cgi-bin katalogen med chmod 755

Fungerar skriptet om du kör det från skalet när det ligger i public_html/cgi-bin?

Ja om du menar att jag skall köra skripet såhär perl hello.cgi
i /public_html/cgi-bin/

Nu har jag iaf fått ett annat error :birp Options ExecCGI is off in sökväg till cgi katalogen hur sätter jag på det?

Detta är vad jag har där

<Directory /home/*/public_html/cgi-bin>
    Options ExecCGI
    SetHandler cgi-script
</Directory>
FlashXMedlem sedan nov. 19991 033 inlägg
#10

Om du redan har Options ExecCGI utanför gällande <Directory> så blir värdena för Options istället avstängda om man inte använder +
Det bör alltså vara Options +ExecCGI

nordanMedlem sedan juni 2000949 inlägg
#11

Jag får inte CGI skripten att funka i public_html/cgi-bin/ :l
Jag fick Options Indexes att funka i den katalogen men inte ExecCGI .
Någon som har lust att kolla på denna fil och tala om vad jag har gjort för fel?
Error loggen säger just nu Premature end of script headers
http://hem.passagen.se/load/httpd.txt

RobbanMedlem sedan dec. 19992 555 inlägg
#12

Ja om du menar att jag skall köra skripet såhär perl hello.cgi ...

Nej, jag menar att du skall köra skriptet som vilket annat program som helst, inte sätta perl framför.

./hellp.cgi

Ibland kan man nämligen lyckas få med osynliga skräptecken i slutet av första raden (den som pekar ut Perl-tolken), speciellt om Windows är inblandat någonstans (att man t.ex. har skrivit skriptet i Windows).

Öppnas skriptet i vi så brukar sådana tecken synas (t.ex. som ^M i slutet av raden).

nordanMedlem sedan juni 2000949 inlägg
#13

Robban: Japp det funkar med ./ hello.pl eller .cgi
Det lustiga är att när jag tar bort #!/urs/bin/perl så funkar det iaf?
Såg det rätt ut i min httpd.conf fil :q
Jag är vekligen tacksam för att folk vill hjälpa en :birp

nordanMedlem sedan juni 2000949 inlägg
#14

:D Nu tror jag att jag har hittat felet iaf
Vad jag tror att det är:
Den som har kontot i mitt fall ANV: Nordan måste vara ägare till filen som skall köras.
ANV: Nordan måste oxå sätta rättigheterna på filen.
Är detta rätt?
Isf
Går det inte att vara root och lägga in filer i användarnas mappar?
Jag skulle vilja ha en fil i varje cgi-bin mapp som heter hello.pl som jag då har lagt i /etc/skel/ hur göra man då med rättigheterna på filen?
Kan man byta användare på samma sätt som man göra med su

FlashXMedlem sedan nov. 19991 033 inlägg
#15

Vem som äger filen spelar egentligen inte så stor roll utan handlar mer om vilka som kan accessa den. Är du root eller någon annan så kan du chmodda filen så andra kan exekvera den, exempelvis webbservern. 755 är ju normalt att använda för cgi-skript.

En liten rättelse också från ovan. Det är tydligen så att alla värden i Options som ligger som default, blir nollade så snart man anger en Options i t.ex <Directory> (såvida man inte lägger till + framför).

I ditt fall bör du ha + framför både Indexes och ExecCGI om du samtidigt vill ha kvar tidigare värden. Ett minus framför anger att man tar bort just det värdet från tidigare gällande options.

nordanMedlem sedan juni 2000949 inlägg
#16

Vem som äger filen spelar egentligen inte så stor roll utan handlar mer om vilka som kan accessa den. Är du root eller någon annan så kan du chmodda filen så andra kan exekvera den, exempelvis webbservern. 755 är ju normalt att använda för cgi-skript.

Jag gör så men det funkar inte Men loggar jag in som en användare så funkar det och alla kan köra användarens fil?
Vad är det då för fel vet någon?

nordanMedlem sedan juni 2000949 inlägg
#17

Så här har jag gjort
Katalogen Nordan/ chmod 711
Katalogen /public_html/ chmod 755
Katalogen /cgi-bin/ chmod 755
Scriptet hello.cgi och hello.pl chmod 755
Det går att köra scripten om jag är inloggad och chmodar katalogerna och scripten som Nordan
Är jag inloggad som root och gör tex ett script som heter test.pl och lägger det i Nordan/public_html/cgi-bin/ så får jag fel.
Vad jag förstår av tidigare svar så skall det gå att göra så?
Varför går det då inte
Vad kan det vara som jag har gjort fel?
Någon som vet?

GunnarDMedlem sedan juni 20014 290 inlägg
#18

Rättigheterna måste vara rätt satta hela vägen from / och neråt, har du 700 någonstan på vägen så spärrar den.

Ex. /export/home/foobar/public_html

Här måste /export, /export/home, /export/home/foobar och /export/home/foobar/public_html ha minst 711 för att webserver skall kunna läsa filerna.

nordanMedlem sedan juni 2000949 inlägg
#19

Så här ser det ut när jag skriver ls -l

-rwxr-xr-x	1 root 	root  	87 jun 7 15:12 test.cgi
-rwxr-xr-x	1 Nordan2 Nordan2  137 jun 6 20:37 hello.cgi

Filen som det står Nordan2 på funkar men inte den som det står root på
Jag har alltså loggat in som Nordan2 och gjort filen och då funka det men när jag skapar en fil som root och lägger i Nordan2s cgi-bin så funkar det inte det ända jag kan hitta som är skillnad är vem som har skapat filen.
Vad gör jag :q

GunnarDMedlem sedan juni 20014 290 inlägg
#20

Vad står det i error loggen när du försöker köra scriptet?

Kan du köra det genom att skriva ./test.cgi när du står i den katalogen och är inloggad som Nordan2?

136 ms totalt · 3 externa anrop · v20260731065814-full.30151723
0 ms — hämta forumlista (cache)
0 ms — hämta statistik (cache)
133 ms — hämta tråd, inlägg och bilagor (db)