You are viewing a plain text version of this content. The canonical link for it is here.
Posted to modperl@perl.apache.org by Skip Montanaro <sk...@mojam.com> on 2000/11/16 18:17:44 UTC

Trouble building debug verson of Apache+mod_perl on Linux

I am getting segfaults from an Apache/mod_perl/Mason setup so I decided I
needed to build both Apache and mod_perl from source using -g and without
DSOs so I could easily debug it with gdb.  Alas, that is turning out to be
tougher than I expected.  I'm probably doing something fundamentally wrong.
Hopefully someone here can steer me in the right direction.

My environment is Linux Mandrake 7.1.  I'm trying to build and run Apache
1.3.14 and mod_perl 1.24_01 from their source distributions (I'm not
using RPMs).  I have two problems:

    1. It appears that not all the modules I asked to be enabled at
       configure time are found, and

    2. When I configure mod_perl it seems to override my desired set
       of apache builtin modules.

I configured apache using these settings:

    ./configure --with-layout=RedHat --enable-module=proxy \
        --enable-module=rewrite --enable-module=log_agent \
        --enable-module=log_referer --enable-module=info \
        --enable-module=auth_anon --enable-module=digest \
        --enable-module=expires --enable-module=headers \
        --enable-module=usertrack --enable-module=userdir

After compiling (without any mod_perl fiddling), executing "src/httpd -l"
yields

    Compiled-in modules:
      http_core.c
      mod_env.c
      mod_log_config.c
      mod_log_agent.c
      mod_log_referer.c
      mod_mime.c
      mod_negotiation.c
      mod_status.c
      mod_info.c
      mod_include.c
      mod_autoindex.c
      mod_dir.c
      mod_cgi.c
      mod_asis.c
      mod_imap.c
      mod_actions.c
      mod_userdir.c
      mod_alias.c
      mod_rewrite.c
      mod_access.c
      mod_auth.c
      mod_auth_anon.c
      mod_digest.c
      mod_proxy.c
      mod_expires.c
      mod_headers.c
      mod_usertrack.c
      mod_setenvif.c
    suexec: disabled; invalid wrapper /usr/sbin/suexec

However, when I check the config file with "src/httpd -t" it complains:

    Syntax error on line 137 of /etc/httpd/conf/httpd.conf:
    Invalid command 'UserDir', perhaps mis-spelled or defined by a
    module not included in the server configuration

Line 137 is the standard

    UserDir public_html

Why is apache complaining?

I configured mod_perl like so (after configuring and building apache as
above):

    perl Makefile.PL APACHE_SRC=../apache_1.3.14/src \
         DO_HTTPD=1 USE_APACI=1 EVERYTHING=1

After running "make" in the mod_perl directory, "src/httpd -l" yields an
abbreviated set of modules:

    Compiled-in modules:
      http_core.c
      mod_env.c
      mod_log_config.c
      mod_mime.c
      mod_negotiation.c
      mod_status.c
      mod_include.c
      mod_autoindex.c
      mod_dir.c
      mod_cgi.c
      mod_asis.c
      mod_imap.c
      mod_actions.c
      mod_userdir.c
      mod_alias.c
      mod_access.c
      mod_auth.c
      mod_setenvif.c
      mod_perl.c
    suexec: disabled; invalid wrapper /usr/local/apache/bin/suexec

There must be some way to build a debug version of apache+mod_perl with my
desired set of modules statically bound into the httpd executable.  Any
suggestions would be much appreciated.

Thx,

-- 
Skip Montanaro (skip@mojam.com)
Support the Mojam.com Affiliates Program: http://www.mojam.com/affl/
(847)971-7098