I'm still trying to build a new mod_perl on Mac OS 10.2 after upgrading to Perl 5.8.1. The running version of Apache is 1.3.27, but it isn't compiled by me but by Tenon as part of their iTools suite. As a first step, I checked the output of httpd -V, which reports:

        Server version: Apache/1.3.27 (iTools/MacOSX)
        Server built:   11/13/02 17:38:56
        Server's Module Magic Number: 19990320:13
        Server compiled with....
         -D EAPI
         -D HAVE_MMAP
         -D USE_MMAP_SCOREBOARD
         -D USE_MMAP_FILES
         -D HAVE_FCNTL_SERIALIZED_ACCEPT
         -D HAVE_FLOCK_SERIALIZED_ACCEPT
         -D SINGLE_LISTEN_UNSERIALIZED_ACCEPT
         -D HARD_SERVER_LIMIT=256
         -D HTTPD_ROOT="/usr"
         -D SUEXEC_BIN="/usr/sbin/suexec"
         -D DEFAULT_PIDLOG="/var/run/httpd.pid"
         -D DEFAULT_SCOREBOARD="/var/run/httpd.scoreboard"
         -D DEFAULT_LOCKFILE="/var/run/httpd.lock"
         -D DEFAULT_ERRORLOG="/var/log/httpd/error_log"
         -D TYPES_CONFIG_FILE="/etc/httpd/mime.types"
         -D SERVER_CONFIG_FILE="/etc/httpd/httpd.conf"
         -D ACCESS_CONFIG_FILE="/etc/httpd/access.conf"
         -D RESOURCE_CONFIG_FILE="/etc/httpd/srm.conf"

After downloading the source for 1.3.27, I therefore created a layout to match this data and configured Apache:

./configure --with-layout=iTools --without-execstrip \ --server-uid=www --server-gid=www

Though if this would create an identically configured server in all respects, and/or if this is even necessary, is beyond me, and Tenon doesn't give me much information in this respect, either. However, Apache builds as expected and can be started for testing purposes.

I then downloaded mod_perl 1.28 and created the makefiles using the following:

        perl Makefile.PL APACHE_SRC=../apache_1.3.27/src DO_HTTPD=1 USE_DSO=1 \
             USE_APSX=1 WITH_APXS=/usr/sbin/apxs EVERYTHING=1 PERL_TRACE=1

"make" works as expected, but -- and this is the current problem -- "make test" bombs with the following console messages:

httpd listening on port 8529
will write error_log to: t/logs/error_log
letting apache warm up...\c
done
/usr/bin/perl t/TEST 0
still waiting for server to warm up...............not ok
server failed to start! (please examine t/logs/error_log) at t/TEST line 95.


and t/logs/error_log contains:
        [notice] END block called for startup.pl
        [notice] Destruction->DESTROY called for $global_object

For the record, this is what "perl -V" returns. The same Perl was used for building Apache and perl_mod:
Summary of my perl5 (revision 5.0 version 8 subversion 1) configuration:
Platform:
osname=darwin, osvers=6.6, archname=darwin
uname='darwin sphinx.naradek.org 6.6 darwin kernel version 6.6: thu may 1 21:48:54 pdt 2003; root:xnuxnu-344.34.obj~1release_ppc power macintosh powerpc '
config_args='-Dprefix=/usr -Doptimize=-g'
hint=recommended, useposix=true, d_sigaction=define
usethreads=undef use5005threads=undef useithreads=undef usemultiplicity=undef
useperlio=define d_sfio=undef uselargefiles=define usesocks=undef
use64bitint=undef use64bitall=undef uselongdouble=undef
usemymalloc=n, bincompat5005=undef
Compiler:
cc='cc', ccflags ='-pipe -fno-common -DPERL_DARWIN -no-cpp-precomp -DDEBUGGING -fno-strict-aliasing -I/usr/local/include',
optimize='-g',
cppflags='-no-cpp-precomp -pipe -fno-common -DPERL_DARWIN -no-cpp-precomp -DDEBUGGING -fno-strict-aliasing -I/usr/local/include'
ccversion='', gccversion='3.3 20030304 (Apple Computer, Inc. build 1435)', gccosandvers=''
intsize=4, longsize=4, ptrsize=4, doublesize=8, byteorder=4321
d_longlong=define, longlongsize=8, d_longdbl=define, longdblsize=8
ivtype='long', ivsize=4, nvtype='double', nvsize=8, Off_t='off_t', lseeksize=8
alignbytes=8, prototype=define
Linker and Libraries:
ld='cc', ldflags =' -flat_namespace -L/usr/local/lib'
libpth=/usr/local/lib /usr/lib
libs=-lgdbm -ldb -lm -lc
perllibs=-lm -lc
libc=/usr/lib/libc.dylib, so=dylib, useshrplib=true, libperl=libperl.dylib
gnulibc_version=''
Dynamic Linking:
dlsrc=dl_dyld.xs, dlext=bundle, d_dlsymun=undef, ccdlflags=' '
cccdlflags=' ', lddlflags=' -flat_namespace -bundle -undefined suppress -L/usr/local/lib'


Characteristics of this binary (from libperl):
Compile-time options: DEBUGGING USE_LARGE_FILES
Built under darwin
Compiled at Sep 26 2003 12:04:05
@INC:
/System/Library/Perl/5.8.1/darwin
/System/Library/Perl/5.8.1
/Library/Perl/5.8.1/darwin
/Library/Perl/5.8.1
/Library/Perl
/Network/Library/Perl/5.8.1/darwin
/Network/Library/Perl/5.8.1
/Network/Library/Perl


I tried the approach of downloading Apache 2 and mod_perl 1.99 in order to see if it would be possible to leave Tenon's iTools altogether in favour of compiling everything from scratch (including SSL, PHP, etc) -- but the same problem crops up again: "make test" for mod_perl can't start the server -- which in both cases can be started on its own.

Thus:

1) Why can't "make test" fire up Apache?
2) Why is --without-execstrip necessary on Mac OS X (Darwin/FreeBSD)?
3) Are any other Apache configuration options necessary to replicate
   Tenon's configuration, if required by mod_perl?

Any pointers much appreciated. At the moment it's a bit difficult to administrate the server in question, since mod_perl isn't working.

/ Peter Bengtson



Reply via email to