nginx 编译安装1.17.3版本,添加openssl参数报错问题解决
admin
2023-03-12 03:42:02
0

背景

    最近在升级nginx1.14.1到nginx1.17.3版本时,发现了一个openssl的报错,记录一下问题的发生以及解决过程,供大家参考。


问题

    升级nginx时,我按照惯例,使用原版本的编译参数,来进行1.17.3新版本的编译,如下:

# /usr/local/nginx/sbin/nginx -V
取得编译参数:
--prefix=/usr/local/nginx --with-http_ssl_module --with-openssl=/usr/local/openssl --with-http_stub_status_module --with-http_dav_module --with-http_realip_module --with-http_gzip_static_module --with-http_v2_module

     利用旧版本的编译参数来编译新版本nginx,make的时候,发现出现了错误,操作与信息如下:

# tar -zxvf nginx-1.17.3.tar.gz
# cd nginx-1.17.3
# ./configure --prefix=/usr/local/nginx --with-http_ssl_module --with-openssl=/usr/local/openssl --with-http_stub_status_module --with-http_dav_module --with-http_realip_module --with-http_gzip_static_module --with-http_v2_module
# make
make -f objs/Makefile
make[1]: Entering directory `/root/soft/nginx-1.17.3'
cd /usr/local/openssl \
&& if [ -f Makefile ]; then make clean; fi \
&& ./config --prefix=/usr/local/openssl/.openssl no-shared no-threads  \
&& make \
&& make install_sw LIBDIR=lib
/bin/sh: line 2: ./config: No such file or directory
make[1]: *** [/usr/local/openssl/.openssl/include/openssl/ssl.h] Error 127
make[1]: Leaving directory `

    从报错信息上看,可以看到编译是openssl相关的组件报错了,可能是“--with-openssl=/usr/local/openssl” 这个参数导致。这里提到了“/usr/local/openssl/.openssl/include/openssl/ssl.h”这个文件,我尝试去找这个文件,发现文件找不到:(/usr/local/openssl是我自己安装的openssl)

# ll /usr/local/openssl/.openssl/
ls: cannot access /usr/local/openssl/.openssl/: No such file or directory

    可以发现.openssl这个目录本身是不存在的,应该是nginx 1.17.3版本编译的时候默认去找了“/usr/local/openssl/.openssl/”这个目录,所以导致了make失败。


解决

     发现了问题可能的原因后,尝试修改一下nginx1.17.3添加openssl模块时候的相关编译信息(auto/lib/openssl/conf):

# vi 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"
            
//在该文件中,看到openssl的core相关目录,都被添加上了.openssl这级目录,尝试修改目录信息,去除.openssl这级目录:   
# more auto/lib/open/ssl
            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"

      修改完auto/lib/openssl/conf的信息之后,重新编译安装nginx1.17.3,即可正常编译安装成功。

# make clean
# ./configure --prefix=/usr/local/nginx --with-http_ssl_module --with-openssl=/usr/local/openssl --with-http_stub_status_module --with-http_dav_module --with-http_realip_module --with-http_gzip_static_module --with-http_v2_module
# make && make install


相关内容

热门资讯

台风“红霞”逼近,揭阳全力筑牢... 7月25日9时,省防汛防旱防风总指挥部将防风Ⅲ级应急响应提升为防风Ⅱ级应急响应。台风“红霞”正以25...
原创 王... 王虹夺得数学界的诺贝尔奖——菲尔兹奖。她的导师、母校、同学等等,都成为了全网讨论的对象。 而她的导师...
电池技术对二手车残值影响大吗? 随着新能源汽车市场的迅猛扩张,潜在购车者在关注新车性能的同时,也越来越重视后续流通环节的价值表现。其...
韩国一监狱百发子弹下落不明,已... 【环球网报道 记者 姜蔼玲】据韩联社援引韩国法律界7月26日消息,针对大田一所监狱100发子弹下落不...
Anthropic发布Opus... Anthropic正式发布Claude Opus 5人工智能模型。官方宣称,该模型在智能水平接近前沿...
从菲尔兹奖看广东的“育才密码” □李妹妍 7月23日,2026年国际数学家大会传来喜讯,中国籍学者邓煜、王虹双双摘得国际数学界最高荣...
神舟二十三号乘组太空之旅满两月... 神二十三号乘组朱杨柱、张志远、黎家盈在轨已满两月,空间站内各项科学实(试)验进展顺利。上周,三名航天...
紧张关系进一步升级,巴西外交部... 【环球网报道】美国《纽约时报》当地时间25日报道称,据美巴两国官员透露,巴西政府阻止了一个美国代表团...
泽连斯基:俄拟再招募3万朝鲜士... 据凤凰卫视报道,乌克兰总统泽连斯基7月25日声称,俄罗斯打算再向朝鲜招募3万名士兵,以支援俄军对乌克...
警察涉嫌猥亵他人,切莫等被害人... 针对媒体报道民警牛某某涉嫌猥亵他人一事,亳州市公安局发布情况通报表示,已“立即成立调查组,全面开展调...