=
=
=
# 确定php版本,以便安装对应的版本;
# 安装对应的ldap版本
yum install -y --skip-broken openldap.x86_64 openldap-clients.x86_64 openldap-devel.x86_64 openldap-servers.x86_64 openssh-ldap.x86_64 opensips-ldap.x86_64 perl-LDAP.noarch php-ZendFramework-Ldap.noarch php-ZendFramework2-Ldap.noarch php55w-ldap.x86_64 libldb.x86_64
# 可以从编译php源码编译安装扩展
1、安装ldap
# cd ext/ldap/
# phpize
# ./configure --with-php-config=/usr/bin/php-config --with-ldap=/root/june/lnmp1.4/src/php-5.5.38/ext/ldap --with-libdir=lib64
# make && make install
2、php加载ldap扩展
extension_dir = "/usr/lib64/php/modules/"
extension=ldap.so
3、可能需要重启环境
/etc/init.d/php-fpm restart
/usr/local/nginx/sbin/nginx -s reload
# yum源的版本与当前的php版本,如果不一致,就会导致很多冲突。
比如默认的yum源是php5.3,而当前的php是5.5,那么默认使用yum源安装的ldap就会是5.3版本,与当前的5.5版本冲突了。
此时应该erase ldap5.3版本的ldap和ldap-dev,指定安装ldap和ldap-dev的5.5版本,以及依赖的其他版本。
注意:如果冲突,就删除冲突的版本,安装指定的版本。
参考:https://blog.csdn.net/gpxxgpxx/article/details/60135356
1,在线安装:
执行 yum install php-ldap
可能出现的问题:Error: php70w-common-.. conflicts with php-common-5.4.... 就是版本冲突的意思。
解决办法:
查看php的版本: php -v ;
搜索版本匹配的ldap:yum search ldap,找到匹配的版本安装(我的是php70w-ldap.x86-64)
重新安装 yum install php70w-ldap.x86-64,中途会让输一个 y ,来确定。
完成,重启Apache2:service httpd restart 。
完成后,查看info.php页面,会有ldap的模块,显示enabled.
# lib64/libldap.so: undefined reference to `ber_sockbuf_io_udp'
包冲突。尤其是手动安装的包与自动yum安装的包冲突了。
参照上面的步骤,删除后重新yum安装。
# configure fails --with-ldap Cannot find ldap libraries in /usr/lib
参考这里:https://bugs.php.net/bug.php?id=49876
正确答案:
[2009-10-19 11:14 UTC] jani@php.net
Your configure line is missing this: --with-libdir=lib64
[2015-04-26 15:09 UTC] 6822089 at qq dot com
注意:开始我用--with-ldap安装编译的时候一直报错 configure: error: Cannot find ldap libraries in /usr/lib. 或者configure: error: Cannot find ldap.h 而经过检查openldap-devel都是安装的,当时因为一直没解决我就先放弃了ldap. 后面想还是尝试一下ldap扩展,于是源包目录,安装过程是成功的。 cd /opt/soft/php-5.6.8/ext/ldap /data/php/bin/phpize ./configure --with-php-config=/data/php/bin/php-config --with-ldap --with-libdir=lib64 主要是--with-libdir=lib64
参考这里:http://blog.sina.com.cn/s/blog_61c07ac50101882h.html
# 安装LNMP错误:configure: error: Cannot find ldap libraries in /usr/lib
# 编译php时出现 configure: error: Cannot find ldap.h
发现依赖于openldap包,通过yum解决问题:
yum install openldap.i386 openldap-clients.i386 openldap-devel.i386 openldap-servers.i386
yum安装完成了就ok了!
但是这里需要注意一个问题,如果是64位的系统,就需要把那个i386修改为x86_64,然后yum就可以了!
# 其他补充:
发现安装过程中,可能遇到的问题还有:
3、可能需要重启环境
extension_dir = "/usr/lib64/php/modules/"
extension=ldap.so
4、可能需要指定源码目录。
虽然phpize默认是当前目录,但是php这么多版本,真心弄的不标准,乱。
有些时候需要指定源码目录,比如指定当前的目录:
--with-ldap=/root/june/lnmp1.4/src/php-5.5.38/ext/ldap
这样就不会默认去到处找源码了。
=
=
=