“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 克隆——遞迴https://github.com/maxmind/libmaxminddb
  2. cd libmaxminddb
  3. ./引導程式
  4. 製作
  5. 進行安裝

我注意到最初克隆後沒有配置可執行文件,但運行 ./bootstrap 後,它被創建了。然後我運行 ./configure、make、make install,然後我注意到在資料夾中/usr/local/include 創建了 maxminddb_config.h 和 maxminddb.h

然後我運行我的安裝 nginx 腳本,就沒有錯誤了。

相關內容