From: Arno Hollosi <ahollosi@xm...> - 2001-01-11 08:40:19
> The dbmopen funciton comes from GDBM, right? I'm
> at a loss as to why this would happen, since I do
> have GDBM installed, and the compiler didn't
> complain about its absence when I built php.
No, dbm*() functions come from compiling PHP with --with-dbm.
Functions using gdbm start with dba_*()
According to the PHP docs one should avoid dbm and use gdbm instead.
Maybe we should consider switching.
FYI, here's my answer email to Richard:
> > - in dbmlib.php line 35 remove the "@" in front of dbmopen()
> Fatal error: Call to undefined function: dbmopen() in
> /home/httpd/html/phpwiki/lib/dbmlib.php on line 39
Aha! You don't have dbm support in PHP.
Judging from your phpinfo() output:
DBA support enabled
Supported handlers gdbm=20
There are two different functions for dbm-style databases in PHP.
One is the classic dbm interface, one is an abstraction layer interface t=
dbm-style databases like e.g. gdbm, ndbm, Sleepycat's db2, ...
Right now you use the abstraction layer. phpwiki makes calls to the class=
dbm interface. Thus: function not found - and phpwiki can't operate. It's=
strange however, that you don't get the error message from ExitWiki().
Short term solutions for your problem:
- compile php with --with-dbm (note the missing 'g').
- Otherwise (if you don't want to recompile PHP): replace all dbm*()=20
functions with their dba_*() style counterparts. Unfortunately, you will=20
have to modify the arguments as well. If you are new to PHP this might be=
too much trouble.
- Otherwise: switch to another database. mySQL, msql, and PostgreSQL are
supported. I don't know if the flat file system is ready for use just y=
Long term solution:
Steve should check if it's not better to migrate to the dba_*() interface=
> > Btw, have you made sure that all files *and* directories are readable
> > by Apache? This includes lib/*, template/*, and pgsrc/*
Permissions look ok.
Hope that helps.