You are viewing a plain text version of this content. The canonical link for it is here.
Posted to modperl@perl.apache.org by Bob Pickles <mo...@primechoice.com> on 2002/03/28 04:49:41 UTC

Segmentation fault 11 (php/mod_perl)

Hi,

I've been hacking at this a couple days.  At first I really wanted to get 
mod_perl working as a DSO.  Got everything compiled, and added lines to 
httpd.conf.  Died on startup if I had AddModule mod_perl.c.  Following  a 
tip on this list, I gave up on DSO and went static compile.  Here is what I 
did.

1) Modified php build to NOT use its own mysql module:
make clean
rm config.cache
./configure --with-apxs=/web/httpd/bin/apxs --enable-track-vars 
--with-mysql=/usr/local/mysql
make
make install

2) Build mod_perl
perl Makefile.PL APACHE_SRC=/usr/local/src/apache_1.3.19/src 
DO_HTTPD=1  USE_APACI=1 PREP_HTTPD=1  EVERYTHING=1 -Ubincompat5005 USE_DSO=1
make
make install

3) Build apache
env LIBS=/usr/lib/libC.so.5 CFLAGS=-fPIC ./configure --prefix=/web/httpd 
--enable-shared=max --enable-module=so 
--activate-module=src/modules/perl/libperl.a
make
make install

Server version: Apache/1.3.19 (Unix)
Server built:   Mar 27 2002 22:22:11
/web/httpd/bin/httpd -l
Compiled-in modules:
   http_core.c
   mod_so.c
   mod_perl.c
suexec: disabled; invalid wrapper /web/httpd/bin/suexec
#

http -L output follows the perl -V output.

BTW:  I did redo perl to remove the malloc problem.

# perl -V
Summary of my perl5 (revision 5.0 version 6 subversion 1) configuration:
   Platform:
     osname=solaris, osvers=2.8, archname=sun4-solaris
     uname='sunos home.primechoice.com 5.8 generic_108528-03 sun4u sparc 
sunw,ultra-5_10 '
     config_args='-Ubincompat5005'
     hint=previous, useposix=true, d_sigaction=define
     usethreads=undef use5005threads=undef useithreads=undef 
usemultiplicity=undef
     useperlio=undef d_sfio=undef uselargefiles=define usesocks=undef
     use64bitint=undef use64bitall=undef uselongdouble=undef
   Compiler:
     cc='gcc', ccflags ='-fno-strict-aliasing -I/usr/local/include 
-D_LARGEFILE_SOURCE -D_FILE_OFFSET_BITS=64',
     optimize='-O',
     cppflags='-fno-strict-aliasing -I/usr/local/include 
-D_LARGEFILE_SOURCE -D_FILE_OFFSET_BITS=64'
     ccversion='', gccversion='2.95.3 20010315 (release)', 
gccosandvers='solaris2.8'
     intsize=4, longsize=4, ptrsize=4, doublesize=8, byteorder=4321
     d_longlong=define, longlongsize=8, d_longdbl=define, longdblsize=16
     ivtype='long', ivsize=4, nvtype='double', nvsize=8, Off_t='off_t', 
lseeksize=8
     alignbytes=8, usemymalloc=n, prototype=define
   Linker and Libraries:
     ld='gcc', ldflags =' -L/usr/local/lib '
     libpth=/usr/local/lib /usr/lib /usr/ccs/lib
     libs=-lsocket -lnsl -lgdbm -ldl -lm -lc
     perllibs=-lsocket -lnsl -ldl -lm -lc
     libc=/lib/libc.so, so=so, useshrplib=true, libperl=libperl.a
   Dynamic Linking:
     dlsrc=dl_dlopen.xs, dlext=so, d_dlsymun=undef, ccdlflags='  -R 
/usr/local/lib/perl5/5.6.1/sun4-solaris/CORE'
     cccdlflags='-fPIC', lddlflags='-G -L/usr/local/lib'


Characteristics of this binary (from libperl):
   Compile-time options: USE_LARGE_FILES
   Built under solaris
   Compiled at Mar 27 2002 17:45:01
   @INC:
     /usr/local/lib/perl5/5.6.1/sun4-solaris
     /usr/local/lib/perl5/5.6.1
     /usr/local/lib/perl5/site_perl/5.6.1/sun4-solaris
     /usr/local/lib/perl5/site_perl/5.6.1
     /usr/local/lib/perl5/site_perl
     .


httpd -L
/web/httpd/bin/httpd -L
<Directory (http_core.c)
         Container for directives affecting resources located in the 
specified directories
         Allowed in *.conf only outside <Directory>, <Files> or <Location>
</Directory> (http_core.c)
         Marks end of <Directory>
         Allowed in *.conf only inside <Directory>, <Files> or <Location>
<Location (http_core.c)
         Container for directives affecting resources accessed through the 
specified URL paths
         Allowed in *.conf only outside <Directory>, <Files> or <Location>
</Location> (http_core.c)
         Marks end of <Location>
         Allowed in *.conf only inside <Directory>, <Files> or <Location>
<VirtualHost (http_core.c)
         Container to map directives to a particular virtual host, takes 
one or more host addresses
         Allowed in *.conf only outside <Directory>, <Files> or <Location>
</VirtualHost> (http_core.c)
         Marks end of <VirtualHost>
         Allowed in *.conf only outside <Directory>, <Files> or <Location>
<Files (http_core.c)
         Container for directives affecting files matching specified patterns
         Allowed in *.conf anywhere and in .htaccess
         when AllowOverride isn't None
</Files> (http_core.c)
         Marks end of <Files>
         Allowed in *.conf anywhere and in .htaccess
         when AllowOverride isn't None
<Limit (http_core.c)
         Container for authentication directives when accessed using 
specified HTTP methods
         Allowed in *.conf anywhere and in .htaccess
         when AllowOverride isn't None
</Limit> (http_core.c)
         Marks end of <Limit>
         Allowed in *.conf anywhere and in .htaccess
         when AllowOverride isn't None
<LimitExcept (http_core.c)
         Container for authentication directives to be applied when any 
HTTP method other than those specified is used to access the resource
         Allowed in *.conf anywhere and in .htaccess
         when AllowOverride isn't None
</LimitExcept> (http_core.c)
         Marks end of <LimitExcept>
         Allowed in *.conf anywhere and in .htaccess
         when AllowOverride isn't None
<IfModule (http_core.c)
         Container for directives based on existance of specified modules
         Allowed in *.conf anywhere and in .htaccess
         when AllowOverride isn't None
</IfModule> (http_core.c)
         Marks end of <IfModule>
         Allowed in *.conf anywhere and in .htaccess
         when AllowOverride isn't None
<IfDefine (http_core.c)
         Container for directives based on existance of command line defines
         Allowed in *.conf anywhere and in .htaccess
         when AllowOverride isn't None
</IfDefine> (http_core.c)
         Marks end of <IfDefine>
         Allowed in *.conf anywhere and in .htaccess
         when AllowOverride isn't None
<DirectoryMatch (http_core.c)
         Container for directives affecting resources located in the 
specified directories
         Allowed in *.conf only outside <Directory>, <Files> or <Location>
</DirectoryMatch> (http_core.c)
         Marks end of <DirectoryMatch>
         Allowed in *.conf only inside <Directory>, <Files> or <Location>
<LocationMatch (http_core.c)
         Container for directives affecting resources accessed through the 
specified URL paths
         Allowed in *.conf only outside <Directory>, <Files> or <Location>
</LocationMatch> (http_core.c)
         Marks end of <LocationMatch>
         Allowed in *.conf only inside <Directory>, <Files> or <Location>
<FilesMatch (http_core.c)
         Container for directives affecting files matching specified patterns
         Allowed in *.conf anywhere and in .htaccess
         when AllowOverride isn't None
</FilesMatch> (http_core.c)
         Marks end of <FilesMatch>
         Allowed in *.conf anywhere and in .htaccess
         when AllowOverride isn't None
AuthType (http_core.c)
         An HTTP authorization type (e.g., "Basic")
         Allowed in *.conf only inside <Directory>, <Files> or <Location> 
and in .htaccess
         when AllowOverride includes AuthConfig
AuthName (http_core.c)
         The authentication realm (e.g. "Members Only")
         Allowed in *.conf only inside <Directory>, <Files> or <Location> 
and in .htaccess
         when AllowOverride includes AuthConfig
Require (http_core.c)
         Selects which authenticated users or groups may access a protected 
space
         Allowed in *.conf only inside <Directory>, <Files> or <Location> 
and in .htaccess
         when AllowOverride includes AuthConfig
Satisfy (http_core.c)
         access policy if both allow and require used ('all' or 'any')
         Allowed in *.conf only inside <Directory>, <Files> or <Location> 
and in .htaccess
         when AllowOverride includes AuthConfig
AddDefaultCharset (http_core.c)
         The name of the default charset to add to any Content-Type without 
one or 'Off' to disable
         Allowed in *.conf anywhere and in .htaccess
         when AllowOverride includes FileInfo
AccessFileName (http_core.c)
         Name(s) of per-directory config files (default: .htaccess)
         Allowed in *.conf only outside <Directory>, <Files> or <Location>
DocumentRoot (http_core.c)
         Root directory of the document tree
         Allowed in *.conf only outside <Directory>, <Files> or <Location>
ErrorDocument (http_core.c)
         Change responses for HTTP errors
         Allowed in *.conf anywhere and in .htaccess
         when AllowOverride includes FileInfo
AllowOverride (http_core.c)
         Controls what groups of directives can be configured by 
per-directory config files
         Allowed in *.conf only inside <Directory>, <Files> or <Location>
Options (http_core.c)
         Set a number of attributes for a given directory
         Allowed in *.conf anywhere and in .htaccess
         when AllowOverride includes Options
DefaultType (http_core.c)
         the default MIME type for untypable files
         Allowed in *.conf anywhere and in .htaccess
         when AllowOverride includes FileInfo
ServerType (http_core.c)
         'inetd' or 'standalone'
         Allowed in *.conf only outside <Directory>, <Files> or <Location>
Port (http_core.c)
         A TCP port number
         Allowed in *.conf only outside <Directory>, <Files> or <Location>
HostnameLookups (http_core.c)
         "on" to enable, "off" to disable reverse DNS lookups, or "double" 
to enable double-reverse DNS lookups
         Allowed in *.conf anywhere
User (http_core.c)
         Effective user id for this server
         Allowed in *.conf only outside <Directory>, <Files> or <Location>
Group (http_core.c)
         Effective group id for this server
         Allowed in *.conf only outside <Directory>, <Files> or <Location>
ServerAdmin (http_core.c)
         The email address of the server administrator
         Allowed in *.conf only outside <Directory>, <Files> or <Location>
ServerName (http_core.c)
         The hostname of the server
         Allowed in *.conf only outside <Directory>, <Files> or <Location>
ServerSignature (http_core.c)
         En-/disable server signature (on|off|email)
         Allowed in *.conf anywhere and in .htaccess
         when AllowOverride isn't None
ServerRoot (http_core.c)
         Common directory of server-related files (logs, confs, etc.)
         Allowed in *.conf only outside <Directory>, <Files> or <Location>
ErrorLog (http_core.c)
         The filename of the error log
         Allowed in *.conf only outside <Directory>, <Files> or <Location>
PidFile (http_core.c)
         A file for logging the server process ID
         Allowed in *.conf only outside <Directory>, <Files> or <Location>
ScoreBoardFile (http_core.c)
         A file for Apache to maintain runtime process management information
         Allowed in *.conf only outside <Directory>, <Files> or <Location>
LockFile (http_core.c)
         The lockfile used when Apache needs to lock the accept() call
         Allowed in *.conf only outside <Directory>, <Files> or <Location>
AccessConfig (http_core.c)
         The filename of the access config file
         Allowed in *.conf only outside <Directory>, <Files> or <Location>
ResourceConfig (http_core.c)
         The filename of the resource config file
         Allowed in *.conf only outside <Directory>, <Files> or <Location>
ServerAlias (http_core.c)
         A name or names alternately used to access the server
         Allowed in *.conf only outside <Directory>, <Files> or <Location>
ServerPath (http_core.c)
         The pathname the server can be reached at
         Allowed in *.conf only outside <Directory>, <Files> or <Location>
Timeout (http_core.c)
         Timeout duration (sec)
         Allowed in *.conf only outside <Directory>, <Files> or <Location>
KeepAliveTimeout (http_core.c)
         Keep-Alive timeout duration (sec)
         Allowed in *.conf only outside <Directory>, <Files> or <Location>
MaxKeepAliveRequests (http_core.c)
         Maximum number of Keep-Alive requests per connection, or 0 for 
infinite
         Allowed in *.conf only outside <Directory>, <Files> or <Location>
KeepAlive (http_core.c)
         Whether persistent connections should be On or Off
         Allowed in *.conf only outside <Directory>, <Files> or <Location>
IdentityCheck (http_core.c)
         Enable identd (RFC 1413) user lookups - SLOW
         Allowed in *.conf anywhere
ContentDigest (http_core.c)
         whether or not to send a Content-MD5 header with each request
         Allowed in *.conf anywhere and in .htaccess
         when AllowOverride includes Options
UseCanonicalName (http_core.c)
         How to work out the ServerName : Port when constructing URLs
         Allowed in *.conf anywhere
StartServers (http_core.c)
         Number of child processes launched at server startup
         Allowed in *.conf only outside <Directory>, <Files> or <Location>
MinSpareServers (http_core.c)
         Minimum number of idle children, to handle request spikes
         Allowed in *.conf only outside <Directory>, <Files> or <Location>
MaxSpareServers (http_core.c)
         Maximum number of idle children
         Allowed in *.conf only outside <Directory>, <Files> or <Location>
MaxServers (http_core.c)
         Deprecated equivalent to MaxSpareServers
         Allowed in *.conf only outside <Directory>, <Files> or <Location>
ServersSafetyLimit (http_core.c)
         Deprecated equivalent to MaxClients
         Allowed in *.conf only outside <Directory>, <Files> or <Location>
MaxClients (http_core.c)
         Maximum number of children alive at the same time
         Allowed in *.conf only outside <Directory>, <Files> or <Location>
MaxRequestsPerChild (http_core.c)
         Maximum number of requests a particular child serves before dying.
         Allowed in *.conf only outside <Directory>, <Files> or <Location>
RLimitCPU (http_core.c)
         Soft/hard limits for max CPU usage in seconds
         Allowed in *.conf anywhere and in .htaccess
         when AllowOverride isn't None
RLimitMEM (http_core.c)
         Soft/hard limits for max memory usage per process
         Allowed in *.conf anywhere and in .htaccess
         when AllowOverride isn't None
RLimitNPROC (http_core.c)
         soft/hard limits for max number of processes per uid
         Allowed in *.conf anywhere and in .htaccess
         when AllowOverride isn't None
BindAddress (http_core.c)
         '*', a numeric IP address, or the name of a host with a unique IP 
address
         Allowed in *.conf only outside <Directory>, <Files> or <Location>
Listen (http_core.c)
         A port number or a numeric IP address and a port number
         Allowed in *.conf only outside <Directory>, <Files> or <Location>
SendBufferSize (http_core.c)
         Send buffer size in bytes
         Allowed in *.conf only outside <Directory>, <Files> or <Location>
AddModule (http_core.c)
         The name of a module
         Allowed in *.conf only outside <Directory>, <Files> or <Location>
ClearModuleList (http_core.c)
         Allowed in *.conf only outside <Directory>, <Files> or <Location>
ThreadsPerChild (http_core.c)
         Number of threads a child creates
         Allowed in *.conf only outside <Directory>, <Files> or <Location>
ExcessRequestsPerChild (http_core.c)
         Maximum number of requests a particular child serves after it is 
ready to die.
         Allowed in *.conf only outside <Directory>, <Files> or <Location>
ListenBacklog (http_core.c)
         Maximum length of the queue of pending connections, as used by 
listen(2)
         Allowed in *.conf only outside <Directory>, <Files> or <Location>
CoreDumpDirectory (http_core.c)
         The location of the directory Apache changes to before dumping core
         Allowed in *.conf only outside <Directory>, <Files> or <Location>
Include (http_core.c)
         Name of the config file to be included
         Allowed in *.conf anywhere
LogLevel (http_core.c)
         Level of verbosity in error logging
         Allowed in *.conf only outside <Directory>, <Files> or <Location>
NameVirtualHost (http_core.c)
         A numeric IP address:port, or the name of a host
         Allowed in *.conf only outside <Directory>, <Files> or <Location>
ServerTokens (http_core.c)
         Tokens displayed in the Server: header - Min[imal], OS, 
Prod[uctOnly], Full
         Allowed in *.conf only outside <Directory>, <Files> or <Location>
LimitRequestLine (http_core.c)
         Limit on maximum size of an HTTP request line
         Allowed in *.conf only outside <Directory>, <Files> or <Location>
LimitRequestFieldsize (http_core.c)
         Limit on maximum size of an HTTP request header field
         Allowed in *.conf only outside <Directory>, <Files> or <Location>
LimitRequestFields (http_core.c)
         Limit (0 = unlimited) on max number of header fields in a request 
message
         Allowed in *.conf only outside <Directory>, <Files> or <Location>
LimitRequestBody (http_core.c)
         Limit (in bytes) on maximum size of request message body
         Allowed in *.conf anywhere and in .htaccess
         when AllowOverride isn't None
LoadModule (mod_so.c)
         a module name and the name of a shared object file to load it from
         Allowed in *.conf only outside <Directory>, <Files> or <Location>
LoadFile (mod_so.c)
         shared object file or library to load into the server at runtime
         Allowed in *.conf only outside <Directory>, <Files> or <Location>
<Perl> (mod_perl.c)
         Perl code
         Allowed in *.conf anywhere and in .htaccess
         when AllowOverride isn't None
</Perl> (mod_perl.c)
         End Perl code
         Allowed in *.conf anywhere and in .htaccess
         when AllowOverride isn't None
=pod (mod_perl.c)
         Start of POD
         Allowed in *.conf anywhere and in .htaccess
         when AllowOverride isn't None
=back (mod_perl.c)
         End of =over
         Allowed in *.conf anywhere and in .htaccess
         when AllowOverride isn't None
=cut (mod_perl.c)
         End of POD
         Allowed in *.conf anywhere and in .htaccess
         when AllowOverride isn't None
__END__ (mod_perl.c)
         Stop reading config
         Allowed in *.conf anywhere and in .htaccess
         when AllowOverride isn't None
PerlFreshRestart (mod_perl.c)
         Tell mod_perl to reload modules and flush Apache::Registry cache 
on restart
         Allowed in *.conf only outside <Directory>, <Files> or <Location>
PerlTaintCheck (mod_perl.c)
         Turn on -T switch
         Allowed in *.conf only outside <Directory>, <Files> or <Location>
PerlWarn (mod_perl.c)
         Turn on -w switch
         Allowed in *.conf only outside <Directory>, <Files> or <Location>
PerlScript (mod_perl.c)
         this directive is deprecated, use `PerlRequire'
         Allowed in *.conf anywhere and in .htaccess
         when AllowOverride isn't None
PerlRequire (mod_perl.c)
         A Perl script name, pulled in via require
         Allowed in *.conf anywhere and in .htaccess
         when AllowOverride isn't None
PerlModule (mod_perl.c)
         List of Perl modules
         Allowed in *.conf anywhere and in .htaccess
         when AllowOverride isn't None
PerlSetVar (mod_perl.c)
         Perl config var and value
         Allowed in *.conf anywhere and in .htaccess
         when AllowOverride isn't None
PerlAddVar (mod_perl.c)
         Perl config var and value
         Allowed in *.conf anywhere and in .htaccess
         when AllowOverride isn't None
PerlSetEnv (mod_perl.c)
         Perl %ENV key and value
         Allowed in *.conf anywhere and in .htaccess
         when AllowOverride isn't None
PerlPassEnv (mod_perl.c)
         pass environment variables to %ENV
         Allowed in *.conf only outside <Directory>, <Files> or <Location>
PerlSendHeader (mod_perl.c)
         Tell mod_perl to parse and send HTTP headers
         Allowed in *.conf anywhere and in .htaccess
         when AllowOverride isn't None
PerlSetupEnv (mod_perl.c)
         Tell mod_perl to setup %ENV by default
         Allowed in *.conf anywhere and in .htaccess
         when AllowOverride isn't None
PerlHandler (mod_perl.c)
         the Perl handler routine name
         Allowed in *.conf anywhere and in .htaccess
         when AllowOverride isn't None
PerlTransHandler (mod_perl.c)
         the Perl Translation handler routine name
         Allowed in *.conf only outside <Directory>, <Files> or <Location>
PerlAuthenHandler (mod_perl.c)
         the Perl Authentication handler routine name
         Allowed in *.conf anywhere and in .htaccess
         when AllowOverride isn't None
PerlAuthzHandler (mod_perl.c)
         the Perl Authorization handler routine name
         Allowed in *.conf anywhere and in .htaccess
         when AllowOverride isn't None
PerlAccessHandler (mod_perl.c)
         the Perl Access handler routine name
         Allowed in *.conf anywhere and in .htaccess
         when AllowOverride isn't None
PerlTypeHandler (mod_perl.c)
         the Perl Type check handler routine name
         Allowed in *.conf anywhere and in .htaccess
         when AllowOverride isn't None
PerlFixupHandler (mod_perl.c)
         the Perl Fixup handler routine name
         Allowed in *.conf anywhere and in .htaccess
         when AllowOverride isn't None
PerlLogHandler (mod_perl.c)
         the Perl Log handler routine name
         Allowed in *.conf anywhere and in .htaccess
         when AllowOverride isn't None
PerlCleanupHandler (mod_perl.c)
         the Perl Cleanup handler routine name
         Allowed in *.conf anywhere and in .htaccess
         when AllowOverride isn't None
PerlInitHandler (mod_perl.c)
         the Perl Init handler routine name
         Allowed in *.conf anywhere and in .htaccess
         when AllowOverride isn't None
PerlHeaderParserHandler (mod_perl.c)
         the Perl Header Parser handler routine name
         Allowed in *.conf anywhere and in .htaccess
         when AllowOverride isn't None
PerlChildInitHandler (mod_perl.c)
         the Perl Child init handler routine name
         Allowed in *.conf only outside <Directory>, <Files> or <Location>
PerlChildExitHandler (mod_perl.c)
         the Perl Child exit handler routine name
         Allowed in *.conf only outside <Directory>, <Files> or <Location>
PerlPostReadRequestHandler (mod_perl.c)
         the Perl Post Read Request handler routine name
         Allowed in *.conf only outside <Directory>, <Files> or <Location>
PerlDispatchHandler (mod_perl.c)
         the Perl Dispatch handler routine name
         Allowed in *.conf anywhere and in .htaccess
         when AllowOverride isn't None
PerlRestartHandler (mod_perl.c)
         the Perl Restart handler routine name
         Allowed in *.conf only outside <Directory>, <Files> or <Location>


Re: Segmentation fault 11 (php/mod_perl)

Posted by Perrin Harkins <pe...@elem.com>.
Bob Pickles wrote:
> I've been hacking at this a couple days.  At first I really wanted to 
> get mod_perl working as a DSO.  Got everything compiled, and added lines 
> to httpd.conf.  Died on startup if I had AddModule mod_perl.c.  
> Following  a tip on this list, I gave up on DSO and went static 
> compile.

And then what happened?  Did you start with a clean conf file?  There 
should be no LoadModule/AddModule stuff in it for a static server.

- Perrin