I've recently upgraded the pre-installed Perl 5.6 on a server running Mac OS 10.2 to Perl 5.8.0, and as part of the upgrade I need to recompile mod_perl (mod_perl-1.28). I'm not running Apple's Apache, but Tenon's integrated solution, iTools, based on apache_1.3.27. The make procedure runs without any problems -- make test completes at 100% -- and the install is straightforward.

However, the resulting module crashes Apache during startup, and Tenon seem to be quite nonplussed and are unwilling to help, so I am on my own. I am new to compiling mod_perl, but experienced in other server maintenance areas, so any pointers from you folks who have done this before would be much appreciated.

I have found a couple of articles on the install process, but they are very old and seem to be out of date.

/ Peter Bengtson

The arguments given to Makefile.PL are

        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 -V:
Summary of my perl5 (revision 5.0 version 8 subversion 0) 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'
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 -no-cpp-precomp -fno-strict-aliasing',
optimize='-O3',
cppflags='-no-cpp-precomp -pipe -fno-common -no-cpp-precomp -fno-strict-aliasing'
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: USE_LARGE_FILES
Built under darwin
Compiled at Sep 10 2003 12:56:00
@INC:
/System/Library/Perl/darwin
/System/Library/Perl
/Library/Perl/darwin
/Library/Perl
/Library/Perl
/Network/Library/Perl/darwin
/Network/Library/Perl
/Network/Library/Perl



From httpd.crash.log: Date/Time: 2003-09-18 00:47:58 +0200 OS Version: 10.2.6 (Build 6L60) Host: sphinx.naradek.org Command: httpd PID: 489 Exception: EXC_BAD_ACCESS (0x0001) Codes: KERN_INVALID_ADDRESS (0x0001) at 0xabababab Thread 0 Crashed: #0 0x0031d0a4 in Perl_sv_upgrade #1 0x002af784 in perl_construct #2 0x00221e24 in perl_startup #3 0x00229300 in perl_cmd_handler_handlers #4 0x0000dc80 in invoke_cmd #5 0x0000e118 in ap_handle_command #6 0x0000e174 in ap_srm_command_loop #7 0x00009768 in urlsection #8 0x0000d6b0 in invoke_cmd #9 0x0000e118 in ap_handle_command #10 0x0000e174 in ap_srm_command_loop #11 0x0000e880 in ap_process_resource_config #12 0x0000b3c0 in include_config #13 0x0000d77c in invoke_cmd #14 0x0000e118 in ap_handle_command #15 0x0000e174 in ap_srm_command_loop #16 0x0000e880 in ap_process_resource_config #17 0x0000f1b8 in ap_read_config #18 0x00006808 in standalone_main #19 0x00007294 in main #20 0x00001a40 in _start #21 0x00001870 in start PPC Thread State: srr0: 0x0031d0a4 srr1: 0x0200f030 vrsave: 0x00000000 xer: 0x00000000 lr: 0x0031cb60 ctr: 0x0031d03c mq: 0x00000000 r0: 0x00000010 r1: 0xbfff9510 r2: 0xabababab r3: 0xabababab r4: 0x0038cb60 r5: 0x00000000 r6: 0x0031cc0c r7: 0x00000020 r8: 0x0031cbec r9: 0x0031cb60 r10: 0x003a1538 r11: 0x0031d03c r12: 0x000001ec r13: 0x00000000 r14: 0x00000000 r15: 0x00000000 r16: 0x00000000 r17: 0x00000000 r18: 0x00000000 r19: 0x00000000 r20: 0x00000000 r21: 0x00000000 r22: 0x00000000 r23: 0x00000000 r24: 0x00000000 r25: 0x00000000 r26: 0x0031ce50 r27: 0x0039cb60 r28: 0x003a1538 r29: 0x003a1948 r30: 0x00000004 r31: 0x0031cb60



From httpd.conf:
        # Perl Configuration
        
        Alias /perl/ /Library/WebServer/CGI-Executables/perl/
        
        <Location /perl>
        AllowOverride None
        Options +ExecCGI
        SetHandler cgi-script
        </Location>
        
        <IfModule mod_perl.c>
        #PerlRequire /Library/WebServer/tenon/perl/startup.pl
        
        PerlFreshRestart On
        PerlTaintCheck On
        
        <Location /perl>
        SetHandler perl-script
        PerlHandler Apache::Registry
        PerlSendHeader On
        </Location>
        
        <Location /perl-status>
        SetHandler perl-script
        PerlHandler Apache::Status
        AuthName iToolsAdmin
        require group iToolsAdmin
        </Location>
        </IfModule>
        
        # End Perl Configuration



Reply via email to