98,203
社区成员
发帖
与我相关
我的任务
分享
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,完成后再次执行上述命令
效果如下: