Edit report at http://bugs.php.net/bug.php?id=36073&edit=1
ID: 36073 Updated by: phi...@php.net Reported by: chris at spawnordie dot com Summary: Source-compiled MySQL on x86_64 causes PHP configure failure -Status: Wont fix +Status: Open Type: Bug -Package: Compile Failure +Package: MySQL related Operating System: Linux/Any -PHP Version: 5.1.2 +PHP Version: 5.3.2 New Comment: Looks like a bug. Previous Comments: ------------------------------------------------------------------------ [2010-06-06 02:29:11] everyminutepies at yahoo dot ca I can confirm that this does in fact still happen with PHP 5.3.2 on CentOS 5.5 86_64 when compiling MySQL 5.0.xx and PHP on a standard installation. Despite being told by the configuration option --with-libdir=lib64 to use lib64/ it still chooses to use lib/ and fails to find the necessary files to continue with the ./configure. The posted workaround by Chris does work flawlessly. I invite the reviewer to explain either why the documentation is incorrect about the function of --with-libdir or why it is not respected in regards to mysql at his leisure. Trustfully, I agree not to become enraged when he suggests I know nothing about computers and post an enraged rant about him in the year 2014. ./configure --prefix=/usr/local/secure/php --with-apxs2=/usr/local/secure/apache2/bin/apxs --with-mysql=/usr/local/mysql/ --with-libdir=lib64 ------------------------------------------------------------------------ [2010-03-25 23:16:19] chris at spawnordie dot com Other than the bug reviewer just being a flat-out ass... It is still a bug in PHP. The PHP configure process honors the "--with-libdir" value for PostgreSQL and many, many other packages, but NOT for its check of MySQL. It is NOT a bug in MySQL, which installs its libraries in lib64, just like every other application that is compiled for 64bit OS. But PHP somehow "magically" knows how to find all of those other applications. At the very least, it is an inconsistency that could have been cleaned up with 15 minutes of effort by the PHP team when I reported the bug 4 years ago! And, based on the fact that I provided a work-around, it should have been clear that I did, in fact, know what I was doing. Maybe my feelings were a little hurt, but there's no excuse for the rudeness this bug reviewer showed. I sincerely hope that he/she is no longer in that role -- or doing anything that requires using any level of tact with actual people -- because he/she is just a jerk and is in serious need of therapy. Maybe he/she didn't get hugged as a child and is displaying a superiority complex to cover up low self-esteem and fear of being hurt. But I digress. ------------------------------------------------------------------------ [2010-03-25 18:32:22] michael at michaelsnet dot us IMHO this is a documentation bug. Consider adding a README.64bit file containing this information and other relevant information. ------------------------------------------------------------------------ [2006-01-18 23:53:50] sni...@php.net Works fine for me. Hint: Don't try building Mysql yourself if you don't know how to do it properly. Use the binary packages provided by MySQL. And last but not least: report this to MySQL. It's not our fault if they do things wrong. ------------------------------------------------------------------------ [2006-01-18 22:14:10] chris at spawnordie dot com Description: ------------ Please accept my apologies if this is already reported - I searched and didn't find it. When configuring PHP for x86_64, it is necessary to use: --with-libdir=lib64 When you compile MySQL from source, it does not place its files in lib64, but rather lib. MySQL was configured using: --prefix=/usr/local/mysql Configuring PHP using: --with-mysql=/usr/local/mysql fails with this: checking for MySQL support... yes checking for specified location of the MySQL UNIX socket... no checking for MySQL UNIX socket location... no configure: error: Cannot find libmysqlclient under /usr/local/mysql. Note that the MySQL client library is not bundled anymore! This fixes the problem: cd /usr/local/mysql ln -s lib lib64 When PHP is configured using --with-mysql=<mysql_dir> and --with-libdir=<lib_dir>, it should search <mysql_dir>/<lib_dir> and then <mysql_dir>/lib Reproduce code: --------------- ./configure --with-mysql=<path/to/mysql> when MySQL is compiled from source code Expected result: ---------------- successful configure Actual result: -------------- configure fails with: checking for MySQL support... yes checking for specified location of the MySQL UNIX socket... no checking for MySQL UNIX socket location... no configure: error: Cannot find libmysqlclient under /usr/local/mysql. Note that the MySQL client library is not bundled anymore! ------------------------------------------------------------------------ -- Edit this bug report at http://bugs.php.net/bug.php?id=36073&edit=1