Error nginx: [emerg] module "/usr/local/nginx/modules/ngx_http_vhost_traffic_status_module.so" is not binary compatible in /etc/nginx/nginx.conf:6
项目中遇到此问题,原因在于不同的系统中的特性对加载动态库有影响。
Your nginx binary is already installed through package system and you are only trying to build the module, right?
When building, nginx-module-vts seems to have a different signature than the signature of the existing binary.
The signature string looks like 8,4,8,0011111111010111001111111111111111
Looking at the nginx source, even if you specify the --with-compat(#define NGX_COMPAT 1) option, the singature can vary.
In conclusion, you will have to compile the dynamic module with the same configure options as installed nginx binary.
Thanks.
$ grep 'NGX_COMPAT' objs/ngx_auto_config.h
#ifndef NGX_COMPAT
#define NGX_COMPAT 1
$ vi src/core/ngx_module.c
177 if (ngx_strcmp(module->signature, NGX_MODULE_SIGNATURE) != 0) {
178 ngx_conf_log_error(NGX_LOG_EMERG, cf, 0,
179 "module \"%V\" is not binary compatible",
180 file);
181 return NGX_ERROR;
182 }
$ vi src/core/ngx_module.h
21#define NGX_MODULE_SIGNATURE_0 \
22 ngx_value(NGX_PTR_SIZE) "," \
23 ngx_value(NGX_SIG_ATOMIC_T_SIZE) "," \
24 ngx_value(NGX_TIME_T_SIZE) ","
25
26 #if (NGX_HAVE_KQUEUE)
27 #define NGX_MODULE_SIGNATURE_1 "1"
28 #else
29 #define NGX_MODULE_SIGNATURE_1 "0"
30 #endif
31
32 #if (NGX_HAVE_IOCP)
33 #define NGX_MODULE_SIGNATURE_2 "1"
34 #else
35 #define NGX_MODULE_SIGNATURE_2 "0"
36 #endif
37
38 #if (NGX_HAVE_FILE_AIO || NGX_COMPAT)
39 #define NGX_MODULE_SIGNATURE_3 "1"
40 #else
41 #define NGX_MODULE_SIGNATURE_3 "0"
42 #endif
43
44 #if (NGX_HAVE_AIO_SENDFILE || NGX_COMPAT)
45 #define NGX_MODULE_SIGNATURE_4 "1"
46 #else
47 #define NGX_MODULE_SIGNATURE_4 "0"
48 #endif
49
50 #if (NGX_HAVE_EVENTFD)
51 #define NGX_MODULE_SIGNATURE_5 "1"
52 #else
53 #define NGX_MODULE_SIGNATURE_5 "0"
54 #endif
.
.
200 #define NGX_MODULE_SIGNATURE \
201 NGX_MODULE_SIGNATURE_0 NGX_MODULE_SIGNATURE_1 NGX_MODULE_SIGNATURE_2 \
202 NGX_MODULE_SIGNATURE_3 NGX_MODULE_SIGNATURE_4 NGX_MODULE_SIGNATURE_5 \
203 NGX_MODULE_SIGNATURE_6 NGX_MODULE_SIGNATURE_7 NGX_MODULE_SIGNATURE_8 \
204 NGX_MODULE_SIGNATURE_9 NGX_MODULE_SIGNATURE_10 NGX_MODULE_SIGNATURE_11 \
205 NGX_MODULE_SIGNATURE_12 NGX_MODULE_SIGNATURE_13 NGX_MODULE_SIGNATURE_14 \
206 NGX_MODULE_SIGNATURE_15 NGX_MODULE_SIGNATURE_16 NGX_MODULE_SIGNATURE_17 \
207 NGX_MODULE_SIGNATURE_18 NGX_MODULE_SIGNATURE_19 NGX_MODULE_SIGNATURE_20 \
208 NGX_MODULE_SIGNATURE_21 NGX_MODULE_SIGNATURE_22 NGX_MODULE_SIGNATURE_23 \
209 NGX_MODULE_SIGNATURE_24 NGX_MODULE_SIGNATURE_25 NGX_MODULE_SIGNATURE_26 \
210 NGX_MODULE_SIGNATURE_27 NGX_MODULE_SIGNATURE_28 NGX_MODULE_SIGNATURE_29 \
211 NGX_MODULE_SIGNATURE_30 NGX_MODULE_SIGNATURE_31 NGX_MODULE_SIGNATURE_32 \
212 NGX_MODULE_SIGNATURE_33 NGX_MODULE_SIGNATURE_34