php.net |  support |  documentation |  report a bug |  advanced search |  search howto |  statistics |  random bug |  login
Bug #28077 libphp.so whon't load in apache2...
Submitted: 2004-04-20 13:25 UTC Modified: 2004-04-22 17:17 UTC
From: mathieu dot carbonneaux at ch2o dot info Assigned:
Status: Closed Package: Apache2 related
PHP Version: 4.3.6 OS: HP-UX 11i
Private report: No CVE-ID: None
View Add Comment Developer Edit
Welcome! If you don't have a Git account, you can't do anything here.
You can add a comment by following this link or if you reported this bug, you can edit this bug over here.
(description)
Block user comment
Status: Assign to:
Package:
Bug Type:
Summary:
From: mathieu dot carbonneaux at ch2o dot info
New email:
PHP Version: OS:

 

 [2004-04-20 13:25 UTC] mathieu dot carbonneaux at ch2o dot info
Description:
------------
have compile apache2, and i tested it separatly...is ok

after have compiled php without probleme... 
the php module has been correctly installed in dir of apache 
and the apache conf have been correctly modify...

but... when i try to start apache with php module(they work fine with integrated apache module!), 
they can load php module...

when i verify with ldd -d have this result:
        /usr/lib/libc.2 =>      /usr/lib/libc.2
        /usr/lib/libdld.2 =>    /usr/lib/libdld.2
        /usr/lib/libc.2 =>      /usr/lib/libc.2
        /usr/local/lib/libintl.sl =>    /usr/local/lib/libintl.sl
        /usr/lib/libc.2 =>      /usr/lib/libc.2
        /usr/local/lib/libiconv.sl =>   /usr/local/lib/libiconv.sl
        /usr/lib/libc.2 =>      /usr/lib/libc.2
        /usr/local/lib/libxml2.sl =>    /usr/local/lib/libxml2.sl
        /usr/lib/libc.2 =>      /usr/lib/libc.2
        /usr/local/lib/libintl.sl =>    /usr/local/lib/libintl.sl
        /usr/lib/libm.2 =>      /usr/lib/libm.2
        /usr/local/lib/libz.sl =>       /usr/local/lib/libz.sl
        /usr/lib/libpthread.1 =>        /usr/lib/libpthread.1
        /usr/lib/libm.2 =>      /usr/lib/libm.2
        /usr/local/lib/libbz2.sl =>     /usr/local/lib/libbz2.sl
        /usr/local/lib/libdb.sl =>      /usr/local/lib/libdb.sl
        /usr/lib/libc.2 =>      /usr/lib/libc.2
        /usr/local/lib/libxslt.sl =>    /usr/local/lib/libxslt.sl
        /usr/lib/libc.2 =>      /usr/lib/libc.2
        /usr/lib/libm.2 =>      /usr/lib/libm.2
        /usr/local/lib/libintl.sl =>    /usr/local/lib/libintl.sl
        /usr/lib/libpthread.1 =>        /usr/lib/libpthread.1
        /usr/local/lib/libz.sl =>       /usr/local/lib/libz.sl
        /usr/local/lib/libxml2.sl =>    /usr/local/lib/libxml2.sl
        /usr/local/lib/libxsltbreakpoint.sl =>  /usr/local/lib/libxsltbreakpoint.sl
        /usr/lib/libc.2 =>      /usr/lib/libc.2
        /usr/local/lib/libjpeg.sl =>    /usr/local/lib/libjpeg.sl
        /usr/local/lib/libz.sl =>       /usr/local/lib/libz.sl
        /usr/local/lib/libpng.sl =>     /usr/local/lib/libpng.sl
        /usr/local/lib/X11/libXpm.sl => /usr/local/lib/X11/libXpm.sl
        /usr/lib/libX11.3 =>    /usr/lib/libX11.3
        /usr/local/lib/libt1.sl =>      /usr/local/lib/libt1.sl
        /usr/local/lib/libgd.sl =>      /usr/local/lib/libgd.sl
        /usr/lib/libc.2 =>      /usr/lib/libc.2
        /usr/local/lib/libiconv.sl =>   /usr/local/lib/libiconv.sl
        /usr/lib/libm.2 =>      /usr/lib/libm.2
        /usr/local/lib/libz.sl =>       /usr/local/lib/libz.sl
        /usr/local/lib/libpng.sl =>     /usr/local/lib/libpng.sl
        /usr/local/lib/libfreetype.sl =>        /usr/local/lib/libfreetype.sl
        /usr/lib/libc.2 =>      /usr/lib/libc.2
        /usr/local/lib/libjpeg.sl =>    /usr/local/lib/libjpeg.sl
        /usr/lib/libX11.3 =>    /usr/lib/libX11.3
        /usr/local/lib/X11/libXpm.sl => /usr/local/lib/libXpm.sl
        /usr/lib/libdld.2 =>    /usr/lib/libdld.2
        /usr/lib/libpthread.1 =>        /usr/lib/libpthread.1
        /usr/local/lib/libexpat.sl =>   /usr/local/lib/libexpat.sl
        /usr/lib/libc.2 =>      /usr/lib/libc.2
        /usr/local/apache2/lib/libaprutil-0.sl.9 =>     /usr/local/apache2/lib/libaprutil-0.sl.9
        /usr/lib/libc.2 =>      /usr/lib/libc.2
        /usr/local/apache2/lib/libapr-0.sl.9 => /usr/local/apache2/lib/libapr-0.sl.9
        /usr/lib/libc.2 =>      /usr/lib/libc.2
        /usr/lib/libdld.2 =>    /usr/lib/libdld.2
        /usr/lib/libpthread.1 =>        /usr/lib/libpthread.1
        /usr/lib/libnsl.1 =>    /usr/lib/libnsl.1
        /usr/lib/libxti.2 =>    /usr/lib/libxti.2
        /usr/lib/libm.2 =>      /usr/lib/libm.2
        /usr/lib/libcl.2 =>     /usr/lib/libcl.2
        /usr/lib/libisamstub.1 =>       /usr/lib/libisamstub.1
        /usr/lib/libdld.2 =>    /usr/lib/libdld.2
        symbol not found: _SYSTEM_ID    (/usr/lib/libc.2)
        symbol not found: _end  (/usr/lib/libc.2)
        symbol not found: __dld_loc     (/usr/lib/libdld.2)
        symbol not found: ap_loaded_modules     (/usr/local/apache2/modules/libphp4.so)
        symbol not found: unixd_config  (/usr/local/apache2/modules/libphp4.so)
        symbol not found: ap_server_root        (/usr/local/apache2/modules/libphp4.so)
        symbol not found: _SYSTEM_ID    (/usr/lib/libcl.2)
        symbol not found: __dld_loc     (/usr/lib/libcl.2)

some symbole can be resolve....

have searched this symbole....

and i have found this symbol in httpd binary

#nm httpd | grep ap_server_root
ap_hack_ap_server_root_relative|1073780904|extern|data   |$DATA$
ap_server_root      |1073757188|extern|data   |$DATA$
ap_server_root_relative|    303164|extern|entry  |
ap_server_root_relative|    303216|extern|code   |$CODE$

#nm ./.libs/httpd | grep ap_loaded_modules
ap_loaded_modules   |1073757324|extern|data   |$DATA$

#nm ./.libs/httpd | grep unixd_config
unixd_config        |1073807808|undef |common |$BSS$

seem to be correctly exported by httpd....but unixd_config is undef...!!???

and the other symbol in hp-ux library....
but before i have a same probleme with other module(mod_auth_ldap from musquit), but only with the symbole _SYSTEM_ID, _end and __dld_loc, and have found how to correct this in using "export LD_PRELOAD=/usr/bin/libcl.sl" or in adding CFLAGS="-lcl" in hp-ux support
site...
but with php they dont work....

i think globale visibility probleme between httpd and loaded librairy (libphp4.so).

i think that dyn lib can't acces to global export of the binary who have loaded the library.

have you any idea to correct this!!!!?

how to remplace the use of apache global whith apr like fonction???!!!

Best Regards,
Mathieu


Patches

Add a Patch

Pull Requests

Add a Pull Request

History

AllCommentsChangesGit/SVN commitsRelated reports
 [2004-04-22 17:17 UTC] mathieu dot carbonneaux at ch2o dot info
i fact after many test and debuging...

ldd -d dont resolv some symbol but this can be resolved at run time... this symbol is the symbole who apache can't resolv...

have added BIND_VERBOSE in shl_load of apache to see more information on shl_load probleme....

and apache say to me they can resolve __umoddi3!

i searched where this symbole are... and i found they are in libgcc.a....

on HP-UX the pre-compiled GCC(3.3.2 of HP-UX porting center) not link systematicly libgcc....

to compile php apache module you are oblige to add --enable-libgcc, without that does not work...

my php compil options on hp-ux 11.11 with gcc 3.3.2 32Bits:

export LDFLAGS="-lcl"
export CFLAGS="-DHAVE_SOCKLEN_T -D_HPUX_SOURCE -D_XOPEN_SOURCE_EXTENDED -D_LABEL_T"
export CPPFLAGS="-DHAVE_SOCKLEN_T -D_HPUX_SOURCE -D_XOPEN_SOURCE_EXTENDED -D_LABEL_T"

gmake distclean
./configure  --prefix=/usr/local/php4  \
             --with-apxs2=/usr/local/apache2/bin/apxs \
             --enable-libgcc 


and apache 2 option:

export LDFLAGS="-lcl"
export CFLAGS="-DHAVE_SOCKLEN_T -D_HPUX_SOURCE -D_XOPEN_SOURCE_EXTENDED -D_LABEL_T"
export CPPFLAGS="-DHAVE_SOCKLEN_T -D_HPUX_SOURCE -D_XOPEN_SOURCE_EXTENDED -D_LABEL_T"

make distclean
./configure  --prefix=/usr/local/apache2 \
             --with-mpm=prefork \
             --enable-mods-shared=all \
             --enable-deflate=shared \
             --enable-ext-filter=shared \
             --enable-headers=shared \
             --enable-info=shared \
             --enable-proxy=shared \
             --enable-proxy-http=shared \
             --enable-rewrite=shared \
             --enable-vhost-alias=shared  \
             --disable-auth-digest

make && make install

with that options, work fine!
 
PHP Copyright © 2001-2024 The PHP Group
All rights reserved.
Last updated: Thu Apr 25 22:01:29 2024 UTC