Avatar billede amd Nybegynder
30. august 2005 - 11:28 Der er 34 kommentarer og
1 løsning

Aktivere/installere perl?

Hej...
Jeg har installeret en Apache 2 server på min SuSe linux 9,3.
Serveren kører OK, men hvis jeg linker til .pl filer, skriver den bare program koden og eksekverer intet?
SKulle mene der er perl plugin installeret :S - Er dog ik vildt hardcore i Linux
Avatar billede showsource Seniormester
30. august 2005 - 19:58 #1
hov, jeg var selvf. lige lidt hurtig i dit andet spm. om det samme!
Fra en side jeg engang havde: (stier skal selvf. ændres, men ellers er det vist det samme!)

<Directory "C:/Apache/htdocs">
Her skal du tilføje ExecCGI til din Options linie:

Options Indexes FollowSymLinks MultiViews ExecCGI
Find dernæst linien:

#AddHandler cgi-script .cgi
udkommenter den og tilføj .pl :

AddHandler cgi-script .cgi .pl

Genstart Apache, og du er nu klar til at afvikle Perl på Apache!
Men lad det komme an på en tester:

Lav en ny fil med flg. indhold:

#!c:\perl\bin\perl.exe
        print "Content-type: text/html\r\n\r\n";
        print "Hello, World.";

foreach $var (sort(keys(%ENV))) {
    $val = $ENV{$var};
    $val =~ s|\n|\\n|g;
    $val =~ s|"|\\"|g;
    print "${var}=\"${val}\"<br>\n";
}

og gem den som f.eks. test.pl i dit cgi-dir.
Den første linie selvfølgelig skal ændres til hvor du har installeret Perl!
Avatar billede amd Nybegynder
30. august 2005 - 23:26 #2
Hmm #AddHandler cgi-script .cgi er der sq ikk noget der hedder i min fil ?
Avatar billede amd Nybegynder
30. august 2005 - 23:32 #3
Har tilføjet den ovenstående linje i httpd.conf filen istedet. Men får denne fejl, når jeg vil afvikle pl filer.

Server error!
The server encountered an internal error and was unable to complete your request.

Error message:
Premature end of script headers: test.pl

If you think this is a server error, please contact the webmaster.

Error 500
192.168.0.130
tir 30 aug 2005 23:31:59 CEST
Apache/2.0.53 (Linux/SUSE)
Avatar billede showsource Seniormester
31. august 2005 - 06:09 #4
Mener det er stien til perl som er forkert.
altså #!c:\perl\bin\perl.exe
skal være stien til perl på din maskine
Avatar billede mfalck Praktikant
31. august 2005 - 09:30 #5
perl på linux ligger som regel i /usr/bin/perl eller /usr/local/bin/perl

(prøv med kommandoen: "type perl" og sæt den ind i dit script. Evt kan du bruge følgende:

#!/usr/bin/perl  (eller hvad nu "type perl" giver)

use CGI::Carp qw(fatalsToBrowser);
use CGI;

my $query = new CGI;

print $query->header;
print $query->start_html('Hello World');
print "Hello, World.";

exit 0;
Avatar billede amd Nybegynder
31. august 2005 - 12:42 #6
Server error!
The server encountered an internal error and was unable to complete your request.

Error message:
Premature end of script headers: test.pl

If you think this is a server error, please contact the webmaster.

Error 500
192.168.0.130
Wed Aug 31 12:41:31 2005
Apache/2.0.53 (Linux/SUSE)

Får stadig denne fejl.




Og der er noget, som hedder /usr/bin/perl ka jeg se... Så det burde vel være godt nok ?
Avatar billede mfalck Praktikant
31. august 2005 - 12:44 #7
der er lige et par ting du kan tjekke:

dels plejer webserveren at skrive i error_loggen hvad fejlen er og dels skal rettighederne være korrekte - dvs dels skal apache kunne finde scriptet og apache-brugeren skal have lov til at ekskvere filen.
Avatar billede mfalck Praktikant
31. august 2005 - 12:45 #8
kan du evt ekskvere scriptet fra kommandolinjen ?
Avatar billede amd Nybegynder
31. august 2005 - 12:54 #9
Du må lige bære lidt over med mig, for er ret ny i Linux :)
Det eneste der ligner en error log for mig, som jeg kan finde, er error.conf under /etc/apache2/

Hvordan eksekverer jeg dem fra kommandolinjen ?
Avatar billede mfalck Praktikant
31. august 2005 - 13:01 #10
ok - jeg skal prøve at guide dig igennem

error.conf er vist en konfigurationsfil. Jeg ved ikke lige hvordan suse sætter apache op men prøv at lave en "ls -l /etc/apache2" - eller søg i httpd.conf efter "ErrorLog".

der er to måder at eksekvere filen:
1) perl test.pl
2) ./test.pl

den første vil sige om perl kan finde ud af at eksekvere den - den anden viser også om operativ systemet er sat korrekt op. Kan du evt poste en "ls -l test.pl"
Avatar billede amd Nybegynder
31. august 2005 - 13:37 #11
Ser ud til at jeg kan eksekvere det i konsollen ja.
Kigger lige i httpd :)
Avatar billede amd Nybegynder
31. august 2005 - 13:39 #12
umiddelbart kan den ikke finde noget om error log i httpd. Kan heller ikke rigtig selv se det :S
Avatar billede amd Nybegynder
31. august 2005 - 13:41 #13
Sorry mig der er blind har fundet den :)Står en hel del hehe :) smider den lige op på en server
Avatar billede amd Nybegynder
31. august 2005 - 13:44 #14
Avatar billede mfalck Praktikant
31. august 2005 - 14:16 #15
well - der er fejlen også i:

(13)Permission denied: exec of '/srv/www/cgi-bin/test.pl' failed

hvad giver:

ls -lrt /srv/www/cgi-bin/test.pl
Avatar billede amd Nybegynder
31. august 2005 - 14:22 #16
-rw-r--r-- 1 root root 51 Aug 31 13:37 /srv/www/cgi-bin/test.pl

hvis det siger dig noget :)
Avatar billede mfalck Praktikant
31. august 2005 - 14:29 #17
jeps - prøv at lave:

"chmod 755 /srv/www/cgi-bin/test.pl"
Avatar billede amd Nybegynder
31. august 2005 - 14:32 #18
Hvis jeg skriver det uden gåseøjen sker der ikke noget, men hvis jeg skriver det med, skriver den: No such file or directory
Jeg forstår ikk hva jeg laver lige nu, men lyder som om du har tjek på det ;)
Avatar billede mfalck Praktikant
31. august 2005 - 14:38 #19
undskyld - du skal skrive det uden gåseøjne. Prøv evt at lave en:

"ls -l /srv/www/cgi-bin/test.pl"

og så prøv evt at tilgå den via en browser igen
Avatar billede amd Nybegynder
31. august 2005 - 14:43 #20
Det har jeg så gjort :) Og ser ud som om den gjorde et eller andet, men er stadig samme fejl som før, når jeg prøver at gå til den via browser ?
Avatar billede mfalck Praktikant
31. august 2005 - 14:47 #21
prøv lige at tjekke error_log igen
Avatar billede amd Nybegynder
31. august 2005 - 19:56 #22
Der står Premature end of script headers: test.pl
Avatar billede mfalck Praktikant
31. august 2005 - 20:06 #23
tidligere skrev den også fejlen lige ovenover eller nedenunder i logfilen
Avatar billede amd Nybegynder
01. september 2005 - 10:20 #24
forstår sq ikke helt hva du mener mester :S
Avatar billede mfalck Praktikant
01. september 2005 - 10:27 #25
hvis du kigger på den logfil som du sendte et link til ovenover kan du se:
[Wed Aug 31 12:52:12 2005] [error] [client 192.168.0.129] (13)Permission denied: exec of '/srv/www/cgi-bin/test.pl' failed
[Wed Aug 31 12:52:12 2005] [error] [client 192.168.0.129] Premature end of script headers: test.pl

Der står en egentlige grund i linien lige oven over.
Avatar billede amd Nybegynder
01. september 2005 - 13:07 #26
okay... lige nu står den linjer her
[client 192.168.0.129] Premature end of script headers: test.pl
der bare mange flere gange, men uden den linje ovenover.... Har du en idé til hva jeg ka gøre ?
Avatar billede mfalck Praktikant
01. september 2005 - 13:10 #27
hvis du kører:

perl /srv/www/cgi-bin/test.pl

hvad får du så af output ?
Avatar billede amd Nybegynder
01. september 2005 - 13:26 #28
Så står der bare hello world, som scriptete skulle skrive :)
Avatar billede mfalck Praktikant
01. september 2005 - 13:27 #29
kan du evt poste outputtet ?
Avatar billede amd Nybegynder
01. september 2005 - 13:56 #30
Jamen outputtet er bare:

Hello, World.Linux


Eller skal det være den fil du skrev ?
Avatar billede mfalck Praktikant
01. september 2005 - 14:23 #31
perl test-mfh.pl
Content-Type: text/html; charset=ISO-8859-1

<?xml version="1.0" encoding="iso-8859-1"?>
<!DOCTYPE html
        PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN"
        "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml" lang="en-US"><head><title>Hello World</title>
</head><body>Hello, World.

får jeg ud
Avatar billede mfalck Praktikant
01. september 2005 - 14:24 #32
fra:
#!/usr/bin/perl

use CGI::Carp qw(fatalsToBrowser);
use CGI;

my $query = new CGI;

print $query->header;
print $query->start_html('Hello World');
print "Hello, World.";

print $query->end_html;
exit 0;
Avatar billede amd Nybegynder
03. januar 2006 - 17:57 #33
points??
Avatar billede amd Nybegynder
05. januar 2006 - 13:17 #34
mfalck skal du ikke have nogle points....?
Avatar billede mfalck Praktikant
05. januar 2006 - 13:26 #35
tjek :-)
Avatar billede Ny bruger Nybegynder

Din løsning...

Tilladte BB-code-tags: [b]fed[/b] [i]kursiv[/i] [u]understreget[/u] Web- og emailadresser omdannes automatisk til links. Der sættes "nofollow" på alle links.

Loading billede Opret Preview
Kategori
IT-kurser om Microsoft 365, sikkerhed, personlig vækst, udvikling, digital markedsføring, grafisk design, SAP og forretningsanalyse.

Log ind eller opret profil

Hov!

For at kunne deltage på Computerworld Eksperten skal du være logget ind.

Det er heldigvis nemt at oprette en bruger: Det tager to minutter og du kan vælge at bruge enten e-mail, Facebook eller Google som login.

Du kan også logge ind via nedenstående tjenester