#35432 [Opn]: make fails with PDO and MySQL5
| From: | mail at philipp-wagner dot com | Date: | Wed, 30 Nov 2005 20:42:02 +0000 |
| Subject: | #35432 [Opn]: make fails with PDO and MySQL5 | ||
| References: | 1 | Groups: | php.doc |
| Request: | Send a blank email to phpdoc+get-969371094@lists.php.net to get a copy of this message | ||
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] wez@php.net
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] sniper@php.net
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] wez@php.net
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