zoukankan      html  css  js  c++  java
  • ngnix编译遇到的问题.

    总结:先后遇到libz库文件没有正确的链接和pcre库文件没有正确的链接

    1./configure后提示需要zlib

    image

    2.locate zlib,系统中没有zlib的共享库so文件,但是有一些头文件,不在/usr/include或者/usr/local/include下,还是找zlib-dev.rpm开发包安装一下比较好

    3.看看 zlib-develxxx.rpm包的信息

    rpm -qpi zlib-devel-1.2.3-27.el6.x86_64.rpm

    image

    4.看看该包里头都含有什么文件

    rpm -qpl zlib-devel-1.2.3-27.el6.x86_64.rpm

    image

    5.查看该包的依赖关系

    rpm -qpR zlib-devel-1.2.3-27.el6.x86_64.rpm

    image

    如图需要zlib包,依赖里头含有的so共享库

    6.解压RPM文件看看

    mkdir tmp

    rpm2cpio /mnt/Packages/zlib-devel-1.2.3-27.el6.x86_64.rpm |cpio -div

    image

    7.在看看zlib-1.2.3xxx.rpm里头有什么

    rpm -qpl /mnt/Packages/zlib-1.2.3-27.el6.x86_64.rpm

    image

    8.查查系统里头是不是已经安装了libz.so

    image

    系统里头已经安装了,应该是安装oracle的时候安装上的

    9.系统自带的libz.so.1.2.3和zlib-1.2.3xxx.rpm中的libz.so.1.2.3大小比较.上面的是rpm,下面的是系统的

    image

    10.查看系统中自带的libz.so.1.2.3的SONAME:

    readelf -d /lib64/libz.so.1.2.3

    image

    11.编译zlib-dev-1.2.3..RPM释放出来的example.c看看,用gcc时,-lz指定连接libz共享库

    image

    12.报错:找不到zlibz库

    image

    13.看看缓存,缓存里头有

    image

    原因,库文件位置不对.默认搜索/usr/lib或者/usr/lib64

    14.解决办法:

    ln -sv /lib64/libz.so.1.2.3 /usr/lib64/libz.so

    15.再次编译

    成功编译出example可执行文件,执行example,成功!

    image

    16.再次回到ngnix源代码目录,执行./configure成功,没有提示zlib库问题

    image

    17.make,make install后运行nginx报错

    image

    18.检查nginx的共享库都有哪些:

    ldd –d nginx

    image

    19.检查libpcre.so现在系统的分布

    image

    ldconfig –v |grep pcre

    image

    20.原因如上,很明显是安装pcre后,库安装的位置为/usr/local/lib/*pcre*,而不是缺省的/usr/lib64

    在redhat 64位机器上, nginx可能读取的pcre文件为/lib64/libpcre.so.1文件.

    ln -s /usr/local/lib/libpcre.so.1 /lib64/ 

    image

    21.nginx正常运行,缺省情况下,./configure不加任何参数,则如图configure arguments=空

    image

  • 相关阅读:
    自动完成
    自动验证[2]
    自动验证[1]
    PHP算法
    用户请求服务器资源过程
    CURD 操作 [2]
    [转]PHP部分常见算法
    CURD 操作 [1]
    常用正则表达式集锦
    centos 6.4 FTP安装和配置
  • 原文地址:https://www.cnblogs.com/jjkv3/p/3822074.html
Copyright © 2011-2022 走看看