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