nginx编译出错:make[1]: *** [/usr/local/ssl/.openssl/include/openssl/ssl.h] Error 127
原创
©著作权归作者所有:来自51CTO博客作者sugar黑黑的原创作品,请联系作者获取转载授权,否则将追究法律责任
因为安全原因,需要升级nginx
在编译nginx-1.22.0时,出现以下错误:
$ sudo make
make -f objs/Makefile
make[1]: Entering directory `/data/soft/nginx-1.22.0'
cd /usr/local/ssl \
&& if [ -f Makefile ]; then make clean; fi \
&& ./config --prefix=/usr/local/ssl/.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/ssl/.openssl/include/openssl/ssl.h] Error 127
make[1]: Leaving directory `/data/soft/nginx-1.22.0'
make: *** [build] Error 2
很多时候,尤其是编译安装软件的时候,遇到类似的问题,我都脑阔疼。。。
但问题还是要解决的
这个问题是关于openssl的,因为还是因为之前漏洞问题,需要针对openssl进行升级,因此openssl升级到了OpenSSL 1.1.1n 15 Mar 2022
不知道是不是因为配置的原因,在configure的时候没有找到对应的openssl配置,因此手动进行指定--with-openssl=/usr/local/ssl
在接下来make的时候,出现了上面提到的错误
显然/usr/local/ssl/.openssl/include/openssl/ssl.h中/usr/local/ssl/目录下是没有.openssl目录的
在/data/soft/nginx-1.22.0/auto/lib/openssl/目录下(也就是编译的你敢信对应的openssl目录下),文件conf中记录了相关的配置,因此只需要修改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_LIBS="$CORE_LIBS $NGX_LIBPTHREAD"
中$OPENSSL/后的.openssl删除即可,修改之后的如下所示:
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"
CORE_LIBS="$CORE_LIBS $NGX_LIBPTHREAD"
然后重新make即可
或者重新./configure,然后make即可解决该问题。