On Fri, 3 Jan 2003, Steve Davis wrote:
[ .. ]
> To configure Apache:
> ./configure --prefix=/etc/httpd --with-mpm=prefork
>
> To configure mod_perl:
> perl Makefile.PL MP_AP_PREFIX=/etc/httpd MP_APXS=/etc/httpd/bin/apxs
> MP_INST_APACHE2=1 MP_DEBUG=1
>
> Also, when I examine /etc/httpd/bin/httpd (the executable),
> /etc/httpd/lib/libarp*, and /etc/module/mod_perl.so, all the
> theses files have a creation date that's current (today's
> date). Plus, /etc/httpd/httpd.conf points to the current file
> locations. According to the RH 8.0 docs regarding Apache 2.X,
> they suggest modifying httpd.conf to incorporate the use of an
> include statement which invokes /etc/conf.d/perl.conf. This
> latter file points to /etc/httpd/module/mod_perl.3.0. I've
> mapped the files and dates. There doesn't appear to be any
> conflict here.
>
> However, for good measure, I just completed a search of the
> /etc/* and /usr/* directories for the presence of the httpd
> executable. And there are two of them on the system. To be
> expected, the /etc/httpd/bin/httpd executable is present.
> However, these is also an existence of a httpd executable under
> /usr/sbin. When I changed the name of /etc/sbin/httpd to
> /etc/sbin/httpd-bu (backup). The httpd web server wouldn't
> start any longer (I toggled this off and on via the service
> utilility [start -> system settings -> service]).
> /etc/sbin/httpd has a footprint of 384.7K where as
> /etc/httpd/bin/httpd is a 2meg file. I don't know whether
> /etc/sbin/httpd is being used to merely start
> /etc/httpd/bin/httpd or not. If you can advise further it
> would be helpful.
It sounds like /etc/sbin/httpd and /etc/httpd/bin/httpd are
separate binaries, judging by their different sizes. You
compiled modperl against /etc/httpd/bin/httpd, but your system
is using /etc/sbin/httpd in the services utility to start.
This might explain the problem you were having before -
/etc/sbin/httpd might be an older apache binary from
before (perhaps the installation), whereas mod_perl was
compiled against the newer /etc/httpd/bin/httpd. It's
hard to tell whether or not the binaries are sharing
the same httpd.conf files.
Did mod_perl's 'make test' pass? When you start the test,
it reports which httpd it's using - is it /etc/httpd/bin/httpd?
One thing you might try - stop the /etc/sbin/httpd service,
and then go to /etc/httpd/bin and issue the command
apachectl start
to start the server associated with /etc/httpd/. This (normally)
will use the httpd.conf under /etc/httpd/conf/, which presumably
is the right one - if not, try starting httpd with the -f switch
to specify the config file - see ./httpd -h for help.
Alteratively, since you have a backup of /etc/sbin/httpd,
try copying /etc/httpd/bin/httpd to /etc/sbin/httpd, and
start the service.
Do either of these work? If so, what you might do is forget
completely about the httpd stuff under /etc (which sounds like
it's getting mixed up with different versions), and compile
httpd-2.0.43 using a prefix like /usr/local/httpd, and then
compile and install mod_perl against this prefix. With a fresh
install Apache will install a reasonable default httpd.conf.
You'd then have to figure out how to adjust the service utility
to start /usr/local/httpd/bin/httpd, rather than /etc/sbin/httpd.
--
best regards,
randy