Comments (6)
maybe you need to install openldap-devel
, like
yum install -y openldap-devel
from apisix-build-tools.
openldap-devel
is not provided with apisix, it needs to be installed by the user.
from apisix-build-tools.
openldap-devel
is expected to be installed if apisix is installed via yum, see
apisix-build-tools/package-apisix.sh
Line 10 in 0d46617
from apisix-build-tools.
The EVP_KDF_ctrl is from libk5crypto which is Red Hat specific, not the libcrypto we finally use. Maybe using the libcrypto from openresty-openssl111 when installing lua-ldap can fix this problem.
from apisix-build-tools.
as @spacewander says, maybe the root of this issue is caused from:
lualdap 1.2.6-1 depends on lua >= 5.1 (5.1-1 provided by VM)
gcc -O2 -fPIC -I/usr/local/openresty/luajit/include/luajit-2.1 -c src/lualdap.c -o src/lualdap.o -I/usr/include
gcc -shared -o lualdap.so src/lualdap.o -L/usr/lib64 -Wl,-rpath,/usr/lib64 -lldap -llber
Cloning into 'lua-resty-rocketmq'...
Note: switching to 'f5aca7d66b6323805aa13b26567c39042a837ed4'.
from apisix-build-tools.
lualdap.so
depends on libldap-2.4.so.2
ldd /usr/local/apisix/deps/lib/lua/5.1/lualdap.so | grep libldap
ibldap-2.4.so.2 => /usr/lib64/libldap-2.4.so.2 (0x00007fe82934a000)
The libldap-2.4.so.2
dynamic library was installed via openldap-devel
when installing apisix. openldap-devel
uses centos8's openssl, so the EVP_KDF*
symbols are introduced.
apisix-base specifies the search path of the dynamic library through rpath
at build time, via: https://github.com/api7/apisix-build-tools/blob/master/build-apisix-base.sh#L94. When apisix is running, it will first search for this path when loading the dynamic library. This caused libldap-2.4.so.2
to be loaded with openresty-openssl
instead of the system's openssl
, thus resulting in the symbol not being found. For the search path of dynamic libraries, please refer to: https://man7.org/training/download/shlib_dynlinker_slides.pdf
Therefore, the solutions are as follows:
- Delete the installed openresty-openssl. When apisix is running, it will continue to search for the system openssl. This method is rude
- Use source code to compile and install openldap, specify openssl as openresty-openssl when compiling. But unfortunately, openldap does not support specifying openssl directories. However I found a modified way here. This seems to work, and someone has tried it in the apisix issue.
from apisix-build-tools.
Related Issues (20)
- proposal: A brew package for apisix installation HOT 2
- package error, faild to clone git repository HOT 2
- Help Request, docker cp lost parameter $PWD HOT 2
- sourceCode deployment on macOS M1
- What is the difference between apisix and apisix-base tag HOT 1
- OpenSSL library ... not found HOT 1
- Support compiling openresty under riscv64 architecture
- An error while compiling with tongsuo. HOT 2
- Please help me Connection refused https://raw.githubusercontent.com/apache/apisix/master/utils/linux-install-luarocks.sh HOT 2
- Workaround apisix-base cross-compilation issue HOT 1
- bug: the ci loss apache-apisix-repo-1.0-1.noarch.rpm
- [help request] apisix-base rpm not compile with ipv6 module
- bug: not sync centos package
- bug: centos repo has been override by redhat package
- bug: timeout for publish rpm to repo
- fix build dashboard error
- A monitoring solution is required to monitor the availability of repo.
- update grpc_client_nginx_module version in build script for apisix-base HOT 4
- feat: update wasm-nginx-module 0.6.5
- 打包报错,求助 HOT 2
Recommend Projects
-
React
A declarative, efficient, and flexible JavaScript library for building user interfaces.
-
Vue.js
🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.
-
Typescript
TypeScript is a superset of JavaScript that compiles to clean JavaScript output.
-
TensorFlow
An Open Source Machine Learning Framework for Everyone
-
Django
The Web framework for perfectionists with deadlines.
-
Laravel
A PHP framework for web artisans
-
D3
Bring data to life with SVG, Canvas and HTML. 📊📈🎉
-
Recommend Topics
-
javascript
JavaScript (JS) is a lightweight interpreted programming language with first-class functions.
-
web
Some thing interesting about web. New door for the world.
-
server
A server is a program made to process requests and deliver data to clients.
-
Machine learning
Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.
-
Visualization
Some thing interesting about visualization, use data art
-
Game
Some thing interesting about game, make everyone happy.
Recommend Org
-
Facebook
We are working to build community through open source technology. NB: members must have two-factor auth.
-
Microsoft
Open source projects and samples from Microsoft.
-
Google
Google ❤️ Open Source for everyone.
-
Alibaba
Alibaba Open Source for everyone
-
D3
Data-Driven Documents codes.
-
Tencent
China tencent open source team.
from apisix-build-tools.