【总结】nginx源码编译安装报错./configure: error: SSL modules require the OpenSSL library.

问题现象

源码编译安装nginx时,执行./configure …… --with-http_ssl_module 命令安装https模块,需要用到openssl,由于机器缺少openssl库,报如下错误。

……
checking for openat(), fstatat() ... found
checking for getaddrinfo() ... found
checking for PCRE2 library ... not found
checking for PCRE library ... found
checking for PCRE JIT support ... found
checking for OpenSSL library ... not found
checking for OpenSSL library in /usr/local/ ... not found
checking for OpenSSL library in /usr/pkg/ ... not found
checking for OpenSSL library in /opt/local/ ... not found

./configure: error: SSL modules require the OpenSSL library.
You can either do not enable the modules, or install the OpenSSL library
into the system, or build the OpenSSL library statically from the source
with nginx by using --with-openssl=<path> option.

排查分析

因为机器不能连接外网,采用离线安装rpm 包的方式,安装openssl
从网上下载了:
openssl-1.0.2k-26.el7_9.x86_64.rpm
openssl-devel-1.0.2k-26.el7_9.x86_64.rpm

使用以下命令安装:
sudo rpm -ivh openssl-1.0.2k-26.el7_9.x86_64.rpm --nodeps --force
sudo rpm -ivh openssl-devel-1.0.2k-26.el7_9.x86_64.rpm --nodeps --force

openssl安装后,openssl命令正常。但是执行./configure …… --with-http_ssl_module 还是报一样的错误。

在网上搜罗了一堆方法,改各种文件,都没有生效。

此时,严重怀疑是使用rpm 离线安装openssl库时,由于使用了–nodeps --force 这两个指令,忽略了openssl的依赖库,强制安装。导致openssl某些依赖,没有安装成功,从而导致openssl不可用。

于是再次认真阅读提示信息: or build the OpenSSL library statically from the source with nginx by using --with-openssl= option.

那就尝试一下吧,使用openssl源码静态库的方式来编译nginx。

解决方法

从openssl官网下载源码,使用–with-openssl= 的方式来编译安装。
下载地址:https://www.openssl.org/source/old/index.html

本人使用的centos 7,下载的是1.1.0k这个版本。
在这里插入图片描述
下载后解压,假如此处解压的目录是:/data/openssl-1.1.0k
那么执行:./configure --prefix=/data/nginx --with-http_stub_status_module --with-http_ssl_module --with-openssl=/data/openssl-1.1.0k
以上命令,可顺利通过。

接下来,执行:make && make install 就顺利编译通过了。

总结

  • 原因:可能是使用rpm 离线安装openssl库时,由于使用了–nodeps --force 这两个指令,忽略了openssl的依赖库,强制安装。导致openssl某些依赖,没有安装成功,从而导致openssl不可用。
  • 解决方法
    1)下载openssl 源码包
    2)解压到指定目录/data/openssl-1.1.0k
    3)执行./configure 时,添加–with-openssl=/data/openssl-1.1.0k参数

至此,问题成功解决。

相关推荐

  1. Nginx安装

    2024-07-18 20:02:01       22 阅读
  2. Linux环境FFTW编译 | WSL编译解决

    2024-07-18 20:02:01       47 阅读
  3. ubuntu安装nginx

    2024-07-18 20:02:01       36 阅读
  4. LInux、编译安装

    2024-07-18 20:02:01       46 阅读

最近更新

  1. docker php8.1+nginx base 镜像 dockerfile 配置

    2024-07-18 20:02:01       70 阅读
  2. Could not load dynamic library ‘cudart64_100.dll‘

    2024-07-18 20:02:01       74 阅读
  3. 在Django里面运行非项目文件

    2024-07-18 20:02:01       62 阅读
  4. Python语言-面向对象

    2024-07-18 20:02:01       72 阅读

热门阅读

  1. 【Unity】RPG2D龙城纷争(十三)升级系统

    2024-07-18 20:02:01       27 阅读
  2. 使用 GO 和 Python 分别写爬虫的区别

    2024-07-18 20:02:01       21 阅读
  3. 数据库系统概论:数据库查询语言 SQL

    2024-07-18 20:02:01       22 阅读
  4. 017.自定义指纹浏览器-传参固定指纹(二)

    2024-07-18 20:02:01       18 阅读
  5. 【时时三省】单元测试 简介

    2024-07-18 20:02:01       23 阅读
  6. 正则表达式

    2024-07-18 20:02:01       22 阅读
  7. 框架

    框架

    2024-07-18 20:02:01      21 阅读