Description: ------------ Install PHP,,has eror after type make Reproduce code: --------------- ./configure --prefix=/usr/local/php-5.1.4 --with-apxs2=/usr/local/apache2/bin/apxs --enable-ftp --with-mysql-dir=/usr/local/mysql-standard-5.0.21-linux-i686 --with-png-dir=/usr/local/libpng- 1.2.8-config --with-zlib-dir=/usr/local/zlib-1.2.2 --with-gd --disable-libxml --disable-dom -- disable-simplexml --disable-xml --disable-pear --disable-xmlreader --disable-xmlwriter Actual result: -------------- ********** after type make have this error ************* /usr/bin/ld: /usr/local/lib/libz.a(compress.o): relocation R_X86_64_32 against `a local symbol' can not be used when making a shared object; recompile with -fPIC /usr/local/lib/libz.a: could not read symbols: Bad value collect2: ld returned 1 exit status make: *** [libphp5.la] Error 1
Seems to be a problem with zlib. Maybe you should try to install the newest zlib (1.2.3) by hand and try again.
Zlib is ok no problem... <php> [root@palungjit zlib-1.2.3]# ./configure Checking for gcc... Building static library libz.a version 1.2.3 with gcc. Checking for unistd.h... Yes. Checking whether to use vs[n]printf() or s[n]printf()... using vs[n]printf() Checking for vsnprintf() in stdio.h... Yes. Checking for return value of vsnprintf()... Yes. Checking for errno.h... Yes. Checking for mmap support... Yes. [root@palungjit zlib-1.2.3]# make gcc -O3 -DUSE_MMAP -c -o example.o example.c gcc -O3 -DUSE_MMAP -c -o adler32.o adler32.c gcc -O3 -DUSE_MMAP -c -o compress.o compress.c gcc -O3 -DUSE_MMAP -c -o crc32.o crc32.c gcc -O3 -DUSE_MMAP -c -o gzio.o gzio.c gcc -O3 -DUSE_MMAP -c -o uncompr.o uncompr.c gcc -O3 -DUSE_MMAP -c -o deflate.o deflate.c gcc -O3 -DUSE_MMAP -c -o trees.o trees.c gcc -O3 -DUSE_MMAP -c -o zutil.o zutil.c gcc -O3 -DUSE_MMAP -c -o inflate.o inflate.c gcc -O3 -DUSE_MMAP -c -o infback.o infback.c gcc -O3 -DUSE_MMAP -c -o inftrees.o inftrees.c gcc -O3 -DUSE_MMAP -c -o inffast.o inffast.c ar rc libz.a adler32.o compress.o crc32.o gzio.o uncompr.o deflate.o trees.o zutil.o inflate.o infback.o inftrees.o inffast.o gcc -O3 -DUSE_MMAP -o example example.o -L. libz.a gcc -O3 -DUSE_MMAP -c -o minigzip.o minigzip.c gcc -O3 -DUSE_MMAP -o minigzip minigzip.o -L. libz.a [root@palungjit zlib-1.2.3]# make install cp zlib.h zconf.h /usr/local/include chmod 644 /usr/local/include/zlib.h /usr/local/include/zconf.h cp libz.a /usr/local/lib cd /usr/local/lib; chmod 755 libz.a cd /usr/local/lib; if test -f libz.so.1.2.3; then \ rm -f libz.so libz.so.1; \ ln -s libz.so.1.2.3 libz.so; \ ln -s libz.so.1.2.3 libz.so.1; \ (ldconfig || true) >/dev/null 2>&1; \ fi cp zlib.3 /usr/local/share/man/man3 chmod 644 /usr/local/share/man/man3/zlib.3 </php>
I use Fedora & Linux, Intel 64 bit, 3.2 Ghz x 2 4GB Ram. it is something with X64_X86... but donlt know how to fix..
falko you are right... thank you it is something with configure in Zlib *************** This problem is solved this is not PHP problem it something to do with Zlib ---------------------------- I add this in to Make file in Zlib CFLAGS=-fPIC and save it and configure Zlib again by use this command ./configure --libdir=/usr/lib64 ........... it work now
Because in PHP Makefile doesn't complatible with 64 Bits processor 64 Bits processor use "/usr/lib64" instead of "/usr/local/lib" *********************************** I found solution to fix this peoblem now my problem is solved *********************************** What i did is after configure and open Makefile to edit Makefile look example my configure ./configure --libdir=/usr/lib64 --prefix=/usr/local/php-5.1.4 --with-apxs2=/usr/local/apache2/bin/apxs --enable-ftp --with-mysql-dir=/usr/local/mysql --with-libxml-dir=/usr/local/libxml2-2.6.24 --with-png-dir=/usr/local/libpng-1.2.8-config --with-zlib-dir=/usr/local/zlib-1.2.3/ --with-gd --with-jpeg-dir=/usr/local/lib64/ --with-freetype-dir=/usr/local/freetype-2.2.1 open Makefile find for "/usr/local/lib" and replace with "/usr/lib64" ********* here this is code after replace 4 lines EXTRA_LDFLAGS = -avoid-version -module -L/usr/lib64 -L/usr/local/zlib-1.2.3//lib EXTRA_LDFLAGS_PROGRAM = -L/usr/lib64 -L/usr/local/zlib-1.2.3//lib NATIVE_RPATHS = -Wl,-rpath,/usr/lib64 -Wl,-rpath,/usr/local/zlib-1.2.3//lib PHP_LDFLAGS = -L/usr/lib64 -L/usr/local/zlib-1.2.3//lib PHP_RPATHS = -R /usr/lib64 -R /usr/local/zlib-1.2.3//lib ******** type make make install ..done...
--with-mysql-dir=/usr/local/mysql instead of --with-mysql=/usr/local/mysql ******************************** cannot fix, after install will cannot connect to my sql by using PHP you will see this error "Fatal error: Call to undefined function mysql_connect() " and looking in info.php cannot see mysql too...