You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

Ubuntu 22.04编译Nginx时因OpenSSL 3.0弃用API报错的解决方案咨询

Ubuntu 22.04编译Nginx时因OpenSSL 3.0弃用API报错的解决方案咨询

Hey there, let's figure out how to fix that OpenSSL 3.0 deprecation error you're running into when compiling Nginx 1.18.0 on Ubuntu 22.04. Here are a few solid solutions you can try right away:

  • 升级Nginx到兼容OpenSSL 3.0的版本
    Nginx 1.18.0是比较旧的稳定版,它的代码还依赖OpenSSL 3.0已经弃用的ENGINE相关API。最彻底的解决办法是切换到Nginx 1.20.x及以上版本(比如当前的稳定版1.24.x),这些新版本已经针对OpenSSL 3.0做了适配,编译时不会再出现这个报错。你可以获取对应新版本的源码包,调整configure参数后重新编译即可。

  • 忽略弃用API的编译警告(不升级版本的临时方案)
    如果暂时无法升级Nginx,你可以修改configure命令中的--with-cc-opt参数,添加-Wno-error=deprecated-declarations,告诉编译器不要把这个弃用警告当作错误处理。修改后的该参数部分如下:

    --with-cc-opt='-g -O2 -ffile-prefix-map=/build/nginx-zctdR4/nginx-1.18.0=. -flto=auto -ffat-lto-objects -flto=auto -ffat-lto-objects -fstack-protector-strong -Wformat -Werror=format-security -fPIC -Wdate-time -D_FORTIFY_SOURCE=2 -Wno-error=deprecated-declarations'
    

    运行更新后的configure命令,再执行make,编译器就会跳过这个错误继续完成编译。

  • 指定编译时使用OpenSSL 1.1.x版本
    Ubuntu 22.04默认搭载OpenSSL 3.0,但你可以安装旧版OpenSSL 1.1.x的开发库,让Nginx编译时使用这个版本。首先安装依赖包:

    sudo apt-get install libssl1.1 libssl-dev=1.1.1n-0ubuntu1.10
    

    然后在configure命令中添加--with-openssl=/path/to/openssl-1.1.x(替换为你的OpenSSL 1.1.x安装路径,如果是系统包安装,可能无需额外指定路径)。不过这个方法可能会引发后续的依赖冲突风险,优先级不如升级Nginx。

个人更推荐第一个方案——升级到新版Nginx稳定版,既能解决当前报错,还能获得最新的安全补丁和功能更新。

备注:内容来源于stack exchange,提问作者konstantinos Dms

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.04.21 11:48:17