Gentoo Websites Logo
Go to: Gentoo Home Documentation Forums Lists Bugs Planet Store Wiki Get Gentoo!
Bug 101472 - apache fails to start with mod_perl installed
Summary: apache fails to start with mod_perl installed
Status: RESOLVED FIXED
Alias: None
Product: Gentoo Linux
Classification: Unclassified
Component: Current packages (show other bugs)
Hardware: x86 Linux
: High blocker (vote)
Assignee: Gentoo Perl team
URL:
Whiteboard:
Keywords:
Depends on:
Blocks:
 
Reported: 2005-08-05 12:20 UTC by Ed Davison
Modified: 2005-08-12 12:30 UTC (History)
2 users (show)

See Also:
Package list:
Runtime testing required: ---


Attachments

Note You need to log in before you can comment on or make changes to this bug.
Description Ed Davison 2005-08-05 12:20:38 UTC
I have installed apache 2.0.5-r8 and mod_perl 1.99.11 and cannot get it to start
correctly.

Reproducible: Always
Steps to Reproduce:
1. emerge apache and mod_perl
2. /etc/init.d/apache2 start


Actual Results:  
cbacc-security3 ~ # /etc/init.d/apache2 start
 * Starting apache2 ...                                                   [ !! ]
cbacc-security3 ~ # tail /var/log/apache2/error_log -n 2
[Fri Aug 05 14:17:06 2005] [error] Can't locate
/etc/apache2/modules.d/apache2-mod_perl-startup.pl in @INC (@INC contains:
/etc/perl /usr/lib/perl5/site_perl/5.8.6/i686-linux
/usr/lib/perl5/site_perl/5.8.6 /usr/lib/perl5/site_perl
/usr/lib/perl5/vendor_perl/5.8.6/i686-linux /usr/lib/perl5/vendor_perl/5.8.6
/usr/lib/perl5/vendor_perl /usr/lib/perl5/5.8.6/i686-linux /usr/lib/perl5/5.8.6
/usr/local/lib/site_perl . /usr/lib/apache2/ /usr/lib/apache2/lib/perl) at (eval
1) line 1.\n
[Fri Aug 05 14:17:06 2005] [error] Can't load Perl file:
/etc/apache2/modules.d/apache2-mod_perl-startup.pl for server
cbacc-security3.mccombs.utexas.edu:0, exiting...\n


Expected Results:  
started apache2

cbacc-security3 ~ # emerge info
Portage 2.0.51.22-r2 (default-linux/x86/2005.0, gcc-3.3.5-20050130,
glibc-2.3.5-r0, 2.6.12-gentoo-r6 i686)
=================================================================
System uname: 2.6.12-gentoo-r6 i686 Intel(R) XEON(TM) CPU 1.80GHz
Gentoo Base System version 1.6.13
distcc 2.18.3 i686-pc-linux-gnu (protocols 1 and 2) (default port 3632) [disabled]
dev-lang/python:     2.3.5
sys-apps/sandbox:    1.2.11
sys-devel/autoconf:  2.13, 2.59-r6
sys-devel/automake:  1.4_p6, 1.5, 1.6.3, 1.7.9-r1, 1.8.5-r3, 1.9.5
sys-devel/binutils:  2.15.92.0.2-r10
sys-devel/libtool:   1.5.18-r1
virtual/os-headers:  2.6.11-r2
ACCEPT_KEYWORDS="x86"
AUTOCLEAN="yes"
CBUILD="i686-pc-linux-gnu"
CFLAGS="-O2 -march=i686 -fomit-frame-pointer -pipe"
CHOST="i686-pc-linux-gnu"
CONFIG_PROTECT="/etc /usr/kde/2/share/config /usr/kde/3.4/env
/usr/kde/3.4/share/config /usr/kde/3.4/shutdown /usr/kde/3/share/config
/usr/lib/X11/xkb /usr/share/config /usr/share/texmf/dvipdfm/config/
/usr/share/texmf/dvips/config/ /usr/share/texmf/tex/generic/config/
/usr/share/texmf/tex/platex/config/ /usr/share/texmf/xdvi/ /var/qmail/control"
CONFIG_PROTECT_MASK="/etc/gconf /etc/terminfo /etc/env.d"
CXXFLAGS="-O2 -march=i686 -fomit-frame-pointer -pipe"
DISTDIR="/usr/portage/distfiles"
FEATURES="autoconfig distlocks sandbox sfperms strict"
GENTOO_MIRRORS="http://distfiles.gentoo.org
http://distro.ibiblio.org/pub/Linux/distributions/gentoo"
MAKEOPTS="-j3"
PKGDIR="/usr/portage/packages"
PORTAGE_TMPDIR="/var/tmp"
PORTDIR="/usr/portage"
SYNC="rsync://rsync.gentoo.org/gentoo-portage"
USE="x86 X alsa apache2 apm arts avi berkdb bitmap bitmap-fonts bonobo cdr crypt
cups curl dbm dvd dvdr eds emboss encode esd fam flac foomaticdb fortran gd gdbm
gif gnome gphoto2 gpm gstreamer gtk gtk2 gtkhtml guile imagemagick imlib java
jpeg kde ldap libg++ libwww mad mikmod motif mozilla mp3 mpeg mysql ncurses nls
odbc ogg oggvorbis opengl oss pam pdflib perl png python qt quicktime readline
ruby samba scanner sdl slang spell ssl tcltk tcpd tetex tiff truetype
truetype-fonts type1-fonts vorbis xine xml xml2 xmms xv zlib userland_GNU
kernel_linux elibc_glibc"
Unset:  ASFLAGS, CTARGET, LANG, LC_ALL, LDFLAGS, LINGUAS, PORTDIR_OVERLAY

Additional info on this error.  When I run "perl -t
/etc/apache2/modules.d/apache2-mod_perl-startup.pl" I get the following:

cbacc-security3 ~ # perl -t /etc/apache2/conf/modules.d/apache2-mod_perl-startup.pl 
Can't locate ModPerl/Util.pm in @INC (@INC contains: /home/httpd/perl /etc/perl
/usr/lib/perl5/site_perl/5.8.6/i686-linux /usr/lib/perl5/site_perl/5.8.6
/usr/lib/perl5/site_perl /usr/lib/perl5/vendor_perl/5.8.6/i686-linux
/usr/lib/perl5/vendor_perl/5.8.6 /usr/lib/perl5/vendor_perl
/usr/lib/perl5/5.8.6/i686-linux /usr/lib/perl5/5.8.6 /usr/local/lib/site_perl)
at /etc/apache2/conf/modules.d/apache2-mod_perl-startup.pl line 6.
BEGIN failed--compilation aborted at
/etc/apache2/conf/modules.d/apache2-mod_perl-startup.pl line 6.
Comment 1 Michael Cummings (RETIRED) gentoo-dev 2005-08-06 05:08:05 UTC
Please provide the output of apache -l and perl -V  
Comment 2 Jan Dusek 2005-08-07 09:36:20 UTC
Hi, I'm experiencing the same problem. The requested output is as this:

# apache2 -l
Compiled in modules:
  core.c
  prefork.c
  http_core.c
  mod_so.c

# perl -V
Summary of my perl5 (revision 5 version 8 subversion 6) configuration:
  Platform:
    osname=linux, osvers=2.4.28-gentoo-r5, archname=i686-linux
    uname='linux <hostname> 2.4.28-gentoo-r5 #1 thu feb 3 16:41:37 cet 2005 i686
intel(r) pentium(r) 4 cpu 2.40ghz genuineintel gnulinux '
    config_args='-des -Darchname=i686-linux -Dcccdlflags=-fPIC
-Dccdlflags=-rdynamic -Dcc=i686-pc-linux-gnu-gcc -Dprefix=/usr
-Dvendorprefix=/usr -Dsiteprefix=/usr -Dlocincpth=  -Doptimize=-march=pentium4
-O3 -pipe -Duselargefiles -Dd_semctl_semun -Dscriptdir=/usr/bin
-Dman1dir=/usr/share/man/man1 -Dman3dir=/usr/share/man/man3
-Dinstallman1dir=/usr/share/man/man1
-Dinstallman3dir=/var/tmp/portage/perl-5.8.6-r5/image//usr/share/man/man3
-Dman1ext=1 -Dman3ext=3pm -Dinc_version_list=5.8.0 5.8.0/i686-linux 5.8.2
5.8.2/i686-linux 5.8.4 5.8.4/i686-linux 5.8.5 5.8.5/i686-linux  -Dcf_by=Gentoo
-Ud_csh -Di_ndbm -Di_gdbm -Ui_db'
    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='i686-pc-linux-gnu-gcc', ccflags ='-fno-strict-aliasing -pipe
-D_LARGEFILE_SOURCE -D_FILE_OFFSET_BITS=64',
    optimize='-march=pentium4 -O3 -pipe',
    cppflags='-DPERL5 -fno-strict-aliasing -pipe'
    ccversion='', gccversion='3.3.5-20050130 (Gentoo 3.3.5.20050130-r1,
ssp-3.3.5.20050130-1, pie-8.7.7.1)', gccosandvers=''
    intsize=4, longsize=4, ptrsize=4, doublesize=8, byteorder=1234
    d_longlong=define, longlongsize=8, d_longdbl=define, longdblsize=12
    ivtype='long', ivsize=4, nvtype='double', nvsize=8, Off_t='off_t', lseeksize=8
    alignbytes=4, prototype=define
  Linker and Libraries:
    ld='i686-pc-linux-gnu-gcc', ldflags =' -L/usr/local/lib'
    libpth=/usr/local/lib /lib /usr/lib
    libs=-lpthread -lnsl -lndbm -lgdbm -ldb -ldl -lm -lcrypt -lutil -lc
    perllibs=-lpthread -lnsl -ldl -lm -lcrypt -lutil -lc
    libc=/lib/libc-2.3.4.so, so=so, useshrplib=false, libperl=libperl.a
    gnulibc_version='2.3.4'
  Dynamic Linking:
    dlsrc=dl_dlopen.xs, dlext=so, d_dlsymun=undef, ccdlflags='-rdynamic'
    cccdlflags='-fPIC', lddlflags='-shared -L/usr/local/lib'


Characteristics of this binary (from libperl):
  Compile-time options: USE_LARGE_FILES
  Built under linux
  Compiled at Jul  6 2005 11:48:53
  @INC:
    /etc/perl
    /usr/lib/perl5/site_perl/5.8.6/i686-linux
    /usr/lib/perl5/site_perl/5.8.6
    /usr/lib/perl5/site_perl/5.8.0
    /usr/lib/perl5/site_perl/5.8.0/i686-linux
    /usr/lib/perl5/site_perl/5.8.4
    /usr/lib/perl5/site_perl/5.8.4/i686-linux
    /usr/lib/perl5/site_perl
    /usr/lib/perl5/vendor_perl/5.8.6/i686-linux
    /usr/lib/perl5/vendor_perl/5.8.6
    /usr/lib/perl5/vendor_perl
    /usr/lib/perl5/5.8.6/i686-linux
    /usr/lib/perl5/5.8.6
    /usr/local/lib/site_perl
    /usr/lib/perl5/site_perl/5.8.0
    /usr/lib/perl5/site_perl/5.8.0/i686-linux
    /usr/lib/perl5/site_perl/5.8.4
    /usr/lib/perl5/site_perl/5.8.4/i686-linux
    .
Comment 3 Jan Dusek 2005-08-07 09:38:59 UTC
I forgot to mention I'm using apache-2.0.54-r8 and mod_perl-1.99.11

# emerge info
Portage 2.0.51.22-r2 (default-linux/x86/2005.0/2.4, gcc-3.3.5-20050130,
glibc-2.3.5-r0, 2.4.28-gentoo-r9 i686)
=================================================================
System uname: 2.4.28-gentoo-r9 i686 Intel(R) Pentium(R) 4 CPU 2.40GHz
Gentoo Base System version 1.6.13
dev-lang/python:     2.2.3-r5, 2.3.5
sys-apps/sandbox:    1.2.10
sys-devel/autoconf:  2.13, 2.59-r6
sys-devel/automake:  1.4_p6, 1.5, 1.6.3, 1.7.9-r1, 1.8.5-r3, 1.9.5
sys-devel/binutils:  2.15.92.0.2-r10
sys-devel/libtool:   1.5.18-r1
virtual/os-headers:  2.4.19-r1, 2.4.22-r1
ACCEPT_KEYWORDS="x86"
AUTOCLEAN="yes"
CBUILD="i686-pc-linux-gnu"
CFLAGS="-march=pentium4 -O3 -pipe"
CHOST="i686-pc-linux-gnu"
CONFIG_PROTECT="/etc /etc/security /usr/kde/2/share/config
/usr/kde/3/share/config /usr/share/config /var/qmail/control
/var/www/localhost/htdocs"
CONFIG_PROTECT_MASK="/etc/gconf /etc/terminfo /etc/env.d"
CXXFLAGS="-O2 -mcpu=i686 -pipe"
DISTDIR="/usr/portage/distfiles"
FEATURES="autoconfig distlocks sandbox sfperms strict"
GENTOO_MIRRORS="ftp://ibiblio.org/pub/Linux/distributions/gentoo/
http://gentoo.mirrors.pair.com/ ftp://gentoo.mirrors.pair.com/
ftp://mirrors.tds.net/gentoo ftp://ftp.easynet.nl/mirror/gentoo/
http://ftp.snt.utwente.nl/pub/os/linux/gentoo
ftp://ftp.snt.utwente.nl/pub/os/linux/gentoo http://gentoo.tiscali.nl/gentoo/"
PKGDIR="/usr/portage/packages"
PORTAGE_TMPDIR="/var/tmp"
PORTDIR="/usr/portage"
PORTDIR_OVERLAY="/usr/local/portage"
SYNC="rsync://rsync.nl.gentoo.org/gentoo-portage"
USE="acpi apache2 apm directfb fbcon gd gdbm mysql ncurses pam perl png postfix
samba spamassassin sse ssl svga tcpd usb x86 xv userland_GNU kernel_linux
elibc_glibc"
Unset:  ASFLAGS, CTARGET, LANG, LC_ALL, LDFLAGS, LINGUAS, MAKEOPTS
Comment 4 Ed Davison 2005-08-07 13:26:53 UTC
Here is the info requested:

~ # apache2 -l
Compiled in modules:
  core.c
  prefork.c
  http_core.c
  mod_so.c
~ # perl -V
Summary of my perl5 (revision 5 version 8 subversion 6) configuration:
  Platform:
    osname=linux, osvers=2.6.11-gentoo-r3, archname=i686-linux
    uname='linux livecd 2.6.11-gentoo-r3 #1 smp fri mar 18 21:30:04 utc 2005
i686 intel(r) xeon(tm) cpu 1.80ghz genuineintel gnulinux '
    config_args='-des -Darchname=i686-linux -Dcccdlflags=-fPIC
-Dccdlflags=-rdynamic -Dcc=i686-pc-linux-gnu-gcc -Dprefix=/usr
-Dvendorprefix=/usr -Dsiteprefix=/usr -Dlocincpth=  -Doptimize=-O2 -march=i686
-fomit-frame-pointer -pipe -Duselargefiles -Dd_semctl_semun -Dscriptdir=/usr/bin
-Dman1dir=/usr/share/man/man1 -Dman3dir=/usr/share/man/man3
-Dinstallman1dir=/usr/share/man/man1
-Dinstallman3dir=/var/tmp/portage/perl-5.8.6-r5/image//usr/share/man/man3
-Dman1ext=1 -Dman3ext=3pm -Dinc_version_list=5.8.0 5.8.0/i686-linux 5.8.2
5.8.2/i686-linux 5.8.4 5.8.4/i686-linux 5.8.5 5.8.5/i686-linux  -Dcf_by=Gentoo
-Ud_csh -Di_ndbm -Di_gdbm -Di_db'
    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='i686-pc-linux-gnu-gcc', ccflags ='-fno-strict-aliasing -pipe
-D_LARGEFILE_SOURCE -D_FILE_OFFSET_BITS=64 -I/usr/include/gdbm',
    optimize='-O2 -march=i686 -fomit-frame-pointer -pipe',
    cppflags='-DPERL5 -fno-strict-aliasing -pipe -I/usr/include/gdbm'
    ccversion='', gccversion='3.3.5  (Gentoo Linux 3.3.5-r1, ssp-3.3.2-3,
pie-8.7.7.1)', gccosandvers=''
    intsize=4, longsize=4, ptrsize=4, doublesize=8, byteorder=1234
    d_longlong=define, longlongsize=8, d_longdbl=define, longdblsize=12
    ivtype='long', ivsize=4, nvtype='double', nvsize=8, Off_t='off_t', lseeksize=8
    alignbytes=4, prototype=define
  Linker and Libraries:
    ld='i686-pc-linux-gnu-gcc', ldflags =' -L/usr/local/lib'
    libpth=/usr/local/lib /lib /usr/lib
    libs=-lpthread -lnsl -lgdbm -ldb -ldl -lm -lcrypt -lutil -lc
    perllibs=-lpthread -lnsl -ldl -lm -lcrypt -lutil -lc
    libc=/lib/libc-2.3.4.so, so=so, useshrplib=false, libperl=libperl.a
    gnulibc_version='2.3.4'
  Dynamic Linking:
    dlsrc=dl_dlopen.xs, dlext=so, d_dlsymun=undef, ccdlflags='-rdynamic'
    cccdlflags='-fPIC', lddlflags='-shared -L/usr/local/lib'


Characteristics of this binary (from libperl):
  Compile-time options: USE_LARGE_FILES
  Built under linux
  Compiled at Aug  4 2005 06:55:28
  @INC:
    /etc/perl
    /usr/lib/perl5/site_perl/5.8.6/i686-linux
    /usr/lib/perl5/site_perl/5.8.6
    /usr/lib/perl5/site_perl
    /usr/lib/perl5/vendor_perl/5.8.6/i686-linux
    /usr/lib/perl5/vendor_perl/5.8.6
    /usr/lib/perl5/vendor_perl
    /usr/lib/perl5/5.8.6/i686-linux
    /usr/lib/perl5/5.8.6
    /usr/local/lib/site_perl
    .
~ #
Comment 5 Michael Cummings (RETIRED) gentoo-dev 2005-08-08 02:40:35 UTC
The startup and conf scripts have been updated - mod_perl2 uses a distinctly
different set from mod_perl-1.99, both are in the tree again. Please emerge sync
again in a few hours and try again :)

Comment 6 Ed Davison 2005-08-08 11:00:49 UTC
Just so I am on the same page, when you say mod_perl2 do you mean mod_perl
version 2.0.1-r2?  Or do you really mean mod_perl2 (which is not in portage as
far as I can tell)?
Comment 7 Rendhalver 2005-08-08 14:45:11 UTC
(In reply to comment #6)
> Just so I am on the same page, when you say mod_perl2 do you mean mod_perl
> version 2.0.1-r2?  Or do you really mean mod_perl2 (which is not in portage as
> far as I can tell)?

yes we mean mod_perl-2.0.1-r1
Comment 8 Michael Cummings (RETIRED) gentoo-dev 2005-08-09 01:47:13 UTC
(In reply to comment #6)
> Just so I am on the same page, when you say mod_perl2 do you mean mod_perl
> version 2.0.1-r2?  Or do you really mean mod_perl2 (which is not in portage as
> far as I can tell)?
> 

modperl2 == modperl-2 :)
Comment 9 Ed Davison 2005-08-09 11:53:56 UTC
I am not sure that I want to do the upgrade to www-apache/mod_perl-2.0.1-r2. 
This wants to upgrade apache2 to net-www/apache-2.0.54-r13.  The last time I did
the apache upgrade, it changed the location of ALL of the conf files for apache
and none of my application worked any more.

That is a lot of work to get apache2 TOTALLY reconfigured and I do not
understand why the apache2 config files have to change locate (and filename
actually come to think of it, namely from apache2.conf to httpd.conf).

Is there not some way to get mod_perl working without having to upgrade apache2
as well and having to totally reconfigure apache2???
Comment 10 Michael Cummings (RETIRED) gentoo-dev 2005-08-12 03:34:01 UTC
(In reply to comment #9)
> I am not sure that I want to do the upgrade to www-apache/mod_perl-2.0.1-r2. 
> This wants to upgrade apache2 to net-www/apache-2.0.54-r13.  The last time I did
> the apache upgrade, it changed the location of ALL of the conf files for apache
> and none of my application worked any more.

Then I'd be prepared to package mask your box. My understanding from the apache
folks is that the new layout schema will be going out unmasked soon now that
2005.1 is approaching/out. That was part of the decision process in dep'ing that
particular ebuild of apache - technically modperl2 will work eith 2.0.47 or
greater, but because of the layout changes looming, and not desiring to reissue
the ebuild again (and since both are currently ~arch) we went with the future
layout rather than the old layout.

> 
> That is a lot of work to get apache2 TOTALLY reconfigured and I do not
> understand why the apache2 config files have to change locate (and filename
> actually come to think of it, namely from apache2.conf to httpd.conf).

Not my place to comment, and well outside the scope of this bug.

> Is there not some way to get mod_perl working without having to upgrade apache2
> as well and having to totally reconfigure apache2???

See above comment - apache2 changes are going to be unmasked in the near future,
and there's only me (and rendhalver-in-training) to deal with the perl bugs.

Comment 11 Rendhalver 2005-08-12 04:21:20 UTC
> That is a lot of work to get apache2 TOTALLY reconfigured and I do not
> understand why the apache2 config files have to change locate (and filename
> actually come to think of it, namely from apache2.conf to httpd.conf).

first off the reason for changing the names of the config files is to bring the
gentoo apache conf more into line with the standard apache way of doing it.
if you install apache from scratch (which i did quite a lot of before i switched
to Gentoo) you will find that pretty much all of the config options go in httpd.conf

from what i have seen of the new layout the config hasnt changed a lot.
they have pretty much put the apache2.conf and commonapache.conf into httpd.conf
and then put the vhosts and module specific stuff in separate directories.
so thoeretically if you havent actually changed much from the standard Gentoo
apache conf it wont actually take long to reconfigure your apache for the new
layout.

if you take all your changes to the standard conf and stick them in a separate
file it chould make it easier ( diff -ub is your friend).

i have an extra file i put in the vhosts.d directory with local changes.
saves having to muck with much of the standard Gentoo conf, which in my opinion
is rather good.

hope that helps.
Comment 12 Ed Davison 2005-08-12 12:30:58 UTC
Well I certainly understand all of this and appreciate both responses.  I can
understand wanting to bring this more in-alignment with the standard Apache
installs and will have to just bite the bullet and make the changes.

That said, I have started this process and am having loads of trouble with ssl
and vhosts.  Understanding that they are beyond the scope of this but, I will
search bugs.gentoo.org for more on this and see what can be done to resolve my
troubles.  FYI, the trouble I am having is the same as this forum post but I
already have -D SSL in my config file with no fix:
http://forums.gentoo.org/viewtopic-t-246195-highlight-apache2+ssl+invalid+method.html