[moving this to the mod_perl list.if you aren't on the list please subscribe to it: http://perl.apache.org/maillist/modperl.html#Subscription_Information ]

The MP_APXS option worked to get past the first error. Thanks.

Good. I'll make sure that the error message will mention that.


Two questions:

1. I read the manual page on apxs and tried a variety of options. After
getting streams of errors, I moved on to the MP_APXS solution. I'm still
curious to understand how apxs works. If the command line for creating
mod_perl is not time consuming to reproduce, could you include those in
your reply? I'd like to work backward to figure out how apxs used. Once
I understand it in one area, I should be able to generalize to other
uses.

mod_perl queries apxs to get the information about the apache installation. For examples to figure out where apache .h files are it issues:


apxs -q INCLUDEDIR

Normally if you install httpd and all its files under one directory, providing the path to that directory via the MP_AP_PREFIX option is enough, since mod_perl finds apxs, apr-config and other things by itself. However when things are spread around the file system (don't live under the same tree), one has to explicitly tell the path to MP_APXS and sometimes for other things (like MP_APR_CONFIG). Eventually the build will be polished to get the error messages intuitive enough for users to proceed without reading any docs. If you can help to improve the diagnostics system that will help a lot.

Hope that answers your question.

2. Having completed the first step of the build (perl Makefile.pl...) I
am back to the second error as reported in my original post. It occurs
in the test cycle of the make && make test phase, as follows:


/usr/local/apache2/bin/httpd -d /root/modperl-2.0/t -f
/root/modperl-2.0/t/conf/httpd.conf -DAPACHE2 -DPERL_USEITHREADS using
Apache/2.0.47 (prefork MPM)
waiting for server to start: .Syntax error on line 11 of
/root/modperl-2.0/t/conf/httpd.conf:
module access_module is built-in and can't be loaded
!!!
server has died with status 255 (t/logs/error_log wasn't created, start
the server in the debug mode)
make: *** [run_tests] Error 143
[EMAIL PROTECTED] modperl-2.0]#


Before I start hacking at files used to generate the test conf, I need
to understand what's up. Prior to running the make, I stopped my .45
version of httpd and removed the earlier mod_perl library. Am I running
in to other modules that I need to remove before running make?

What happens is that Apache::Test tries to inherit the configuration from the system-wide httpd.conf. So if you have any LoadModule directives, it'll move them to t/conf/httpd.conf that it generates.


I think what happened in your case is that you previously has built httpd with shared objects (one of them was mod_access.c), so it created the global httpd.conf with directive 'LoadModule access_module mod_access.so', next you probably built httpd again but this time has compiled mod_access statically. However when you run 'make install', apache build system won't overwrite the existing httpd.conf file, so you have left with invalid directives in the file.

I'm pretty sure that if you try to start httpd normally (without mod_perl) it'll fail with the same error. If that's the case, just nuke that global httpd.conf and run 'make install' from the httpd-2.0.47 directory again. then return to run 'make test' in the mod_perl directory.

Meanwhile I'll patch Apache::Test to put LoadModule directives inside <IfModule ...> so this problem affect Apache::Test.

__________________________________________________________________
Stas Bekman            JAm_pH ------> Just Another mod_perl Hacker
http://stason.org/     mod_perl Guide ---> http://perl.apache.org
mailto:[EMAIL PROTECTED] http://use.perl.org http://apacheweek.com
http://modperlbook.org http://apache.org   http://ticketmaster.com



Reply via email to