webForumDet fria alternativet

Köra Perl i Linux

17 svar · 715 visningar · startad av nordan

nordanMedlem sedan juni 2000949 inlägg
#1

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

RobbanMedlem sedan dec. 19992 555 inlägg
#2

Ä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 >

nordanMedlem sedan juni 2000949 inlägg
#3

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

MuzzafarathMedlem sedan apr. 20002 487 inlägg
#4

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]

nordanMedlem sedan juni 2000949 inlägg
#5

Jag får inte perl att fungera
någon som kan förklarra ??

RobbanMedlem sedan dec. 19992 555 inlägg
#6

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 >

Peter_BMedlem sedan apr. 2000642 inlägg
#7

har du placerat skriptet i cgi-bin-katalogen? och inte bland html-filerna...

nordanMedlem sedan juni 2000949 inlägg
#8

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

RobbanMedlem sedan dec. 19992 555 inlägg
#9

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 >

nordanMedlem sedan juni 2000949 inlägg
#10

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

RobbanMedlem sedan dec. 19992 555 inlägg
#11

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]

nordanMedlem sedan juni 2000949 inlägg
#12

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

RobbanMedlem sedan dec. 19992 555 inlägg
#13

Fler ställen att leta på:

/etc/bashrc
~/.bash_profile
~/.bashrc

(där ~/ är din hemkatalog).

------------------
Robban < robban@lipogram.com >

nordanMedlem sedan juni 2000949 inlägg
#14

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

RobbanMedlem sedan dec. 19992 555 inlägg
#15

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 >

nordanMedlem sedan juni 2000949 inlägg
#16

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

RobbanMedlem sedan dec. 19992 555 inlägg
#17

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 >

nordanMedlem sedan juni 2000949 inlägg
#18

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

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