preload modules at sever startup

2005-02-09 Thread Jim Martinez
Hi,

I'm looking for some suggestions for a library problem with Apache::Test,
which I'm using to develop a web application.

Hope this is the place to ask.

Using Apache 1 and Mod perl 1, how can I preload perl modules at server
startup?

My extra.conf.in contains something like this:

PerlModule Foo::Bar
Location /a 
  SetHandler perl-script
  PerlHandler Foo::Bar::myhandler
/Location

make test fails.  The apache server won't start because it can't find
Foo::Bar, needed by the line PerlModule Foo::Bar

In the link below, I read about PerlSwitches [EMAIL PROTECTED]@/../lib

http://perl.apache.org/docs/general/testing/testing.html#Extending_Configuration_Setup

Is PerlSwitches for MP2 only?

In the link above I'd call the root development directory
/path/to/Apache-Amazing, just so that you understand what I mean by root
development directory.  Here is a listing of the root development
directory:

CVS/  Changes  MANIFEST  MANIFEST.OLD  MANIFEST_maybe  META.yml  Makefile  
Makefile.PL  README  blib/  docs/  lib/  pm_to_blib  t/

Of course Foo::Bar is in lib/Foo/Bar.pm (until Apache::Test moves it to
blib/ )

If I set PERL5LIB to the root development directory, the make test runs
fine (well it shows me my programming errors is what I mean).

Should I create a starup.pl file that does something like:

BEGIN { use lib @[EMAIL PROTECTED]/lib }

Then and add lines to extra.conf.in to run startup.pl.

Or is there a better way?  A hard coded path won't work in my situation
(which is why I use the @ServerRoot@).

Thanks in advance,
Jim





Re: preload modules at sever startup

2005-02-09 Thread Geoffrey Young


Jim Martinez wrote:
 Hi,
 
 I'm looking for some suggestions for a library problem with Apache::Test,
 which I'm using to develop a web application.
 
 Hope this is the place to ask.

better [EMAIL PROTECTED] now, but that list was just created yesterday :)

 
 Using Apache 1 and Mod perl 1, how can I preload perl modules at server
 startup?
 
 My extra.conf.in contains something like this:
 
 PerlModule Foo::Bar
 Location /a 
   SetHandler perl-script
   PerlHandler Foo::Bar::myhandler
 /Location
 
 make test fails.  The apache server won't start because it can't find
 Foo::Bar, needed by the line PerlModule Foo::Bar

if you can move it to t/lib/Foo/Bar.pm Apache-Test will pick it up.

 
 In the link below, I read about PerlSwitches [EMAIL PROTECTED]@/../lib
 
 http://perl.apache.org/docs/general/testing/testing.html#Extending_Configuration_Setup
 
 Is PerlSwitches for MP2 only?

yes.  an equivalent in mp1 might be to do this in extra.conf.in

Perl
  use lib qw(@ServerRoot@/../lib)
/Perl

or without the Perl sections from modperl_extra.pl.in, which is equivalent
to startup.pl but with @var@ substitution.  you can use modperl_extra.pl if
you don't need substitution.

keep in mind that if you go this route you will probably need to change
extra.conf.in to extra.last.conf.in so that it is loaded _after_ your
startup.pl.  see the bottom of the generated httpd.conf to see what I mean.

 
 In the link above I'd call the root development directory
 /path/to/Apache-Amazing, just so that you understand what I mean by root
 development directory.  Here is a listing of the root development
 directory:
 
 CVS/  Changes  MANIFEST  MANIFEST.OLD  MANIFEST_maybe  META.yml  Makefile  
 Makefile.PL  README  blib/  docs/  lib/  pm_to_blib  t/
 
 Of course Foo::Bar is in lib/Foo/Bar.pm (until Apache::Test moves it to
 blib/ )
 
 If I set PERL5LIB to the root development directory, the make test runs
 fine (well it shows me my programming errors is what I mean).
 
 Should I create a starup.pl file that does something like:
 
 BEGIN { use lib @[EMAIL PROTECTED]/lib }
 
 Then and add lines to extra.conf.in to run startup.pl.
 
 Or is there a better way?  A hard coded path won't work in my situation
 (which is why I use the @ServerRoot@).

no, that's the idea.  you just need to use the magic files :)

HTH

--Geoff