`
fantaxy025025
  • 浏览: 1248762 次
  • 性别: Icon_minigender_1
  • 来自: 北京
社区版块
存档分类

centos安装php-ldap扩展,总结

 
阅读更多

=

=

=

# 确定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的时候会出现这个提示。
解决方法如下:
cp -frp /usr/lib64/libldap* /usr/lib/
可能的原因是安装了64位的系统,在lib64下面有这个文件,可能在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

这样就不会默认去到处找源码了。

 

=

=

=

 

分享到:
评论

相关推荐

Global site tag (gtag.js) - Google Analytics