Edit report at http://bugs.php.net/bug.php?id=36073&edit=1
ID: 36073
Comment by: everyminutepies at yahoo dot ca
Reported by: chris at spawnordie dot com
Summary: Source-compiled MySQL on x86_64 causes PHP configure
failure
Status: Wont fix
Type: Bug
Package: Compile Failure
Operating System: Linux/Any
PHP Version: 5.1.2
New Comment:
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
Previous Comments:
------------------------------------------------------------------------
[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] [email protected]
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