编译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,完成后再次执行上述命令

效果如下:

 

 

...全文
52 回复 打赏 收藏 举报
写回复
回复
切换为时间正序
请发表友善的回复…
发表回复
相关推荐
发帖
云享运维知识库

2.0w+

社区成员

欢迎各位小伙伴踊跃加入,将日常运维中遇到的问题贴出来,解决方案分享出来,或自己的博客关于运维的文章分享到这里,来一起营造一个运维的知识库,以提升运维工作更加高效快捷,减少重复造车轮的无限循环。
devopslinux开源 企业社区 北京·西城区
社区管理员
  • 羌俊恩
加入社区
帖子事件
创建了帖子
2022-09-15 22:01
社区公告

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

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

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