LDAP没有加载到RHL 7上的php 5.6中

时间:2016-07-19 15:52:30

标签: php codeigniter ldap redhat

我在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文件需要做些什么吗?

1 个答案:

答案 0 :(得分:0)

问题归结为为服务器运行的PHP版本安装了错误版本的LDAP。

当我运行rh-php56-php时,我还需要安装rh-php56-php-ldap,而不是标准的php-ldap包。安装正确的软件包后,我遇到的错误就会停止。