CentOS 7环境下PHP 7.2 LDAP扩展安装问题求助
别着急,咱们一步步排查定位问题:
1. 先确认php-ldap扩展是否真的安装成功
有时候yum安装可能因为依赖或源的问题没真正落地,先跑这条命令验证:
rpm -qa | grep php-ldap
如果输出里有类似php-ldap-7.2.*.el7.x86_64的包,说明安装没问题;如果没输出,得先确保你用的是支持PHP7.2的yum源(比如Remi源),再重新安装:
yum install php72-php-ldap # 如果你用的是Remi的PHP7.2模块
2. 确认你修改的是Apache实际使用的php.ini文件
CentOS7里,Apache的PHP模块和CLI的PHP可能用不同的配置文件。打开你的phpInfo页面,找Loaded Configuration File这一行,看对应的文件路径(比如/etc/php.ini或者/etc/php/7.2/apache2/php.ini)。
另外,很多系统会把扩展配置单独放在/etc/php.d/目录下的.ini文件里,比如ldap.ini,你得检查这个文件里是否有:
extension=ldap.so
如果这个文件里是注释掉的,或者根本不存在,那即使你改了主php.ini也没用。
3. 检查Apache是否加载了正确的PHP7.2模块
确保Apache用的是PHP7.2的模块,而不是旧版本的。跑这条命令查看已加载的模块:
httpd -M | grep php
如果输出是php7_module (shared),说明没问题;如果是php5或者其他版本,那得切换到PHP7.2模块:
# 禁用旧版本(比如PHP5) a2dismod php5 # 启用PHP7.2模块 a2enmod php72
CentOS7下如果用的是httpd,也可以检查/etc/httpd/conf.d/php.conf文件,确认LoadModule行指向的是PHP7.2的模块文件,比如:
LoadModule php7_module /usr/lib64/httpd/modules/libphp72.so
4. 强制重启Apache服务
修改配置后一定要重启Apache,确保配置生效:
systemctl restart httpd
如果你的环境搭配了php-fpm(虽然你说的是Apache,但部分场景会用到),也顺便重启一下:
systemctl restart php-fpm
5. 用CLI验证扩展是否能加载
如果上面的步骤都做了还是没显示,先在命令行测试PHP能不能加载LDAP扩展:
php -m | grep ldap
如果CLI里能看到ldap,说明扩展本身没问题,问题出在Apache的PHP配置上(比如加载了错误的php.ini);如果CLI也看不到,那可能是扩展依赖缺失,用这条命令检查ldap.so的依赖:
ldd /usr/lib64/php/modules/ldap.so
如果有缺失的库(比如libldap.so.2),安装对应的依赖包后重新安装php-ldap:
yum install openldap-devel yum reinstall php-ldap
6. 排查SELinux的影响(可选)
有时候SELinux会阻止Apache加载某些模块,你可以临时关闭SELinux测试:
setenforce 0
然后刷新phpInfo页面,如果LDAP显示了,再配置SELinux规则来允许,而不是一直关闭:
setsebool -P httpd_can_connect_ldap on
做完这些步骤,应该就能在phpInfo里看到LDAP扩展了。
内容的提问来源于stack exchange,提问作者Ivan Tri Septian




