我正在尝试从源代码编译启用了 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 软件路径。
- 使用以下方式安装 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
谢谢。