Apache 2: mod_ssl installation w/DSO fails
I have an Apache 2 runnig and I need to add SSl support to it.
I've been told that I can do it using apxs.
Apache is installed on /usr/local/apache2 and source is in /usr/local/src/httpd-2.0.54
After some research I came to this:
server:/usr/local/apache2/bin# ./apxs -c /usr/local/src/httpd-2.0.54/modules/ssl/mod_ssl.c
which answers
/usr/local/apache2/build/libtool --silent --mode=compile gcc -prefer-pic -DAP_HAVE_DESIGNATED_INITIALIZER -DLINUX=2 -D_REENTRANT -D_XOPEN_SOURCE=500 -D_BSD_SOURCE -D_SVID_SOURCE -D_GNU_SOURCE -g -O2 -pthread -I/usr/local/apache2/include -I/usr/local/apache2/include -I/usr/local/apache2/include -c -o /usr/local/src/httpd-2.0.54/modules/ssl/mod_ssl.lo /usr/local/src/httpd-2.0.54/modules/ssl/mod_ssl.c && touch /usr/local/src/httpd-2.0.54/modules/ssl/mod_ssl.slo
/usr/local/apache2/build/libtool --silent --mode=link gcc -o /usr/local/src/httpd-2.0.54/modules/ssl/mod_ssl.la -rpath /usr/local/apache2/modules -module -avoid-version /usr/local/src/httpd-2.0.54/modules/ssl/mod_ssl.lo
This leaves several files named mod_ssl. I'ver tried apxs -i on each one of them, it only works on mod_ssl.la
server:/usr/local/apache2/bin# ./apxs -i -a /usr/local/src/httpd-2.0.54/modules/ssl/mod_ssl.la
/usr/local/apache2/build/instdso.sh SH_LIBTOOL='/usr/local/apache2/build/libtool' /usr/local/src/httpd-2.0.54/modules/ssl/mod_ssl.la /usr/local/apache2/modules
/usr/local/apache2/build/libtool --mode=install cp /usr/local/src/httpd-2.0.54/modules/ssl/mod_ssl.la /usr/local/apache2/modules/
cp /usr/local/src/httpd-2.0.54/modules/ssl/.libs/mod_ssl.so /usr/local/apache2/modules/mod_ssl.so
cp /usr/local/src/httpd-2.0.54/modules/ssl/.libs/mod_ssl.lai /usr/local/apache2/modules/mod_ssl.la
cp /usr/local/src/httpd-2.0.54/modules/ssl/.libs/mod_ssl.a /usr/local/apache2/modules/mod_ssl.a
ranlib /usr/local/apache2/modules/mod_ssl.a
chmod 644 /usr/local/apache2/modules/mod_ssl.a
PATH="$PATH:/sbin" ldconfig -n /usr/local/apache2/modules
----------------------------------------------------------------------
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 `LD_LIBRARY_PATH' environment variable
during execution
- add LIBDIR to the `LD_RUN_PATH' environment variable
during linking
- use the `-Wl,--rpath -Wl,LIBDIR' linker flag
- have your system administrator add LIBDIR to `/etc/ld.so.conf'
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_ssl.so
[activating module `ssl' in /usr/local/apache2/conf/httpd.conf]
So, it compiled well.
But when I restart apache I get:
Syntax error on line 233 of /usr/local/apache2/conf/httpd.conf:
Cannot load /usr/local/apache2/modules/mod_ssl.so into server: /usr/local/apache2/modules/mod_ssl.so: undefined symbol: ssl_cmd_SSLMutex
I have checked the files on /usr/local/src/httpd-2.0.54/modules/ssl/
ssl_cmd_SSLMutex is defined in another file, ssl_engine_config.c
So, how do I force apxs to compile or include all files in that directory?
Or is there anything else I must do?
Thanks
Claudia
|