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