无法编译支持 SSL 的 nginx,未找到 OpenSSL

无法编译支持 SSL 的 nginx,未找到 OpenSSL

我正在尝试从源代码编译启用了 SSL 模块的 nginx。当我运行此命令时:

./configure --with-http_ssl_module

它会进行常规检查,查看是否所有东西都安装正确,然后弹出如下信息:

检查 OpenSSL 库...未找到

./configure: 错误:SSL 模块需要 OpenSSL 库。您可以不启用模块,或者将 OpenSSL 库安装到系统中,或者使用 --with-openssl= 选项通过 nginx 从源代码静态构建 OpenSSL 库。

我知道 OpenSSL 已经安装,因为当我安装时,openssl version我得到了OpenSSL 1.0.1 14 Mar 2012

所以我很困惑。我想也许 OpenSSL 没有安装在其默认位置,这就是 nginx 找不到它的原因,但我不知道它在哪里,因为它是服务器预装的。我怎样才能找到它在哪里?

该服务器正在运行 Ubuntu 12.04 LTS。

谢谢。

答案1

最有可能的是,您丢失了libssl-dev包裹。

但为什么不省去所有的麻烦,直接使用nginx 的 PPA

答案2

我使用以下命令为 nginx 获取 openssl:

https://ethitter.com/2016/06/nginx-openssl-1-0-2-http-2-alpn/

所有其他尝试要么没有成功,要么太笨重。

希望这对其他人有帮助...

答案3

如果你想检查 libssl 是否安装在正确的位置,你可以输入which openssl然后ldd /path/to/openssl

答案4

如果任何人在从源代码编译 nginx 时仍遇到 pcre 相关错误,请使用“--with-pcre”属性进行编译。并且,提供 pcre 路径时,不要提供安装路径。提供 pcre 软件路径。

  1. 使用以下方式安装 pcre

。/配置

制作

安装

然后,提供 pcre 源路径的路径。

./configure --prefix=/path/to/nginxToBeInstalled/mayBeInOpt/nginx-1.16.0/ --with-openssl=/path/to/installed/openssl-1.1.1b/ --with-pcre=/path/to/your/downloaded/extracted/pcre-8.42

就我而言,

./configure --prefix=/opt/nginx-1.16.0/ --with-openssl=/opt/openssl-1.1.1b/ --with-pcre=/media/username/personal/Software/pcre-8.42

谢谢。

相关内容