Hmm Trodde det skulle vara lätt att köra perl program i Linux
Jag har gjort ett lite skönt Perl program som srivker ut Hej ;)
Men när jag skall köra det som en websida så kommer koden upp istället
vad gör jag för fel?
Eftersom koden kommer upp så har jag antagligen rätt sökväg :)
Men den kompilerar ihnte programmet ???
//
nordan
Köra Perl i Linux
17 svar · 715 visningar · startad av nordan
Är sökvägen till perltolken rätt (första raden)? Är rättigheterna satta så att scriptfilen är körbar? Kort sagt - fungerar det att köra scriptet från kommandotolken genom att enbart ange scriptnamnet?
Om ovanstående är avklarat: Hur är Apache (antar att det är Apache du använder) konfigurerad när det gäller CGI (att få se httpd.conf skulle vara värdefullt)?
------------------
Robban < robban@lipogram.com >
Scriptet är helt rätt skrivet :)
Det är oxå rätt sökväg om det är så
att sökvägen är den samma som när man
skriver whereis Perl
Då fick jag fram en sökväg som jag skrv in.
Japp använder Apache kanske är nått man skall göra där :q
//
nordan
Japp använder Apache kanske är nått man skall göra där
Ja, konfigurera den så den tolkar .pl som cgi script kanske? :e Det står i manualen hur man gör...
[Redigerat av Muzzafarath den 10 okt 2000]
Jag får inte perl att fungera
någon som kan förklarra ??
Lite svårt när du inte ger mer information. Hur ser din httpd.conf ut och hur ser scriptet ut?
------------------
Robban < robban@lipogram.com >
har du placerat skriptet i cgi-bin-katalogen? och inte bland html-filerna...
Hejsan!
När jag kör ett perl script i mitt Terminal fönster får jag detta medelande
Vad är det och hur gör man för att få till detta?
Det jag skriver när jag kör perl scriptet är
perl programnamn.pl eller perl programnamn.cgi
Efter detta medelande så skriver perl programmet ut det som jag
har sagt åt den att göra.
perl: warning: Setting locale failed.
perl: warning: Please check that your locale settings:
LANUGUAGE = (unset),
LC_ALL = (unset),
LANG = "sv_SV"
are supported and installed on your system.
perl: warning: Falling back to the standard locale ("C").
Hoppas någon kan hjälpa mig med detta
Robban jag har varit inne i httpd.conf
och kollat men jag vet inte riktigt vad jag skall kolla efter så tipsa mig gärna
så här ser perlscriptet ut
#!/usr/bin/perl
print "Content-type: text/html\n\n";
print "HEJ\n";
//nordan
Det jag skriver när jag kör perl scriptet är perl programnamn.pl ...
Ok. Och det är även möjligt att köra scriptet genom att bara skriva scriptnamnet? Typ (om du står i samma katalog som scriptet):
./programnamn.pl
Fungerar inte det så kommer det inte att fungera under Apache.
Och som Peter_B skriver - scriptet ligger i cgi-bin eller?
perl: warning: Setting locale failed.
perl: warning: Please check that your locale settings: ...
Tror inte detta är anledningen till ditt problem (detta felmeddelande skrivs inte ut till stdout, utan till stderr). Det indikerar dock att du har problem med dina språkinställningar. Skriv följande i terminalen:
locale -a
Finns sv_SV med i listan du (förhoppningsvis) får upp?
Robban jag har varit inne i httpd.conf och kollat men jag vet inte riktigt vad jag skall kolla efter så tipsa mig gärna.
Kopiera den och lägg upp den någonstans så att den går att ladda ner (den skall normalt sett inte innehålla några hemligheter).
Vilken dist. av Linux kör du förresten, och vilken version?
------------------
Robban < robban@lipogram.com >
Tjena Robban
Nu har jag lagt ut httpd filen i ett text doc på adressen http://hem.passagen.se/load/
När jag skriver locale -a finns inte
sv_SV med hur lägger jag till det?
Det finns sv_SE och sv
när jag skriver ./perlprog.pl eller ./perlprog.cgi skriver den ut vad jag vill med programmet men det blir oxå dom felen som jag tidigare skrev om.
//
nordan
På rad 367 har du ett ScriptAlias. Det är ok. Dina script måste alltså ligga i katalogen /home/httpd/cgi-bin/ för att de skall köras (rättigheterna på katalogen och scripten i den skall vara 755).
På rad 381 finns ett Options-direktiv. Låg det där från början, eller har du lagt till det själv?
På slutet finns två <Files >...</Files> som inte pekar på något filnamn. Låg dessa där från början, eller har du lagt till dem själv? Prova med att helt kommentera bort dem.
Får du några varningar om du kör apachectl configtest (apachectl bör ligga i samma katalog som övriga Apache-binärer)?
Det finns sv_SE och sv ...
Finns "swedish" med?
Du måste leta reda på det ställe där omgivningsvariabeln $LANG sätts. Prova t.ex. med /etc/profile. Finns där en rad:
LANG=sv_SV
Ändra i så fall till LANG=swedish (om "swedish" fanns med bland alternativen) eller LANG=sv_SE. Du måste logga ut och logga in igen för att ändringen skall träda i kraft.
------------------
Robban < robban@lipogram.com >
[Redigerat av Robban den 16 okt 2000]
Nej du det finns iinte nått där det står
LANG = sv_SV
Vet du något annat ställe som man kan kolla det på?
Jag har iaf fått perl/Cgi att funka nu så.
swedish finns med i den lsitan som du tipza om tidigare.
//
hade
nordan
Fler ställen att leta på:
/etc/bashrc
~/.bash_profile
~/.bashrc
(där ~/ är din hemkatalog).
------------------
Robban < robban@lipogram.com >
Robban
Tackar för alla fina tips dom har varit bra
men jag hittat fprfarande inte på vart man ändra LANUGUAGE & LC_ALL
jag har hittat en katalo(mapp)som heter
LC_ALL
Jag har oxå hittat på alla filer jag skulle gå och titta i men ingen av dom innehåller det som man skall äändra på?
Kan man söka efter det kanske ?
mvh
//nordan
Kan man söka efter det kanske?
Prova med:
grep -sw LANG /etc/* /home/dinhemkatalog/.*
Annars kan du helt enkelt prova med att lägga till följande rad i din .bashrc (ligger som "dold" fil i din hemkatalog):
export LANG=swedish
------------------
Robban < robban@lipogram.com >
Tjena Robban
jag hittar inte på vart jag skall ändra dom där sakerna hmmm
Får fortfarande detta medelande
Jag har ej skrivigt in det om export som
du skrev men jag tycker man skulle kunna hitta vart man skriver in det?
perl: warning: Setting locale failed.
perl: warning: Please check that your locale settings:
LANUGUAGE = (unset),
LC_ALL = (unset),
LANG = "sv_SV"
are supported and installed on your system
perl: warning: Falling back to the standard locale ("C").
Är det inte så att
LANG redan är sv_SV :q
Jag har fått för mig att det är dom här man skall ändra på?
LANUGUAGE = (unset),
LC_ALL = (unset),
Vart jag skall ändra vet jag inte
har du några flera tips eller?
//
nordan
Problemet är (vad jag förstår i.a.f.) att LANG är satt till en "locale" som inte finns i systemet, nämligen sv_SV, och det är detta Perl klagar över. Varför så är fallet vet jag inte (kan vara en bug i din Linux-dist).
Men att sätta antingen LANG eller LC_ALL till en locale som finns i systemet (t.ex. swedish eller sv_SE, som vi ju konstaterat existerar) borde lösa felmeddelandet i Perl. Detta kan göras på det sätt jag beskriver i mitt tidigare inlägg.
------------------
Robban < robban@lipogram.com >
Robban tack för hjälpen
Det funkar utmärkt :D :D
Trevligt med hjälpsamma människor man blir fan överlycklig när det funkar!
//
nordan