如题所示,报错信息如下:

1
2
3
4
/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 `/usr/local/src/nginx-1.9.9‘
make: *** [build] Error 2

需要说明的是,我这里编译所使用的 Nginx 源码是 1.9.9 的。根据报错信息我们知道,出错是因为 Nginx 在编译时并不能在 /usr/local/ssl/.openssl/ 这个目录找到对应的文件,其实我们打开 /usr/local/ssl/ 这个目录可以发现这个目录下是没有.openssl 目录的,因此我们修改 Nginx 编译时对 openssl 的路径选择就可以解决这个问题了

解决方案

打开 nginx 源文件下的 /usr/local/src/nginx-1.9.9/auto/lib/openssl/conf 文件:

找到这么一段代码:

1
2
3
4
5
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"

修改成以下代码:

1
2
3
4
5
CORE_INCS="$CORE_INCS $OPENSSL/.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 的编译安装即可

本文地址 https://shaoshilei.com/2018-05/nginx-openssl.html