All,

I hope you could help me with a mod_wsgi load error upon startup of apache.
This is affecting one of our site Go Live and I would appreciate any help
offered in this regard.

The error upon startup of Apache is as follows

root [zibal]% ./usr/local/apache2/bin/apachectl restart
httpd: Syntax error on line 53 of /usr/local/apache2/conf/httpd.conf:
Cannot load /usr/local/apache2/modules/mod_wsgi.so into server:
rtld:0712-001 Symbol ap_cleanup_scoreboard was referenced from module
/usr/local/apache2/modules/mod_wsgi.so(), but a runtime definition of the
symbol was not found.
rtld: 0712-001 Symbol ap_accept_lock_mech was referenced from module
/usr/local/apache2/modules/mod_wsgi.so(), but a runtime definition of the
symbol was not found.


I am pasting the output of nm command on the apache executable and those
symbols seem to exist.

root [zibal]% nm ./usr/local/apache2/bin/httpd | grep  ap_accept_lock_mech
ap_accept_lock_mech  D   536880332
ap_accept_lock_mech  d   536900392           4
ap_accept_lock_mech:G879 -           0

root [zibal]% nm ./usr/local/apache2/bin/httpd | grep ap_cleanup_scoreboard
.ap_cleanup_scoreboard T   268613428         212
ap_cleanup_scoreboard D   536890068
ap_cleanup_scoreboard d   536890068          12
ap_cleanup_scoreboard d   536899972           4
ap_cleanup_scoreboard:F385 -        2976


I am wondering if there is a way to statically link mod_wsgi into apache?
Please guide.

I built Apache 2.2.17 and Mod_Wsgi 3.3 using the source and the compiler was
gcc-4.2.


Here is the Apache Build Information
=====================================

root [zibal]% ./usr/local/apache2/bin/httpd -V
Server version: Apache/2.2.17 (Unix)
Server built:   Nov 18 2010 05:04:25
Server's Module Magic Number: 20051115:25
Server loaded:  APR 1.4.2, APR-Util 1.3.10
Compiled using: APR 1.4.2, APR-Util 1.3.10
Architecture:   32-bit
Server MPM:     Prefork
 threaded:     no
   forked:     yes (variable process count)
Server compiled with....
 -D APACHE_MPM_DIR="server/mpm/prefork"
 -D APR_HAS_SENDFILE
 -D APR_HAS_MMAP
 -D APR_HAVE_IPV6 (IPv4-mapped addresses enabled)
 -D APR_USE_SYSVSEM_SERIALIZE
 -D APR_USE_PTHREAD_SERIALIZE
 -D SINGLE_LISTEN_UNSERIALIZED_ACCEPT
 -D APR_HAS_OTHER_CHILD
 -D AP_HAVE_RELIABLE_PIPED_LOGS
 -D DYNAMIC_MODULE_LIMIT=128
 -D HTTPD_ROOT="/usr/local/apache2"
 -D SUEXEC_BIN="/usr/local/apache2/bin/suexec"
 -D DEFAULT_PIDLOG="logs/httpd.pid"
 -D DEFAULT_SCOREBOARD="logs/apache_runtime_status"
 -D DEFAULT_LOCKFILE="logs/accept.lock"
 -D DEFAULT_ERRORLOG="logs/error_log"
 -D AP_TYPES_CONFIG_FILE="conf/mime.types"
 -D SERVER_CONFIG_FILE="conf/httpd.conf"

Contents of config.nice file are as follows

++++++++++++++++++++++++
#! /bin/sh
#
# Created by configure

CC="gcc"; export CC
"./configure" \
"CC=gcc" \
"$@"
++++++++++++++++++++++++



Information about Apache Modules Loaded
=======================================

 root [zibal]% ./usr/local/apache2/bin/httpd -l
Compiled in modules:
 core.c
 mod_authn_file.c
 mod_authn_default.c
 mod_authz_host.c
 mod_authz_groupfile.c
 mod_authz_user.c
 mod_authz_default.c
 mod_auth_basic.c
 mod_include.c
 mod_filter.c
 mod_log_config.c
 mod_env.c
 mod_setenvif.c
 mod_version.c
 prefork.c
 http_core.c
 mod_mime.c
 mod_status.c
 mod_autoindex.c
 mod_asis.c
 mod_cgi.c
 mod_negotiation.c
 mod_dir.c
 mod_actions.c
 mod_userdir.c
 mod_alias.c
 mod_so.c


In httpd.conf, i only have the following LoadModule Statement
=============================================================
LoadModule wsgi_module modules/mod_wsgi.so

Information about Global Accept Mutex
=====================================
Valid accept mutexes for this platform and MPM are: default, fcntl,
sysvsem, posixsem, pthread.

Alo, here is my build session transcript while building mod_wsgi.....There
was absolutely no error during build.

root [zibal]% make
         /usr/local/apache2/bin/apxs -c -I/usr/local/include/python2.6
-DNDEBUG   mod_wsgi.c -L/usr/local/lib -L/usr/local/lib/python2.6/config
 -lpython2.6 -ldl -lm
/usr/local/apache2/build/libtool --silent --mode=compile gcc -prefer-pic
-U__STR__ -D_THREAD_SAFE -D_USE_IRS -D_LARGEFILE64_SOURCE -g -O2 -pthread
-I/usr/local/apache2/include  -I/usr/local/apache2/include
-I/usr/local/apache2/include -I/usr/local/include
-I/usr/local/include/python2.6 -DNDEBUG  -c -o mod_wsgi.lo mod_wsgi.c &&
touch mod_wsgi.slo
/usr/local/apache2/build/libtool --silent --mode=link gcc -o
mod_wsgi.la -rpath /usr/local/apache2/modules -module -avoid-version
-Wl,-brtl
 mod_wsgi.lo -L/usr/local/lib -L/usr/local/lib/python2.6/config -lpython2.6
-ldl -lm
Target "all" is up to date.
root [zibal]% make install
        /usr/local/apache2/bin/apxs -i -S
LIBEXECDIR=/usr/local/apache2/modules -n 'mod_wsgi' mod_wsgi.la
/usr/local/apache2/build/instdso.sh
SH_LIBTOOL='/usr/local/apache2/build/libtool'
mod_wsgi.la/usr/local/apache2/modules
rm -f /usr/local/apache2/modules/mod_wsgi.so
/usr/local/apache2/build/libtool --mode=install cp
mod_wsgi.la/usr/local/apache2/modules/
cp .libs/mod_wsgi.so /usr/local/apache2/modules/mod_wsgi.so
cp .libs/mod_wsgi.lai /usr/local/apache2/modules/mod_wsgi.la
cp .libs/mod_wsgi.a /usr/local/apache2/modules/mod_wsgi.a
chmod 644 /usr/local/apache2/modules/mod_wsgi.a
ranlib /usr/local/apache2/modules/mod_wsgi.a
----------------------------------------------------------------------
Libraries have been installed in:
   /usr/local/apache2/modules

If you ever happen to want to link against installed libraries
in a given directory, LIBDIR, you must either use libtool, and
specify the full pathname of the library, or use the `-LLIBDIR'
flag during linking and do at least one of the following:
   - add LIBDIR to the `LIBPATH' environment variable
     during execution
   - use the
`-Wl,-blibpath:LIBDIR:/opt/freeware/lib/gcc/powerpc-ibm-aix5.3.0.0/4.2.4:/opt/freeware/lib/gcc/powerpc-ibm-aix5.3.0.0/4.2.4/../../..:/usr/lib:/lib
' linker flag

See any operating system documentation about shared libraries for
more information, such as the ld(1) and ld.so(8) manual pages.
----------------------------------------------------------------------
chmod 755 /usr/local/apache2/modules/mod_wsgi.so

Please let me know if I should provide some additional information.

Regards,
Anurag

Reply via email to