I have virtual server which I would like to customize and use the following:
PHP version 4.4.9
MySQL version 4.1.22
I am struggling for the 2nd day with PHP compile.
the problem is that I need to compile PHP with "Client API version" which is 4.1.22 and not 3.23.49
this means that I need to compile PHP with "MYSQL_MODULE_TYPE" which is "external" and not "builtin"
and the problem is to compile PHP with "MYSQL_MODULE_TYPE" which is "external"
I cant achieve until now this target.
here are some information regarding my system:
we are talking about 64bit OS , means x86_64
we are talking about centos 4.8
we are talking about Virtual Server / Virtual machine [based on Virtuozzo]
# uname -a
Linux some.hostname.ext 2.6.18-028stab070.10 #1 SMP Thu Oct 21 13:44:25 MSD 2010 x86_64 x86_64 x86_64 GNU/Linux
# cat /etc/redhat-release
CentOS release 4.8 (Final)
# rpm -qa | grep mysql
mysql-server-4.1.22-2.el4_8.3
mysql-4.1.22-2.el4_8.3
mysql-devel-4.1.22-2.el4_8.3
# rpm -qa | grep php
php-4.3.9-3.29
php-ioncube-loader-3.0-06101816
note: I know that I have already PHP rpm package which is installed , I am not removing this RPM package because I have "Plesk control panel" which is running over this virtual machine and in case I will not have rpm pkg which called "php" then Plesk control panel will not recognize that PHP is already installed over the system. so this is the only reason why I am not removing the exist installed rpm pkg of PHP.
# /usr/bin/mysql_config --libs
-L/usr/lib64/mysql -lmysqlclient -lz -lcrypt -lnsl -lm -L/usr/lib64 -lssl -lcrypto
# /usr/bin/mysql_config --version
4.1.22
now lets focus on the "configure" command which I am running:
./configure --build=x86_64-redhat-linux-gnu --host=x86_64-redhat-linux-gnu --target=x86_64-redhat-linux-gnu --program-prefix= --prefix=/usr --exec-prefix=/usr --bindir=/usr/bin --sbindir=/usr/sbin --sysconfdir=/etc --datadir=/usr/share --includedir=/usr/include --with-libdir=lib64 --libexecdir=/usr/libexec --localstatedir=/var --sharedstatedir=/usr/com --mandir=/usr/share/man --infodir=/usr/share/info --cache-file=../config.cache --with-config-file-path=/etc --with-config-file-scan-dir=/etc/php.d --enable-force-cgi-redirect --disable-debug --enable-pic --disable-rpath --enable-inline-optimization --with-bz2 --with-db4=/usr --with-curl --with-exec-dir=/usr/bin --with-freetype-dir=/usr --with-png-dir --with-gd --enable-gd-native-ttf --without-gdbm --with-gettext --with-ncurses=shared --with-gmp --with-iconv --with-jpeg-dir --with-openssl --with-png --with-pspell --with-xml --with-expat-dir=/usr --with-dom=shared,/usr --with-dom-xslt=/usr --with-dom-exslt=/usr --with-xmlrpc=shared --with-pcre-regex=/usr/lib64 --with-zlib --with-layout=GNU --enable-bcmath --enable-exif --enable-ftp --enable-magic-quotes --enable-sockets --enable-sysvsem --enable-sysvshm --enable-track-vars --enable-trans-sid --enable-yp --enable-wddx --with-pear=/usr/share/pear --with-imap --with-imap-ssl --with-kerberos --with-ldap=shared --with-mysql=/usr --with-mysqli --enable-dom --with-pgsql=shared --with-snmp=shared,/usr --with-snmp=shared --enable-ucd-snmp-hack --with-unixODBC=shared,/usr --enable-memory-limit --enable-shmop --enable-calendar --enable-dbx --enable-dio --enable-mbstring=shared --enable-mbstr-enc-trans --enable-mbregex --with-mime-magic --enable-dbase --with-apxs2=/usr/sbin/apxs
so as you can see from the command line which I am trying to execute:
--with-libdir=lib64
--with-mysql=/usr
note: in case that I will not specify DIR for --with-mysql , then in such case PHP compilation will success , BUT the problem is that "MYSQL_MODULE_TYPE" will be "builtin" and not "external" [and I need "external"] , so any suggestion regarding leaving the path of MySQL empty , is not eligible for my scenario.
WHICH ERROR MSG i GET:
sometime I get: configure: error: Cannot find MySQL header files under
sometime I get: configure: error: Cannot find libmysqlclient library under /usr
I already tried to run the following command line:
LDFLAGS=-L/usr/lib64/mysql ./configure --build=x86_64-redhat-linux-gnu --host=x86_64-redhat-linux-gnu --target=x86_64-redhat-linux-gnu --program-prefix= --prefix=/usr --exec-prefix=/usr --bindir=/usr/bin --sbindir=/usr/sbin --sysconfdir=/etc --datadir=/usr/share --includedir=/usr/include --with-libdir=lib64 --libexecdir=/usr/libexec --localstatedir=/var --sharedstatedir=/usr/com --mandir=/usr/share/man --infodir=/usr/share/info --cache-file=../config.cache --with-config-file-path=/etc --with-config-file-scan-dir=/etc/php.d --enable-force-cgi-redirect --disable-debug --enable-pic --disable-rpath --enable-inline-optimization --with-bz2 --with-db4=/usr --with-curl --with-exec-dir=/usr/bin --with-freetype-dir=/usr --with-png-dir --with-gd --enable-gd-native-ttf --without-gdbm --with-gettext --with-ncurses=shared --with-gmp --with-iconv --with-jpeg-dir --with-openssl --with-png --with-pspell --with-xml --with-expat-dir=/usr --with-dom=shared,/usr --with-dom-xslt=/usr --with-dom-exslt=/usr --with-xmlrpc=shared --with-pcre-regex=/usr/lib64 --with-zlib --with-layout=GNU --enable-bcmath --enable-exif --enable-ftp --enable-magic-quotes --enable-sockets --enable-sysvsem --enable-sysvshm --enable-track-vars --enable-trans-sid --enable-yp --enable-wddx --with-pear=/usr/share/pear --with-imap --with-imap-ssl --with-kerberos --with-ldap=shared --with-mysql=/usr --with-mysqli --enable-dom --with-pgsql=shared --with-snmp=shared,/usr --with-snmp=shared --enable-ucd-snmp-hack --with-unixODBC=shared,/usr --enable-memory-limit --enable-shmop --enable-calendar --enable-dbx --enable-dio --enable-mbstring=shared --enable-mbstr-enc-trans --enable-mbregex --with-mime-magic --enable-dbase --with-apxs2=/usr/sbin/apxs
as you can see this time I used "LDFLAGS=-L/usr/lib64/mysql" , but of course I still encounter the same issue
so for not continuing spending my time , I have decided to open a post here , and lets see if someone here has a solution for this common issue.
more info that may help:
lib64/mysql/mysql_config --cflags
-I/usr/include/mysql -g -pipe -m64 -D_GNU_SOURCE -D_FILE_OFFSET_BITS=64 -D_LARGEFILE_SOURCE -fno-strict-aliasing
# /usr/lib64/mysql/mysql_config --libs
-L/usr/lib64/mysql -lmysqlclient -lz -lcrypt -lnsl -lm -L/usr/lib64 -lssl -lcrypto
# LDFLAGS="-L/usr/lib64/mysql" CPPFLAGS="-I/usr/include/mysql" ./configure --build=x86_64-redhat-linux-gnu --host=x86_64-redhat-linux-gnu --target=x86_64-redhat-linux-gnu --program-prefix= --prefix=/usr --exec-prefix=/usr --bindir=/usr/bin --sbindir=/usr/sbin --sysconfdir=/etc --datadir=/usr/share --includedir=/usr/include --with-libdir=lib64 --libexecdir=/usr/libexec --localstatedir=/var --sharedstatedir=/usr/com --mandir=/usr/share/man --infodir=/usr/share/info --cache-file=../config.cache --with-config-file-path=/etc --with-config-file-scan-dir=/etc/php.d --enable-force-cgi-redirect --disable-debug --enable-pic --disable-rpath --enable-inline-optimization --with-bz2 --with-db4=/usr --with-curl --with-exec-dir=/usr/bin --with-freetype-dir=/usr --with-png-dir --with-gd --enable-gd-native-ttf --without-gdbm --with-gettext --with-ncurses=shared --with-gmp --with-iconv --with-jpeg-dir --with-openssl --with-png --with-pspell --with-xml --with-expat-dir=/usr --with-dom=shared,/usr --with-dom-xslt=/usr --with-dom-exslt=/usr --with-xmlrpc=shared --with-pcre-regex=/usr/lib64 --with-zlib --with-layout=GNU --enable-bcmath --enable-exif --enable-ftp --enable-magic-quotes --enable-sockets --enable-sysvsem --enable-sysvshm --enable-track-vars --enable-trans-sid --enable-yp --enable-wddx --with-pear=/usr/share/pear --with-imap --with-imap-ssl --with-kerberos --with-ldap=shared --with-mysql --with-mysqli --enable-dom --with-pgsql=shared --with-snmp=shared,/usr --with-snmp=shared --enable-ucd-snmp-hack --with-unixODBC=shared,/usr --enable-memory-limit --enable-shmop --enable-calendar --enable-dbx --enable-dio --enable-mbstring=shared --enable-mbstr-enc-trans --enable-mbregex --with-mime-magic --enable-dbase --with-apxs2=/usr/sbin/apxs
but nothing , the best result which I got is:
"MYSQL_MODULE_TYPE" will be "builtin" and not "external"
and I must have "MYSQL_MODULE_TYPE" which is "external" and not "builtin"
I already opened a BUG report regarding this matter at the following link: