资源预览内容
第1页 / 共6页
第2页 / 共6页
第3页 / 共6页
第4页 / 共6页
第5页 / 共6页
第6页 / 共6页
亲,该文档总共6页全部预览完了,如果喜欢就下载吧!
资源描述
Cannot use an external APR with the bundled APR-util 错误解决apache2.0.x 与 apache2.2.x 在 apr 上有本质的区别,前者为依赖公用 apr,后者依赖于自身的 apr。一般前者也就是2.0.x 的编译基本上没有 apr 方面的问题,除非,在编译前,安装了非2.0.x所需的 apr,如果是这样,则需要将已经安装的 apr 去除,然后再编译。如果是后者也出现关于 apr 的问题,则将安装前的 apr 去除后,在编译 apache2.2.x 自身的 apr,在 srclib 目录中。cd httpd-2.2.3安装 APRcd srclib/apr#./configure -prefix=/路径/apr#make#make install安装 APR-utilcd srclib/apr-util#./configure -prefix=/路径/apr-util -with-apr=/路径/apr#make#make install然后再 configure apache注意的是 在参数上一定要指定路径 -with-apr=/路径/apr -with-apr-util=/路径/apr-util#make#make install编译 LAMP 环境常见错误不知道大家有没有遇到在 X64 RedHat5 或者 RedHat4 下.编译安装 PHP 环境的时候. 安装了libxml,zlib,jpeg ,libpng ,freetype,libart_lgpl ,gettext. 到编译 GD 库的时候出错.configure 的参数是./configure -prefix=/usr/local/gd2 -with-zlib=/usr/local/zlib2/ -with-png=/usr/local/libpng2/ -with-jpeg=/usr/local/jpeg6/ -with-freetype=/usr/local/freetype2/ -with-libart=/usr/local/libart/ -with-gettext=/usr/local/gettext/ -with-libxml=/usr/local/libxml2-错误如下:/usr/bin/ld: /usr/local/jpeg6/lib/libjpeg.a(jcapimin.o): relocation R_X86_64_32 against a local symbol can not be used when making a shared object; recompile with -fPIC/usr/local/jpeg6/lib/libjpeg.a: could not read symbols: Bad valuecollect2: ld returned 1 exit statusmake2: * libgd.la 错误1make2: Leaving directory /data/soft/php/gd-2.0.35make1: * all-recursive 错误1make1: Leaving directory /data/soft/php/gd-2.0.35make: * all 错误 2到网上搜索,很多网友都说只需要修改 Makefilevi Makefile找到 CFLAGS= -O2 -I$(srcdir)在后面加入-fPIC,即变成 CFLAGS= -O2 -I$(srcdir) -fPIC这样就可以继续编译了但我在 gd-2.0.35 gd-2.0.33 以及 gd-2.0.36RC1 的 Makefile 里头 ,都只找到 CFLAGS= -O2 并没有后边的 -I$(srcdir)故此就算把-fPIC 加上了,也毫无作用。-开始着手研究,根据错误提示,应该是跟 jpeg6 有关,于是尝试使用另外方式对 jpeg6 进行编译。原本网上最多的编译 jpeg6 的方法是 (注 jpeg6下载地址 http:/www.ijg.org/)-# tar -zxf jpegsrc.v6b.tar.gz# cd jpeg-6b/# ./configure -prefix=/usr/local/jpeg6# make# make install-lib# make install在32位上以这种方式安装是没问题的.但64的话,或许要改一改,如下:-# tar -zxf jpegsrc.v6b.tar.gz# cd jpeg-6b/# ./configure -prefix=/usr/local/jpeg6/ -enable-shared -enable-static# make# make install-但又会出个问题! 大多数环境在用这种方式编译 jpeg6的时候都会出错(有够烦的,简直是一波三折), 提示make: ./libtool: Command not foundmake: * jcapimin.lo Error 127-错误分析:由于 libtool 版本过低导致的,重新下载新版本的 libtool 以默认方式安装.下载地址:ftp:/ftp.gnu.org/gnu/libtool/也不用下载太新,1.5.xx 既可。执行以下命令:# tar zxvf libtool-1.5.26.tar.gz# cd libtool-1.5.26# ./configure# make# make install(最好重新启动一下服务器,重新加载环境以确保正常 )然后进入 jpeg-6b 的源码目录,然后执行以下步骤,切记!# cp /usr/local/share/libtool/config.sub ./# cp /usr/local/share/libtool/config.guess ./# ./configure -prefix=/usr/local/jpeg6/ -enable-shared -enable-static# make# make install-好了!这下尝试执行 GD 的 configure , 虽然依然是 libgd.la 错误,但提示的已经不是 jpeg6 的问题了。这下是 freetype2 的问题了,如下:-/usr/bin/ld: /usr/local/freetype2/lib/libfreetype.a(ftinit.o): relocation R_X86_64_32 against tt_driver_class can not be used when making a shared object; recompile with -fPIC/usr/local/freetype2/lib/libfreetype.a: could not read symbols: Bad valuecollect2: ld returned 1 exit statusmake2: * libgd.la 错误1make2: Leaving directory /data/soft/php/gd-2.0.35make1: * all-recursive 错误1make1: Leaving directory /data/soft/php/gd-2.0.35make: * all 错误 2-着看上去是 freetype2 出错但其实是 zlib 安装问题原本的编译方法就直接是:-# tar zxvf zlib-1.2.3.tar.gz# cd zlib-1.2.3#./configure -prefix=/usr/local/zlib2/ & make & make install在32位上以这种方式安装是没问题的.但64的话,要改一改,如下-解决方法:重新编译安装 zlib,步骤如下:(在重新编译之前记得要把之前安装在 /usr/local/zlib2里头的文件都完全删除)# tar -zxvf zlib-1.2.3.tar.gz# cd zlib-1.2.3#./configure#vi Makefile找到 CFLAGS=-O3 -DUSE_MMAP在后面加入-fPIC,即变成 CFLAGS=-O3 -DUSE_MMAP -fPIC# make# make install-然后再重新编译 freetype (在重新编译之前记得要把之前安装在/usr/local/freetype 里头的文件都完全删除)#./configure -prefix=/usr/local/freetype2/ & make & make installZlib 跟 freetype 的安装一定要按照顺序,不然解决不了问题.-行了!这下子 freetype 也没问题了!但 GD 的编译还是不过,错误如下:/usr/bin/ld: /usr/local/libpng2/lib/libpng12.a(libpng12_la-png.o): relocation R_X86_64_32 against a local symbol can not be used when making a shared object; recompile with -fPIC/usr/local/libpng2/lib/libpng12.a: could not read symbols: Bad valuecollect2: ld returned 1 exit statusmake2: * libgd.la 错误1make2: Leaving directory /data/soft/php/gd-2.0.35make1: * all-recursive 错误1make1: Leaving directory /data/soft/php/gd-2.0.35make: * all 错误 2-libpng 的问题,我们改一改编译以及安装的方式。跟上边2个一样,要先把/usr/local/libpng2 都删干净,然后再重新编译安装。编译安装 libpng#tar zxvf libpng-1.2.34.tar.gz#cd libpng-1.2.34#cp scripts/makefile.gcmmx makefile#./configure -prefix=/usr/local/libpng2/# vi Makefile找到 CFLAGS = -g -O2 后边加上 -fPIC# make & make install-好了,真像玩游戏过三关的样子.把最后这 libpng
网站客服QQ:2055934822
金锄头文库版权所有
经营许可证:蜀ICP备13022795号 | 川公网安备 51140202000112号