"geoip2 모듈에는 maxminddb 라이브러리가 필요합니다." 그러나 라이브러리가 이미 설치되어 있습니다.

"geoip2 모듈에는 maxminddb 라이브러리가 필요합니다." 그러나 라이브러리가 이미 설치되어 있습니다.

nginx모듈을 사용하여 컴파일 하려고 합니다 .https://github.com/leev/ngx_http_geoip2_module. nginx가 컴파일되기 전에 이 라이브러리는 다음을 수행합니다.https://github.com/maxmind/libmaxminddb설치가 필요합니다. 나는 지시를 따랐다(https://github.com/maxmind/libmaxminddb/blob/master/README.md#installing-from-a-tarball), 라이브러리를 컴파일하고 설치합니다. 설치 후 다음을 ldconfig -p | grep maxminddb제공합니다.

libmaxminddb.so.0 (libc6,x86-64) => /usr/local/lib/libmaxminddb.so.0
libmaxminddb.so (libc6,x86-64) => /usr/local/lib/libmaxminddb.so

그러나 ngx_http_geoip2_module을 사용하여 nginx를 구성하면 구성 중에 오류가 발생합니다.

adding module in /home/cilium/ngx_http_geoip2_module
checking for MaxmindDB library ... not found
./configure: error: the geoip2 module requires the maxminddb library.

이것이 바로 제가 설치한 라이브러리입니다. 오류는 다음 config파일 에서 발생한 것 같습니다 ngx_http_geoip2_module.

ngx_feature="MaxmindDB library"
ngx_feature_name=
ngx_feature_run=no
ngx_feature_incs="#include <maxminddb.h>"
ngx_feature_libs=-lmaxminddb
. auto/feature

if [ $ngx_found = yes ]; then
    ngx_addon_name=ngx_http_geoip2_module
    HTTP_MODULES="$HTTP_MODULES ngx_http_geoip2_module"
    NGX_ADDON_SRCS="$NGX_ADDON_SRCS $ngx_addon_dir/ngx_http_geoip2_module.c"
    CORE_LIBS="$CORE_LIBS -lmaxminddb"
else   
    cat << END
$0: error: the geoip2 module requires the maxminddb library.
END
    exit 1
fi

여기서 무엇이 잘못될 수 있는지 아는 사람이 있나요?

업데이트: 일부 관련 출력 sh -x ./configure ..:

+ echo adding module in /home/cilium/ngx_http_geoip2_module
adding module in /home/cilium/ngx_http_geoip2_module
+ test -f /home/cilium/ngx_http_geoip2_module/config
+ . /home/cilium/ngx_http_geoip2_module/config
+ ngx_feature=MaxmindDB library
+ ngx_feature_name=
+ ngx_feature_run=no
+ ngx_feature_incs=#include <maxminddb.h>
+ ngx_feature_libs=-lmaxminddb
+ . auto/feature
+ echo checking for MaxmindDB library ...\c
checking for MaxmindDB library ...+ cat
+ ngx_found=no
+ test -n

...

+ [ -x objs/autotest ]
+ echo  not found
 not found
+ echo ----------
+ cat objs/autotest.c
+ echo ----------
+ echo cc -g -O2 -fstack-protector --param=ssp-buffer-size=4 -Wformat -Wformat-security -Werror=format-security -D_FORTIFY_SOURCE=2 -D_GNU_SOURCE -D_FILE_OFFSET_BITS=64 -I /home/cilium/ngx_pagespeed-release-1.9.32.1-beta/psol/include -I /home/cilium/ngx_pagespeed-release-1.9.32.1-beta/psol/include/third_party/chromium/src -I /home/cilium/ngx_pagespeed-release-1.9.32.1-beta/psol/include/third_party/google-sparsehash/src -I /home/cilium/ngx_pagespeed-release-1.9.32.1-beta/psol/include/third_party/google-sparsehash/gen/arch/linux/x64/include -I /home/cilium/ngx_pagespeed-release-1.9.32.1-beta/psol/include/third_party/protobuf/src -I /home/cilium/ngx_pagespeed-release-1.9.32.1-beta/psol/include/third_party/re2/src -I /home/cilium/ngx_pagespeed-release-1.9.32.1-beta/psol/include/out/Debug/obj/gen -I /home/cilium/ngx_pagespeed-release-1.9.32.1-beta/psol/include/out/Debug/obj/gen/protoc_out/instaweb -I /home/cilium/ngx_pagespeed-release-1.9.32.1-beta/psol/include/third_party/apr/src/include -I /home/cilium/ngx_pagespeed-release-1.9.32.1-beta/psol/include/third_party/aprutil/src/include -I /home/cilium/ngx_pagespeed-release-1.9.32.1-beta/psol/include/third_party/apr/gen/arch/linux/x64/include -I /home/cilium/ngx_pagespeed-release-1.9.32.1-beta/psol/include/third_party/aprutil/gen/arch/linux/x64/include -o objs/autotest objs/autotest.c -Wl,-Bsymbolic-functions -Wl,-z,relro -lmaxminddb
+ echo ----------
+ rm -rf objs/autotest.c
+ [ no = yes ]
+ cat
./configure: error: the geoip2 module requires the maxminddb library.
+ exit 1

답변1

maxminddb의 "devel" 버전이 누락되어 다음을 사용했습니다.

yum install libmaxminddb-devel

답변2

이 문제가 발생하는 경우 해결책은 다음과 같습니다.

  1. git clone - 재귀적https://github.com/maxmind/libmaxminddb
  2. CD libmaxminddb
  3. ./bootstrap
  4. . /구성
  5. 만들다
  6. 설치하기 위해서

복제 후 처음에는 실행 파일이 구성되지 않았지만 ./bootstrap을 실행한 후에는그것은 창조되었다. 그런 다음 ./configure, make, make install을 실행했는데 폴더에 있는 것을 발견했습니다./usr/local/include maxminddb_config.h 및 maxminddb.h 생성.

그런 다음 설치 nginx 스크립트를 실행했는데 오류가 없었습니다.

관련 정보