首先下载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