Hello,

I've recently switched to Apache 2 with mod_perl 2. Unfortunately I still have to run some perl scripts which only worked with Apache::PerlRun and PerlSetVar PerlRunOnce On.

After a bit of reading I concluded that ....

<VirtualHost *:8080>

 ServerName            test
 DocumentRoot          /test/html

 PerlOptions           +Parent

 PerlInterpStart       1
 PerlInterpMax         1
 PerlInterpMaxRequests 1

 PerlResponseHandler   ModPerl::PerlRunPrefork

 <Files *.epl>
   SetHandler          perl-script
   PerlOptions         -ParseHeaders
   Options             +ExecCGI
 </Files>

</VirtualHost>

... should allow those scripts (ending in *.epl) to run while not affecting other stuff in other virtual hosts.

However, it wont.

A simple test script like >>> print "OLD: $::empty"; $::empty = 1;" <<< will work as expected the first time but the second time it will output >>> OLD: 1 <<< (fail). Alternately it works and fails a few times and then will fail every time after that, just as if it filled up available server processes. (It also remembers having "use"d stuff and reports "not a code reference" when it fails.)

Looks like I misunderstood what PerlInterpMaxRequests is supposed to do.What am I missing? What do I need to change to allow such scripts to run? Changing the scripts is unfortunately no option.

Thank you for your help.

--
Mit freundlichen Grüßen

Ainea AG
Fabian Kreitner

Rheinuferstraße 9
67061 Ludwigshafen

Telefon:  +49 (0)621 - 59 29 77-0
Fax:      +49 (0)621 - 59 29 77-99
E-Mail:   [EMAIL PROTECTED]
Website:  http://www.ainea-ag.de

Reply via email to