php.net |  support |  documentation |  report a bug |  advanced search |  search howto |  statistics |  random bug |  login
Bug #40741 Change mysql compilation
Submitted: 2007-03-06 18:53 UTC Modified: 2007-03-07 10:09 UTC
From: d dot huijbers at apollo-ict dot nl Assigned:
Status: Not a bug Package: MySQL related
PHP Version: 5.2.1 OS: FreeBSD
Private report: No CVE-ID: None
 [2007-03-06 18:53 UTC] d dot huijbers at apollo-ict dot nl
Description:
------------
I've been trying to compile php-5.2.1 with mysql 5.1.x on my system which also has mysql3.x.x installed in /usr/local/mysql. I installed mysql-5.1.x into /usr/local/mysql5. Now, when I use --with-mysql=/usr/local/mysql5/ it still compiles to the libs in /usr/local/mysql/lib/.... 

I fixed this for my compilation by renaming the /usr/local/mysql into /usr/local/mysql3 for the compilation time.

Reproduce code:
---------------
./configure \
  --disable-all \
  --enable-safe-mode \
  --with-apxs2=/usr/local/apache2/bin/apxs \
  --prefix=/usr/local/apache2/php5 \
  --with-config-file-path=/usr/local/apache2/php5 \
  --enable-track-vars \
  --enable-ftp \
  --enable-pcre-regex=yes \
  --with-pdf-lib \
  --with-session \
  --enable-session \
  --with-zlib-dir=/usr/include \
  --with-freetype-dir=/usr/local/include/freetype2 \
  --with-bz2 \
  --with-xml \
  --with-libxml-dir=/usr/local/include/libxml2 \
  --with-curl=/usr/local/include/curl/ \
  --enable-curlwrappers \
  --enable-versioning \
  --enable-xml \
  --with-gd \
  --with-ttf \
  --with-xml-rpc \
  --enable-libxml \
  --with-dom \
  --with-mcrypt \
  --with-gettext \
  --enable-exif \
  --enable-bcmath \
  --enable-calendar \
  --enable-gd-native-ttf \
  --enable-gd-jis-conv \
  --with-kerberos \
  --enable-mbstring \
  --with-libmbfl \
  --with-mcve \
  --with-mhash \
  --with-mime-magic \
  --with-ncurses \
  --enable-shmop \
  --enable-dom \
  --enable-libxml \
  --enable-soap \
  --enable-sockets \
  --without-sqlite \
  --enable-sysvmsg \
  --enable-sysvmem \
  --enable-sysvshm \
  --with-iconv-dir \
  --with-xsl \
  --with-mysql=/usr/local/mysql5

Expected result:
----------------
Just a correct compilation of php-5.2.1 which is linked against /usr/local/mysql5 (a mysql 5.1.x installation)

Actual result:
--------------
PHP compiled against my older mysql3 installation that is found in /usr/local/mysql/ 


Patches

Add a Patch

Pull Requests

Add a Pull Request

History

AllCommentsChangesGit/SVN commitsRelated reports
 [2007-03-06 19:02 UTC] tony2001@php.net
These lines are incorrect:
  --with-zlib-dir=/usr/include \
  --with-freetype-dir=/usr/local/include/freetype2 \
  --with-libxml-dir=/usr/local/include/libxml2 \
  --with-curl=/usr/local/include/curl/ \
The values are supposed to be prefixes, i.e. /usr or /usr/local.

>--with-mysql=/usr/local/mysql5
Where did you install MySQL headers? (mysql.h particularly)
 [2007-03-06 23:10 UTC] d dot huijbers at apollo-ict dot nl
I installed the mysql.h into both /usr/local/mysql/include/... for mysql 3.x and for mysql 5.x into /usr/local/mysql5/include/

gr.
 [2007-03-07 07:36 UTC] tony2001@php.net
ls -l /usr/local/mysql5/include/mysql.h
 [2007-03-07 08:16 UTC] d dot huijbers at apollo-ict dot nl
-rw-r--r--  1 mysql  wheel  33723 Mar  6 14:49 mysql.h
 [2007-03-07 08:28 UTC] tony2001@php.net
ldd ./sapi/cli/php ?
 [2007-03-07 08:53 UTC] d dot huijbers at apollo-ict dot nl
After a day compiling, I found out that when I renamed the directory 
/usr/local/mysql to /usr/local/mysql3 and than used --with-mysql=/usr/local/mysql5 (my other mysql installation) id worked. Therefore I do not have a 'old' ./sapi/cli/php, but I'm quite sure it linked against libmysqlclient.so.10 not libmysqlclient.so.15 

-- LDD FOR WORKING VERSION --

ldd php
php:
        libcrypt.so.2 => /lib/libcrypt.so.2 (0x284f5000)
        libexslt.so.8 => /usr/local/lib/libexslt.so.8 (0x2850d000)
        libz.so.2 => /lib/libz.so.2 (0x2851d000)
        libm.so.3 => /lib/libm.so.3 (0x2852d000)
        libpanel.so.2 => /usr/lib/libpanel.so.2 (0x28547000)
        libncurses.so.5 => /lib/libncurses.so.5 (0x2854b000)
        libmhash.so.2 => /usr/local/lib/libmhash.so.2 (0x2858a000)
        libmcrypt.so.8 => /usr/local/lib/libmcrypt.so.8 (0x285be000)
        libltdl.so.4 => /usr/local/lib/libltdl.so.4 (0x285ee000)
        libintl.so.6 => /usr/local/lib/libintl.so.6 (0x285f6000)
        libfreetype.so.9 => /usr/local/lib/libfreetype.so.9 (0x285ff000)
        libpng.so.5 => /usr/local/lib/libpng.so.5 (0x28663000)
        libbz2.so.1 => /usr/lib/libbz2.so.1 (0x28685000)
        libcurl.so.4 => /usr/local/lib/libcurl.so.4 (0x28694000)
        libssl.so.3 => /usr/lib/libssl.so.3 (0x286c8000)
        libcrypto.so.3 => /lib/libcrypto.so.3 (0x286f6000)
        libmysqlclient.so.15 => /usr/local/mysql5/lib/mysql/libmysqlclient.so.15 (0x287eb000)
        libxslt.so.2 => /usr/local/lib/libxslt.so.2 (0x28848000)
        libxml2.so.5 => /usr/local/lib/libxml2.so.5 (0x28879000)
        libiconv.so.3 => /usr/local/lib/libiconv.so.3 (0x28991000)
        libc.so.5 => /lib/libc.so.5 (0x28a7e000)
 [2007-03-07 09:06 UTC] tony2001@php.net
Ah, so it DOES work when you fix the mess with MySQL libs.
Ok, then I don't see any sense to keep this report open.
 [2007-03-07 10:09 UTC] d dot huijbers at apollo-ict dot nl
Well I do think it's important that when one specifies --with-mysql=/path/to/mysql/to/be/used those libs are actually used and  not another lib as is the case now.
 
PHP Copyright © 2001-2024 The PHP Group
All rights reserved.
Last updated: Sat Apr 20 03:01:28 2024 UTC