Toon posts:

[Perl] couldn't spawn child process

Pagina: 1
Acties:

Verwijderd

Topicstarter
Ik heb nu net apache, php, mysql en activeperl geinstalleerd op mijn localhost (WinXP), alles werkt behalve perl.
Bij elk script wat ik probeer krijg ik "500 Internal Server Error". In de errorlog staat:

[error] [client 127.0.0.1] couldn't spawn child process: c:/apache/cgi-bin/test.pl

Ik heb test.pl, test.cgi in c:/apache/cgi-bin/ en c:/apache/htdocs/ geprobeert, maar ik krijg steeds dezelfde error.

En als shebang heb ik #!c:/apache/perl/bin en #!c:/apache/perl/bin/perl.exe geprobeert, maar dat maakt ook geen verschil :(

Verder heb ik alleen deze twee regels in de httpd.conf gezet:
AddHandler cgi-script .cgi
AddHandler cgi-script .pl

Heb ik mischien wat vergeten?

  • D2k
  • Registratie: Januari 2001
  • Laatst online: 31-08 10:19

D2k

zit de fout niet gewoon in je perl?
doe je geen foute instructie maken met die spawn?

Doet iets met Cloud (MS/IBM)


  • Grum
  • Registratie: Juni 2001
  • Niet online
probeer de perl scripts eens te runnen vanuit de prompt .. en kijk of ze het normaal doen

in oude versies van perl voor windows werkt fork() niet .. dat zou deze error evt kunnen geven

Verwijderd

Topicstarter
test.pl
code:
1
2
3
#!c:/apache/perl/bin

print "Hello from ActivePerl!";

Die doet het dus niet.

Vanaf het command prompt:
code:
1
2
perl c:/apache/cgi-bin/test.pl
Hello from ActivePerl!

Die doet het wel.

:?

Verwijderd

je moet er iniedergeval perl.exe achter zetten, omdat je het via het command prompt doet slaat ie die regel over (volgens mij wel, toch :? )

  • igmar
  • Registratie: April 2000
  • Laatst online: 09-09 19:53

igmar

ISO20022

test.pl
[code]#!c:/apache/perl/bin
Dit werkt niet onder windows. Die negeert die regel gewoon. Je moet windows/apache duidelijk maken dat .pl files worden afgehandeld door c:/apache/perl/bin (erg raar pad trouwens, is dat niet apache/perl/bin/perl.exe ??)

Uitleg hierover is op de apache site te vinden.

Verwijderd

Topicstarter
Op maandag 07 januari 2002 23:45 schreef igmar het volgende:

[..]

Dit werkt niet onder windows. Die negeert die regel gewoon. Je moet windows/apache duidelijk maken dat .pl files worden afgehandeld door c:/apache/perl/bin (erg raar pad trouwens, is dat niet apache/perl/bin/perl.exe ??)

Uitleg hierover is op de apache site te vinden.
Hmm, in mijn httpd.conf staat:
code:
1
2
3
4
5
6
7
# Apache parses all CGI scripts for the shebang line by default.
# This comment line, the first line of the script, consists of the symbols
# pound (#) and exclamation (!) followed by the path of the program that 
# can execute this specific script.  For a perl script, with perl.exe in
# the C:\Program Files\Perl directory, the shebang line should be:

   #!c:/program files/perl/perl

:?

  • CyBeR
  • Registratie: September 2001
  • Niet online

CyBeR

💩

code:
1
2
3
4
5
#!c:\foo\bar\perl -w
# perl negeert dat zeker niet, apache wel als het goed is

print "Content-Type: text/plain";
print "Hello, World!

probeer dat maar eens, apache wil op z'n minst een content-type header van je script zien.

All my posts are provided as-is. They come with NO WARRANTY at all.


Verwijderd

Je moet idd gewoon het pad naar je perl.exe neerzetten, en wel met dos-style slashes:

#!c:\perl\bin\perl.exe

En ook moet je zoals hierboven vermeld wel een HTML-header outputten, anders krijg je zeer waarschijnlijk alsnog een error.

  • igmar
  • Registratie: April 2000
  • Laatst online: 09-09 19:53

igmar

ISO20022

En als shebang heb ik #!c:/apache/perl/bin en #!c:/apache/perl/bin/perl.exe geprobeert, maar dat maakt ook geen verschil :(
Werkt #!/apache/perl/bin/perl ook niet ??
Pagina: 1