Bug 65098 - [debian 10 ] cannot use mysql DBDriver, Can't load driver file apr_dbd_mysql.so
Summary: [debian 10 ] cannot use mysql DBDriver, Can't load driver file apr_dbd_mysql.so
Status: RESOLVED DUPLICATE of bug 61517
Alias: None
Product: Apache httpd-2
Classification: Unclassified
Component: mod_authn_dbd (show other bugs)
Version: 2.4.46
Hardware: PC Linux
: P2 normal (vote)
Target Milestone: ---
Assignee: Apache HTTPD Bugs Mailing List
URL:
Keywords:
Depends on:
Blocks:
 
Reported: 2021-01-22 13:39 UTC by brcjohn
Modified: 2021-02-02 12:49 UTC (History)
1 user (show)



Attachments

Note You need to log in before you can comment on or make changes to this bug.
Description brcjohn 2021-01-22 13:39:04 UTC
hello

i'm need to build apache + apr to use the digest auth with mysql db, the build is successful but at the runtime i've got the error:

Can't load driver file apr_dbd_mysql.so

my config:

LoadModule dbd_module modules/mod_dbd.so
LoadModule authn_dbd_module modules/mod_authn_dbd.so
LoadModule authz_dbd_module modules/mod_authz_dbd.so

DBDriver mysql
DBDParams "host=127.0.0.1 dbname=sso user=sso pass=....."
...

here is my full build procedure ( the same exact procedure is OK under debian 9) :

debian 10.7

apt update; apt-get install -y wget lsb-release build-essential autoconf pkg-config libssl-dev php-pear git unzip php-dev default-libmysqlclient-dev libpcre3-dev libxml2-dev libmm-dev libxml2-dev libssl-dev libssh2-1-dev libmemcached-dev libxslt1-dev libbz2-dev libmcrypt-dev libtidy-dev libcurl4-gnutls-dev libc-client2007e-dev libltdl-dev libicu-dev libreadline-dev libpq-dev libgdcm2-dev libjpeg62-turbo-dev libpng-dev libxpm-dev libfreetype6-dev libexpat1-dev 
/bin/mkdir -p /home/src && cd /home/src
/usr/bin/wget http://mirrors.ircam.fr/pub/apache//httpd/httpd-2.4.46.tar.gz && tar xvfz httpd-2.4.46.tar.gz
/usr/bin/wget http://apache.crihan.fr/dist/apr/apr-1.7.0.tar.gz  && tar xvfz apr-1*.tar.gz && mv apr-1.7.0 httpd-2.4.46/srclib/apr
/usr/bin/wget http://apache.crihan.fr/dist//apr/apr-util-1.6.1.tar.gz && tar xvfz apr-util-1*.tar.gz && mv apr-util-1.6.1 httpd-2.4.46/srclib/apr-util
cd httpd-2.4.46/
./configure --prefix=/home/bin/httpd24 --with-included-apr --with-mpm=prefork --with-mysql --enable-mods-static='rewrite deflate vhost-alias expires headers log-config auth-digest unixd status env setenvif access-compat mime dir authn-core authn-file authz-user authz-core authz-host authz-groupfile auth-basic filter unique-id'
make clean;time make && make install

/home/bin/httpd24/bin/httpd -v
Server version: Apache/2.4.46 (Unix)
Server built:   Jan 22 2021 14:21:42

# /home/bin/httpd24/bin/apachectl configtest
AH00526: Syntax error on line 5 of /home/conf/apache.conf:
Can't load driver file apr_dbd_mysql.so

Any help appreciated
Comment 1 brcjohn 2021-01-25 14:21:46 UTC
hello

the lib exists and here is ldd:

ldd /home/bin/httpd24/lib/apr-util-1/apr_dbd_mysql.so
	linux-vdso.so.1 (0x00007ffe34cc5000)
	libmariadb.so.3 => /lib/x86_64-linux-gnu/libmariadb.so.3 (0x00007f19568a7000)
	libpthread.so.0 => /lib/x86_64-linux-gnu/libpthread.so.0 (0x00007f1956886000)
	libc.so.6 => /lib/x86_64-linux-gnu/libc.so.6 (0x00007f19566c5000)
	libdl.so.2 => /lib/x86_64-linux-gnu/libdl.so.2 (0x00007f19566c0000)
	libm.so.6 => /lib/x86_64-linux-gnu/libm.so.6 (0x00007f195653d000)
	libgnutls.so.30 => /lib/x86_64-linux-gnu/libgnutls.so.30 (0x00007f1956390000)
	libz.so.1 => /lib/x86_64-linux-gnu/libz.so.1 (0x00007f1956170000)
	/lib64/ld-linux-x86-64.so.2 (0x00007f1956911000)
	libp11-kit.so.0 => /lib/x86_64-linux-gnu/libp11-kit.so.0 (0x00007f1956041000)
	libidn2.so.0 => /lib/x86_64-linux-gnu/libidn2.so.0 (0x00007f1956022000)
	libunistring.so.2 => /lib/x86_64-linux-gnu/libunistring.so.2 (0x00007f1955e9e000)
	libtasn1.so.6 => /lib/x86_64-linux-gnu/libtasn1.so.6 (0x00007f1955c8b000)
	libnettle.so.6 => /lib/x86_64-linux-gnu/libnettle.so.6 (0x00007f1955c53000)
	libhogweed.so.4 => /lib/x86_64-linux-gnu/libhogweed.so.4 (0x00007f1955c18000)
	libgmp.so.10 => /lib/x86_64-linux-gnu/libgmp.so.10 (0x00007f1955b95000)
	libffi.so.6 => /lib/x86_64-linux-gnu/libffi.so.6 (0x00007f1955b8b000)

the EXACT same procedure is fully working on debian 9, on debian 10 i still got:
Cant load driver file apr_dbd_mysql.so


thanks for any help on this
Comment 2 Tom Donovan 2021-02-01 20:40:08 UTC
This is resolved bug 61517 - MariaDB no longer exports the  my_init() function. This bug will be fixed in apr-util 1.7.0.

As a workaround, you can download the source file with this fix and use it to replace the 1.6.1 source file.  It will compile and work with apr-util 1.6.1

wget http://svn.apache.org/viewvc/apr/apr-util/branches/1.7.x/dbd/apr_dbd_mysql.c?revision=1872061 -O apr_dbd_mysql.c

Replace the source file: httpd-2.4.46/srclib/apr-util/dbd/apr_dbd_mysql.c 
with the downloaded file and re-build.
Comment 3 Tom Donovan 2021-02-01 20:41:08 UTC

*** This bug has been marked as a duplicate of bug 61517 ***
Comment 4 brcjohn 2021-02-02 12:49:10 UTC
Thank you VERY MUCH Tom Donovan
everything is working now, thanks to the patch and your help

Best,