zoukankan      html  css  js  c++  java
  • debian9 下编译安装tengine2.2.1

    首先下载tengine的源码包,这个大家都会下载吧

    wget http://tengine.taobao.org/download/tengine-2.2.1.tar.gz

    然后解压缩

    tar zxf tengine-2.2.1.tar.gz

    开始编译安装

    cd tengine-2.2.1/

    我的编译参数如下

    ./configure --prefix=/usr/local/nginx/ --with-http_stub_status_module --with-http_ssl_module --with-http_realip_module --http-log-path=/data/logs/nginx/access.log --error-log-path=/data/logs/nginx/error.log

    首先需要安装GCC

    apt-get install gcc

    然后错误来了,提示没有pcre,那我们就安装pcre

    apt-get install libpcre3-dev

    然后继续编译,错误又来了,提示没有openssl,那我们安装openssl
    apt-get install libssl1.0.2 openssl,然后再编译,然后由报错,提示没有zlib

    我们安装zlib

    apt-get  install zlib1g-dev

    然后再编译,这次编译通过

    进行make
    报错了

    make[1]: ***[objs/src/event/ngx_event_openssl.o] Error 1

    make[1]: Leaving directory`/usr/local/nginx'

    make: *** [build] Error 2

    通过在网上查询资料得知,nginx不支持openssl1.0以上版本

    查询debian9 所有openssl版本

    apt-cache madison openssl

    没有1.1以下的

    这就坑爹了,apt安装的没有低于1.1的,怎么办呢,编译安装

    卸载掉以前安装的,apt-get remove libssl1.0.2 openssl

    然后执行一次清理 apt-get autoremove

    开始下载openssl的源码包

    wget https://www.openssl.org/source/openssl-1.0.2l.tar.gz

    ./config --prefix=/usr/local/openssl

    make

    make install

    等待安装完毕,重新编译一次nginx

    然后再make,又报错了

    make[1]: *** [/usr/local/ssl/.openssl/include/openssl/ssl.h] Error 127
    make[1]: Leaving directory `/usr/local/src/nginx-1.9.9'
    make: *** [build] Error 2

    这个原因是出错是因为Nginx在编译时并不能在/usr/local/ssl/.openssl/ 这个目录找到对应的文件,其实我们打开/usr/local/ssl/这个目录可以发现这个目录下是没有.openssl目录的,因此我们修改Nginx编译时对openssl的路径选择就可以解决这个问题了。

    因为/usr/local/openssl下根本没有.openssl这个文件夹,所以找不到

    解决办法

    打开nginx源文件下/root/tengine-2.2.1/auto/lib/openssl 的conf文件

    修改以下内容

    找到这么一段代码:
    CORE_INCS="$CORE_INCS $OPENSSL/.openssl/include"
    CORE_DEPS="$CORE_DEPS $OPENSSL/.openssl/include/openssl/ssl.h"
    CORE_LIBS="$CORE_LIBS $OPENSSL/.openssl/lib/libssl.a"
    CORE_LIBS="$CORE_LIBS $OPENSSL/.openssl/lib/libcrypto.a"
    CORE_LIBS="$CORE_LIBS $NGX_LIBDL"
    修改成以下代码:
    CORE_INCS="$CORE_INCS $OPENSSL/include"
    CORE_DEPS="$CORE_DEPS $OPENSSL/include/openssl/ssl.h"
    CORE_LIBS="$CORE_LIBS $OPENSSL/lib/libssl.a"
    CORE_LIBS="$CORE_LIBS $OPENSSL/lib/libcrypto.a"
    CORE_LIBS="$CORE_LIBS $NGX_LIBDL"
     然后再进行Nginx的编译安装即可

    这样就能找到了,重新编译,再make make install就没有出错了。

    以上问题解决方法参考了以下url,感谢源作者

    http://blog.csdn.net/qq_29461259/article/details/52609775

    http://blog.chinaunix.net/uid-2274226-id-5756596.html

  • 相关阅读:
    触发器
    突然的感慨
    最近接手一个asp老项目,运行了4,5年了
    导出sql语句相关问题
    PHP入门速成
    统一项目时间格式(DateTime.ParseExact使用)
    想法太多了就是三脚猫。
    个人习惯培养计划(转):以此为诫,努力提高自身素质。
    excel处理函数打包
    ASP.Net MVC探索之路 增加字符串长度范围校验Attribute
  • 原文地址:https://www.cnblogs.com/hh2737/p/7755035.html
Copyright © 2011-2022 走看看