On Wednesday, November 24, 2010 02:28:40 Mohit Anchlia wrote:
> 1. Is it possible to build it such that I don't have to run make
> install on every web server?  Is there a way to build mod_perl that
> contains everything including perl modules? This will help in install
> and keeping track of mod_perl in only one place.

How about using a package system like RPM?

Also, "make install" supports the "DESTDIR=..." option. For example

  make DESTDIR=/tmp/buildroot install

That won't install anything under your normal root directory but instead 
/tmp/buildroot will look like / with respect to the installed files.

So, after installing you can pack /tmp/buildroot into a tar file:

  (cd /tmp/buildroot && tar cf - .) | gzip -9 >mp-install.tar.gz

Now, go to the destination machine and unpack the tar as:

  zcat mp-install.tar.gz | (cd / && tar xf -)

Note the different cd commands in packing and unpacking.

> 2. Also, is it possible to Keep all the install modules and files
> local to apache install directory instead of having to create perl
> modules

That can be achieved by setting some variables similar to DESTDIR on the "make 
install" command line. It can also be combined with DESTDIR. For example:

  make DESTDIR=... \
       INSTALLSITEARCH=... \
       INSTALLSITELIB=... \
       ... \
       install

I used to set DESTDIR, INSTALLSITEARCH, INSTALLSITELIB, INSTALLSITEBIN, 
INSTALLSITESCRIPT, INSTALLBIN, INSTALLSCRIPT, INSTALLSITEMAN1DIR and 
INSTALLSITEMAN3DIR in one of my SPEC files. See ExtUtils::MakeMaker for more 
information.

But be aware that you will then have to let Perl know about the different 
locations by setting @INC. That can be done for example by setting PERL5LIB 
prior to starting apache or by using "PerlSwitches -I ..." or by issuing a 
"use lib" or "BEGIN {...@inc=(...)}" or something similar. Recent perl versions 
can be compiled with -Dusesitecustomize which can also help here. See INSTALL 
in the root directory of you perl source package.

> 3. Is it possible to deploy the modules that I create local to apache
> install directory? Currently I found one of the paths from @INC and
> created module there. But the problem is that we have too many
> webservers and install is going to be a problem.

You have to install your own modules in a location where perl can find them, 
see above.

> 4. Is there a way to dynamically change perl module without having to
> stop or start apache?

The best approximation is Apache::Reload. Due to the nature of perl it cannot 
catch all possible cases. But if you write your modules with a possible reload 
in mind it can do a good job.

Torsten Förtsch

-- 
Need professional modperl support? Hire me! (http://foertsch.name)

Like fantasy? http://kabatinte.net

Reply via email to