ID: 35432 User updated by: mail at philipp-wagner dot com Reported By: mail at philipp-wagner dot com Status: Open Bug Type: Documentation problem Operating System: SuSE Linux 8.0 PHP Version: 5CVS-2005-11-27 (snap) Assigned To: wez New Comment:
I'm really sorry that I'm adding again some small thing, but I figured out that it is also important in which order you load the modules. You have to load the PDO modules first, before you load the sqlite module, otherwise you get the following error: <b>Warning</b>: PHP Startup: Unable to load dynamic library '/usr/local/lib/php/extensions/no-debug-non-zts-20050922/sqlite.so' - /usr/local/lib/php/extensions/no-debug-non-zts-20050922/sqlite.so: undefined symbol: php_pdo_register_driver in <b>Unknown</b> on line <b>0</b><br /> The PDO modules are loaded correctly, but the sqlite module won't until you place the extension=sqlite.so line in the php.ini file after the pdo extensions. That should be mentioned in the documentation also. Previous Comments: ------------------------------------------------------------------------ [2005-11-30 20:15:30] mail at philipp-wagner dot com It's really a documentation problem then. It's NOT enough to just specify (as you wrote above) --enable-pdo=shared --with-pdo-mysql=shared,/usr/local/mysql --with-sqlite=shared I had to use --enable-pdo=shared --with-pdo-mysql=shared,/usr/local/mysql --with-sqlite=shared --with-pdo-sqlite=shared to get it to work. This really should be be mentioned in the documentation. The documentation only suggests to compile with --enable-pdo=shared, but that won't work, if you don't use at least the corresponding sqlite configure options also. ------------------------------------------------------------------------ [2005-11-30 18:47:41] [EMAIL PROTECTED] You "simply" need to tell configure to build what you want it to build, how you want it built. --enable-pdo=shared --with-pdo-mysql=shared,/usr/local/mysql --with-sqlite=shared I know it sucks that we can't automatically make it work that way you want it; configure scripts have their limitations. ------------------------------------------------------------------------ [2005-11-30 17:31:25] [EMAIL PROTECTED] Wez, so, enabling by default is good thing? Hint: You should always use --disable-all :) ------------------------------------------------------------------------ [2005-11-30 16:25:12] mail at philipp-wagner dot com Well, I thought this might be the problem (mixing of shared and static libraries)... But now the check seems to be too strict. I first tried to build with --enable-pdo=shared --with-pdo-mysql=shared,/usr/local/mysql Now I got the following error message: You've configured extension sqlite to build statically, but it depends on extension pdo, which you've configured to build shared. You either need to build sqlite shared or build pdo statically for the build to be successful. sqlite is enabled by default (I didn't specify exlicitly specify pdo sqlite support as a configure option). ./configure --help doesn't say anything about an option like --with-pdo-sqlite, but I tried to use it anyways (or what else should I do to specify shared pdo sqlite support?). So I ran ./configure with --with-pdo-sqlite=shared This worked out quite well at first, configure gave me an output like checking for sqlite 3 driver for PDO... yes, shared But then, a bit further down, I got the error message again: checking for PDO includes... (cached) /usr/local/src/php5.1-200511301330/ext checking for lemon... no configure: warning: lemon versions supported for regeneration of libsqlite parsers: 1.0 (found: none). configure: error: You've configured extension sqlite to build statically, but it depends on extension pdo, which you've configured to build shared. You either need to build sqlite shared or build pdo statically for the build to be successful. I actually think, if you specify --enable-pdo=shared, all pdo "submodules" should also be built shared, as it reduces confusion and is the only way to get a working build anyways (it seems it is not possible to mix shared and static pdo libraries, so there's no need to specify it seperately). Also, the documentation doesn't say anything about how to build the specific PDO modules. It just suggests building PDO with --enable-pdo=shared, but doesn't say which configure options to use for MySQL PDO support etc. (I just got it from the ./configure --help output), and also doesn't mention the shared "problem". ------------------------------------------------------------------------ [2005-11-30 05:48:21] [EMAIL PROTECTED] Please try using this CVS snapshot: http://snaps.php.net/php5.1-latest.tar.gz For Windows: http://snaps.php.net/win32/php5.1-win32-latest.zip Please try the next PHP 5.1 snapshot. It features an improved error message that should catch conflicting configure options. ------------------------------------------------------------------------ The remainder of the comments for this report are too long. To view the rest of the comments, please view the bug report online at http://bugs.php.net/35432 -- Edit this bug report at http://bugs.php.net/?id=35432&edit=1