I am trying to integrate the GNU BerkeleyDB style database (gdbm) with PHP 4.1.2 / Apache 1.3.23 running on Mandrake Linux 8.2.
gdbm installed and tested OK. gdbm library stored in /usr/local/lib.
PHP dymanically loadable module created by:
cd /usr/src/php-devel/extensions/dba
phpize
./configure --with-php-config=/usr/bin/php-config \
--enable-dba=shared --with-gdbm=/usr/local/lib
make
make install
Process runs without errors, and generates dba.so in /usr/lib/php/20010901.
Copied dba.so to /usr/lib/php/extensions/. dba.so has the same access rights as the other modules (eg mysql.so) in the directory.
Line added to php.ini:
extension = dba.so
Restarted apache using
service -f httpd
phpinfo() does not show dba in modules list.
When a PHP test program calls dba_open(), output shows error:
Fatal error: Call to undefined function: dba_open() in ...
If dba.so removed from php.ini and the line:
dl("dba.so");
is added to test program, the following error is generated:
Warning: Invalid library (maybe not a PHP library) 'dba.so' in ...
running nm on dba.so reveals a long symbol list, but other modules (eg mysql.so) have no symbols present.
How do I make dba.so loadable?
Thanks,
Steve