
nginx
モジュールを使ってコンパイルしようとしています:https://github.com/leev/ngx_http_geoip2_modulenginx コンパイルの前に、このライブラリは次のようになります。https://github.com/maxmind/libmaxminddbインストールする必要があります。指示に従いました(https://github.com/maxmind/libmaxminddb/blob/master/README.md#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
この問題を抱えている人のために、解決策を次に示します。
- git クローン --再帰https://github.com/maxmind/libmaxminddb
- cd libmaxminddb
- ./ブートストラップ
- 。/構成、設定
- 作る
- インストールする
クローン作成後、最初はconfigure実行ファイルがなかったのですが、./bootstrapを実行した後、それは作られた./configure、make、make installを実行すると、フォルダ内に/usr/local/include
maxminddb_config.h と maxminddb.h が作成されました。
その後、インストール nginx スクリプトを実行しましたが、エラーは発生しなくなりました。