我在RHL 7环境中使用PHP 5.6连接到LDAP服务器时遇到了一些问题。应用程序本身正在运行Codeigniter,当我尝试LDAP连接时,我收到错误:
不存在LDAP功能。加载模块ldap php模块 或使用带有编译的ldap支持的php。
我已经使用yum来安装PHP-ldap和openldap,以及在加载的PHP.ini文件中手动添加扩展名。
extension=/usr/lib64/php/modules/ldap.so
但是,我仍然收到错误,并且phpinfo()没有将ldap显示为已加载的模块。
我还检查了我的Apache错误日志中有什么有用的东西。当我尝试重新加载页面时没有出现错误,当我重新启动服务器时,我收到错误:
PHP警告:PHP启动:无法加载动态库 '/usr/lib64/php/modules/ldap.so' - /usr/lib64/php/modules/ldap.so: 无法打开共享对象文件:未知中没有此类文件或目录 在第0行
我已经检查过了,ldap.so确实存在于该位置。
我还应该提到PHP安装在异常位置,它位于/opt/rh/rh-php56
,不确定是否可能导致问题。
更新:-----------
我已经复制并将ldap.so移动到/opt/rh/rh-php56/root/usr/lib64/php/modules/ldap.so
并删除了php.ini中的路径,以便它现在调用像extension=ldap.so
这样的ldap。
警告已更改为
PHP警告:PHP启动:ldap:无法初始化module \ nModule 使用模块编译的模块API = 20100525 \ n \ nNPHP编译 API = 20131226 \ n这些选项需要在第0行的未知中匹配\ n
编译ldap.so文件需要做些什么吗?
答案 0 :(得分:0)
问题归结为为服务器运行的PHP版本安装了错误版本的LDAP。
当我运行rh-php56-php时,我还需要安装rh-php56-php-ldap,而不是标准的php-ldap包。安装正确的软件包后,我遇到的错误就会停止。