CentOS7 Virtualmin环境下PHP ldap_connect未定义报错解决问询
问题根源梳理
- 你在php.ini中添加的
extension=php_ldap.dll是Windows平台的PHP扩展配置,Linux系统下不生效,属于无效配置 - YUM报401错误是因为Virtualmin商业源的授权凭据异常,安装PHP扩展可以临时禁用Virtualmin源,使用系统默认源完成安装
- 你执行的安装包名和实际使用的PHP版本不匹配,导致找不到安装包
解决方案步骤
1. 清理无效配置
找到对应站点使用的PHP版本的php.ini配置文件,删除extension=php_ldap.dll这一行后保存。
不同PHP版本的配置路径参考:
- CentOS默认PHP5.4:
/etc/php.ini- Remi源PHP7.x:
/etc/opt/remi/php[版本号]/php.ini例如PHP7.4对应/etc/opt/remi/php74/php.ini- Virtualmin自带多版本PHP:
/etc/opt/rh/rh-php[版本号]/php.ini例如PHP7.3对应/etc/opt/rh/rh-php73/php.ini
2. 安装对应版本的LDAP扩展
先执行php -v确认当前使用的PHP版本,再根据版本选择对应安装命令,命令中加入--disablerepo=virtualmin*参数跳过授权异常的Virtualmin源:
- 默认PHP5.4:
yum install --disablerepo=virtualmin* php-ldap -y - Remi源PHP7.x:例如PHP7.4对应
yum install --disablerepo=virtualmin* php74-php-ldap -y,其余版本替换版本号即可 - Virtualmin自带PHP7.x:例如PHP7.3对应
yum install --disablerepo=virtualmin* rh-php73-php-ldap -y,其余版本替换版本号即可
3. 重启服务验证生效
安装完成后根据PHP运行模式重启对应服务:
- 若使用Apache模式运行PHP:
systemctl restart httpd - 若使用PHP-FPM模式运行PHP:例如PHP7.4对应
systemctl restart php74-php-fpm,其余版本替换版本号即可
验证扩展是否正常加载:执行php -m | grep ldap,如果输出ldap即为安装成功,此时ldap_connect函数即可正常调用。
若Virtualmin下有多个站点使用不同PHP版本,需要为每个用到的PHP版本都安装对应LDAP扩展。
内容的提问来源于stack exchange,提问作者charlie
相关产品推荐
相关产品推荐

