编译nginx时openssl报错src/event/ngx_event_openssl.c:954

羌俊恩 社区创始人
运维领域优质创作者
博客专家认证
2022-09-15 22:01:40

1、环境说明:

centos7.9 2009

Nginx 1.10.1

openssl 1.1.1q

2、Nginx编译命令执行过程报错:

执行后报错如下 

src/event/ngx_event_openssl.c: In function ‘ngx_ssl_dhparam’:
src/event/ngx_event_openssl.c:954:11: error: dereferencing pointer to incomplete type ‘DH’ {aka ‘struct dh_st’}
         dh->p = BN_bin2bn(dh1024_p, sizeof(dh1024_p), NULL);
           ^~
src/event/ngx_event_openssl.c: In function ‘ngx_ssl_connection_error’:
src/event/ngx_event_openssl.c:1941:21: error: ‘SSL_R_NO_CIPHERS_PASSED’ undeclared (first use in this function); did you mean ‘SSL_R_NO_CIPHERS_SPECIFIED’?
             || n == SSL_R_NO_CIPHERS_PASSED                          /*  182 */
                     ^~~~~~~~~~~~~~~~~~~~~~~
                     SSL_R_NO_CIPHERS_SPECIFIED
src/event/ngx_event_openssl.c:1941:21: note: each undeclared identifier is reported only once for each function it appears in
make[1]: *** [objs/Makefile:816: objs/src/event/ngx_event_openssl.o] Error 1
make[1]: Leaving directory '/root/nginx-1.10.1'
make: *** [Makefile:8: build] Error 2

 3、原因

相关经验表明:openssl 1.1.x 版本,导致与nginx API不一致所致,更换openssl为1.0.2k为默认版本;或者也可以使用1.1.0版本

wget http://www.openssl.org/source/openssl-1.1.0e.tar.gz

 

4、使用系统默认文件作为编译自查找,去除with-openssl=……选项,修改命令如下

 如果编译报错,尝试执行:yum -y install openssl openssl-devel make zlib zlib-devel gcc gcc-c++ libtool    pcre pcre-devel,完成后再次执行上述命令

效果如下:

 

 

...全文
4928 1 打赏 收藏 转发到动态 举报
AI 作业
写回复
用AI写文章
1 条回复
切换为时间正序
请发表友善的回复…
发表回复
CSDN-Ada助手 仙灵-活跃精灵 2023-01-13
  • 打赏
  • 举报
回复
您可以前往 CSDN问答-后端 发布问题, 以便更快地解决您的疑问

129,638

社区成员

发帖
与我相关
我的任务
社区描述
欢迎各位小伙伴积极活跃投稿,将日常IT打怪中遇到的问题,优秀解决方案,或自己的博客认为比较经典的文章分享到这里,共同营造一个悦享的问题库,Review及减少重复造车轮的无限循环,此致敬礼
devops经验分享开源 技术论坛(原bbs) 北京·西城区
社区管理员
  • 羌俊恩
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告

本社区:旨在推进运维云化知识库建设,为更多运维提供参考及经验交流;加入社区的同学,如果运维工作中遇到问题或最后得到解决,有劳凑空发帖,分享共建FAQ社区。

得到解决方案的同学,请积极为发帖的同学点赞、评论、能力范围内打赏激励。另外本社区采用游戏修仙角色作为鼓励,对不同贡献者授予对应“勋章”。

最后祝愿社区繁荣昌盛,此致敬礼!!!

试试用AI创作助手写篇文章吧