设为首页 收藏本站
查看: 915|回复: 0

[经验分享] suse编译apache

[复制链接]

尚未签到

发表于 2018-11-29 08:59:51 | 显示全部楼层 |阅读模式
刚毕业!来到一家小公司,完全没有经验的我,老大叫我先学会在suse 64位系统下安装  mysql_apache+php+zend!! 而且要全部编译32位的!!之前也没有听说过什么64位32位,现在自己亲身编译过之后才发现!非常痛苦。为了记录我这个菜鸟的成长。写了这个文档。希望有相同遭遇的同学可以参考一下。(

以上3个软件下所有依赖库全部跟着一起安装成32bit


rpm -qa|egrep "(freetype|xml2|jpeg|png|gd|zlib|mcrypt)"|grep 32bit
                         i.              zlib-32bit-1.2.3-106.34
                         ii.              freetype2-32bit-2.3.7-25.8
                         iii.              libxml2-32bit-2.7.1-10.8
                         iv.              libpng12-0-32bit-1.2.31-5.10
                         v.              zlib-devel-32bit-1.2.3-104.137
                         vi.              libpng-devel-32bit-1.2.31-4.23
检查是否安装好了各种依赖库
Ps: 全部源程序放在/usr/local/src      编译后的程序放在/usr/local/***
全部./configure参数前加-m32编译:
CC="gcc" CFLAGS="-O3 -m32" CXXFLAGS="-O3 -m32" \
./configure  \\这里加你自己需要的编译功能

安装心得
suse linux 64bit 下编译  这些软件绝对是件很痛苦的事,linux下的安装依赖条件太多,而且又要编译32位的

让我郁闷很久的错误:

以上有一些依赖库虽然用的是源码编译但是最后还是抱错显示
*******.h not found(头文件没找到)    最后只能打上系统光盘上带的***-devel.rpm !但是又因为要32bit!
所以有得上网去下载32bit devel包方可解决

  make: ./libtool: Command not found
  make: *** [jcapimin.lo] Error 127

解决办法:
  whereis libtool   //找到libtool所在地,直接把libtool拷贝到当前文件夹!比如找到/usr/bin/libtool ,执行以下命令
  cp /usr/bin/libtool .

然后make顺利通过

------------64bit/32bit兼容问题-------

64linux系统下编译文件时,经常会碰到以下错误提示:

relocation R_X86_64_32 can not be used when making a shared object; recompile with -fPIC

出现以上错误提示,只需要在Makefile里找到 CFLAGS = xxx , 然后在后面加上 -fPIC即可解决。
   
:经典抱错
lo sapi/apache2handler/php_functions.lo main/internal_functions.lo -lcrypt -lcrypt -lrt -lmysqlclient -lmcrypt -lltdl -lfreetype
-lpng -lz -ljpeg -lz -lresolv -lm -ldl -lnsl -lxml2 -lz -lm -lxml2 -lz -lm -lmysqlclient -lz -lcrypt -lnsl -lm -lmysqlclient
-lz -lcrypt -lnsl -lm -lxml2 -lz -lm -lcrypt -lxml2 -lz -lm -lxml2 -lz -lm -lxml2 -lz -lm -lcrypt  -o libphp5.la
/usr/local/lib/libmcrypt.so: could not read symbols: File in wrong format
collect2: ld returned 1 exit status
make: *** [libphp5.la] Error 1    ///明明安装了libmycrpt 32bit!但是却抱错,打开MakeFile一看,原来里面查找libmycrypt.so路径错误,去了lib64函数库找libmcrypt, 而我们编译的是32位的!所以需要32位的libmcrypt.
打开makefile!寻找-lcrypt(lcrypt=libcrypt) 错误路径显示/usr/local/lib64,改成/usr/local/lib/  因为编译的是32bit系统

64bit  suse linux下编译这套软件,主要问题集中在   32bit/64bit 间的兼容问题
打开Makfile 文件在
EXTRA-LIBS=*****************把写有libmycrypt.so地方改成那个32bit   /usr/lib 路径
   
还有一个错误也是很常见
usr/bin/ld: skipping incompatible /usr/lib64/libmysqlclient.a when searching for -lmysqlclient
/usr/bin/ld: skipping incompatible /usr/lib64/libmysqlclient.a when searching for –lmysqlclient  

  因为我们编译的是32bit 软件!错误信息显示在lib64函数库里寻找  所要的东西
解决办法和上面相同
必要时    grep –n –r “要找的文件” .   寻找这里源码包里含有这个文件名字的文件!改一下路径
ps:当源码下的有很多子目录!所以有很多makfile!一个一个改不太实际。
可以把错误信息里需要的***.so!到/usr/lib里复制到 /usr/lib64!而把原本lib64的那个***.so暂时改一下名字。(可能lib64里需要的某些***.so里!usr/lib里面没。这样你得检查下你的zlib有没有安装!记得也是要32bit的)





运维网声明 1、欢迎大家加入本站运维交流群:群②:261659950 群⑤:202807635 群⑦870801961 群⑧679858003
2、本站所有主题由该帖子作者发表,该帖子作者与运维网享有帖子相关版权
3、所有作品的著作权均归原作者享有,请您和我们一样尊重他人的著作权等合法权益。如果您对作品感到满意,请购买正版
4、禁止制作、复制、发布和传播具有反动、淫秽、色情、暴力、凶杀等内容的信息,一经发现立即删除。若您因此触犯法律,一切后果自负,我们对此不承担任何责任
5、所有资源均系网友上传或者通过网络收集,我们仅提供一个展示、介绍、观摩学习的平台,我们不对其内容的准确性、可靠性、正当性、安全性、合法性等负责,亦不承担任何法律责任
6、所有作品仅供您个人学习、研究或欣赏,不得用于商业或者其他用途,否则,一切后果均由您自己承担,我们对此不承担任何法律责任
7、如涉及侵犯版权等问题,请您及时通知我们,我们将立即采取措施予以解决
8、联系人Email:admin@iyunv.com 网址:www.yunweiku.com

所有资源均系网友上传或者通过网络收集,我们仅提供一个展示、介绍、观摩学习的平台,我们不对其承担任何法律责任,如涉及侵犯版权等问题,请您及时通知我们,我们将立即处理,联系人Email:kefu@iyunv.com,QQ:1061981298 本贴地址:https://www.yunweiku.com/thread-640980-1-1.html 上篇帖子: java.lang.ClassNotFoundException: org.apache.commons.dbcp.BasicDataSource的解决方法 下篇帖子: 启动APACHE出现“error while loading shared libraries: libiconv.so.2”
您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

扫码加入运维网微信交流群X

扫码加入运维网微信交流群

扫描二维码加入运维网微信交流群,最新一手资源尽在官方微信交流群!快快加入我们吧...

扫描微信二维码查看详情

客服E-mail:kefu@iyunv.com 客服QQ:1061981298


QQ群⑦:运维网交流群⑦ QQ群⑧:运维网交流群⑧ k8s群:运维网kubernetes交流群


提醒:禁止发布任何违反国家法律、法规的言论与图片等内容;本站内容均来自个人观点与网络等信息,非本站认同之观点.


本站大部分资源是网友从网上搜集分享而来,其版权均归原作者及其网站所有,我们尊重他人的合法权益,如有内容侵犯您的合法权益,请及时与我们联系进行核实删除!



合作伙伴: 青云cloud

快速回复 返回顶部 返回列表