我有两个码头集装箱。在第一个docker-container里面是我的lamp应用程序和php-7.3.4,apache2;在第二个docker-container里面是mysql数据库。
我尝试在第一个容器内连接ldap服务器。我进入'test-project‘文件夹并配置了custom_config.inc.php
$tlCfg->authentication['method'] = 'LDAP';
$tlCfg->authentication['ldap_server'] = 'ldap.xyz.com';
$tlCfg->authentication['ldap_port'] = '389';
$tlCfg->authentication['ldap_version'] = '3';
$tlCfg->authentication['ldap_root_dn'] = 'dc=xyz,dc=com';
$tlCfg->authentication['ldap_bind_dn'] = 'uid=tl,ou=staff,dc=xyz,dc=com';
$tlCfg->authentication['ldap_bind_passwd'] = 'XYZw';
$tlCfg->authentication['ldap_tls'] = false; // true -> use tls
在我尝试通过ldap凭据登录到网页并抛出http错误500之后
当我查看日志时,我得到了:
错误:https://imgur.com/a/HQEZT3X
PHP Fatal error: Uncaught Error: Call to undefined function
ldap_connect() in
var/www/html/testlink/lib/functions/ldap_api.php:42\nStack trace :\n#0
/var/www/html/testlink/functions/ldap_api.php(165):
ldap_connect_bind(Array)\n#1
var/www/html/testlink/lib/functions/doAuthorize.php(200):
ldap_authenticate('test_user', 'test')\n#2
var/www/html/testlink/lib/functions/doAuthorize.php(90):
auth_does_password_match(Object(tlUser), 'test')\n#3
var/www/html/testlink/login.php(45): doAuthorize(Object(database),
'test_user', 'test', Object(stdClass))\n#4 {main}\n thrown in
var/www/html/testlink/lib/functions/ldap_api.php on line 42, refer:
http://***.**.com/login.php
如何配置ldap?
发布于 2020-01-22 20:30:06
您需要在php Dockerfile中放入以下行
RUN apt-get update && apt-get install -y \
libldap2-dev
RUN docker-php-ext-configure ldap --with-libdir=lib/x86_64-linux-gnu/
RUN docker-php-ext-install ldap
发布于 2019-06-11 03:52:06
您的missing / PHP容器缺少PHP LDAP扩展。您需要重新构建该容器,使其包含PHP LDAP扩展,或者需要使用像https://packagist.org/packages/freedsx/LDAP这样的用户域LDAP库(从未使用过它,所以不能透露任何信息)。注意,Userland库使用与PHP扩展不同的API,因此需要重写代码。因此,最终重建容器可能是更简单的解决方案。
https://stackoverflow.com/questions/56524197
复制相似问题