Perl vid webdelning.

Tråden skapades och har fått 15 svar. Det senaste inlägget skrevs .
1
  • Oregistrerad
  • 2002-02-12 22:46

Tänkte jag skulle köra lite Perl via webdelning. Först dök det upp något oväntat, det var inte mappen Sites i mitt hemma biblotek. Jag kör OSX så ni vet. Det var mappen Webserver i Library som delades ut, inte för att det gör något. Men när jag ska köra perlskript, så får jag 405 fel. Ska man lägga skripten i något annan mapp, eller måste man slå igång Perlstödet någonstans?

  • Medlem
  • Stockholm
  • 2002-02-12 23:06

Se till att du har execute på scriptet.
Kolla även att du har
"#!/usr/bin/perl" överst i scriptet.

får du fortfarande fel då?

/glemme

  • Oregistrerad
  • 2002-02-12 23:12

Får fortfarande felet. Men vet att på PC vilket jag tvingas använda på skolan. Så måste man lägga alla skript i mappen CGI-BIN för att de ska fungera. Kan det vara något sånt som felar? Men jag hittar ingen CGI-BIN mapp på min disk.

  • Medlem
  • Stockholm
  • 2002-02-12 23:55

Nu har jag fått det att funka.

Det du skall göra är:
I filen /etc/httpd/httpd.conf
ta bort # tecknet framför dessa två rader:
LoadModule perl_module libexec/httpd/libperl.so
AddModule mod_perl.c

(detta gör du i pico,vi,emacs eller bbedit, inte i skriv text)

raden som det står så här på:
Options Indexes FollowSymLinks MultiViews

skall du lägga till ExecCGI för att du skall kunna exekvera cgier utan att lägga dom i CGI-Executables i katalogen /Library/Webserver/ (denna länkas annars till http://webbserver/cgi-bin/ och om du vill lägga allt där istället så går det bra, då behöver du inte ändra raden ovanför.

Sen ser du till att scripten funkar. För att du inte skall få error bör du lägga till detta i början av perlscripten:
print "Content-type: text/html

";

vassego!

/glemme

  • Oregistrerad
  • 2002-02-13 23:30

Har nu ändrat de tre raderna, men icket! Som det borde vara nu så ska man kunna köra skript vart de än ligger, men när jag ska köra ett skript så skrivs det bara ut i browsern, med all källkod, den exekveras alltså inte.

  • Oregistrerad
  • 2002-02-14 02:13

Så där ja, efter mycket tjafsande men omställande av sökvägar i webbservern fungerar nu allt som det ska. Men största missen från min sida var nog att även Perl filerna är tvungen att döpas till .cgi och inte till .pl som jag använde(kanske man kan ändra det någonstans). Dax att sova lite, ska upp till Perl föreläsning i morgonbitti. För att öka på mitt förstående kring detta.

  • Medlem
  • Stockholm
  • 2002-02-14 11:23

nej, det behövs dom inte. Mina hette .pl det skall funka som standard.

  • Oregistrerad
  • 2002-02-14 19:32

ok, ändrade väl kanske någon rad för mycket då.

  • Oregistrerad
  • 2002-02-15 22:31

Konstigt nog, har inte ändrat något mer, och nu fungerar det med .pl, man ska väl inte förstå allt.

GAH!
det funkar inte för mig...
Ok, jag e riktig nybörjare på perl (har dock hållt på med C/C++ så jag förstår hur det funkar)...
Jag har skrivit en enkel textfil med perlscript i...
Jag har döpt den till test.pl och lagt den i min Sites-mapp (som jag via httpd.conf har satt till RootDirectory lr vad det nu hette).
Jag har gjort som stod ovan (ta bort # och sånt) men icke fungerar det...
När jag kommer till sidan så visas bara källkoden till perlscriptet...
Vad göra?

[ 10 Mars 2002: Meddelandet ändrat av: ghazban ]

  • Oregistrerad
  • 2002-03-10 23:58

Hur kör du skriptet? Via terminalen eller via webbrowsern? I terminalen skriver man: "perl skriptnamnet.pl" fastutan " så klart. I browsern måsten man skriva sitt ip alt. http://localhost/… alltså sökvägen via sin webserver annars kommer inte skriptet att köras utan bara skrivas ut. Är det detta som felar eller är det något annat?

Jag har också gjort exakt så som det stod här ovanför, dock blir bara källkoden utskriven för mig när jag försöker köra scripten via en browser.

Dock funkar det i terminalen då jag kör "perl".

Samma här...
Det funkar via terminalen, men inte via webläsaren
Jag drar slutsatsen att det är något som är felinställt med Apache...
Hjälp, någon? (kanske en steg för steg guide???)

----------------

Fixade det nu! YES!
Det var bara ett problem med fil-access...
Man måste sätta på execute (för User) på både mappen och filen...

Fast nu har det uppkommit ett annat problem för mig (lr, rättare sagt, det fanns förut men jag brydde mig inte). Jag har i stort sett apache grundinställt (i alla fall på Directories) När jag connectar till mig själv via http://localhost / får jag upp det som skall komma upp (index.en.en i Library/WebServer/Documents), men när jag connectar med IP så kommer det i stället en lista på vad som finns i Library/WebServer/, och klickar jag då på Documents, så säger den att den inte kan hitta Documents på servern, helkonstigt...
Inte för att det spelar så stor roll, men jag skulle gärna vilja veta varför det blir så...

[ 11 Mars 2002: Meddelandet ändrat av: ghazban ]

När CGI-filerna ligger i /Library/WebServer-mappen så funkar de. Dock testade jag med ett eget script som skulle skriva ut "Test", det funkar i Terminalen, men när jag kör det i /Library/WebServer/CGI-Executables/ så får den Misconfiguration Error, i min Sites folder så visar den bara upp källkoden.

Fast de script som låg i CGI-Executables från början (cgi-test & printenv) funkar (se ovan). Men inte i min Sites katalog, där visar bara källkoden.

Alla scripten är 755, jag har också lagt till ExecCGI i /private/etc/httpd/users/fobie.conf.

Men icke, det vill sig inte. Jag är ny på Perl (läser det nu) och skulle verkligen uppskatta hjälp med detta.

Tack.

Nehe, tydligen inte som vill hjälpa till.

Det verkar inte som att det funkar om du har det i din Sites mapp, det måste nog ligga i CGI-Exe....
Php funkar dock fint i Sites-mappen

1
Bevaka tråden