• 源码安装zabbix3.2.7时PHP ldap Warning


    问题如下:

    解决方法:

    1、首先查看源码安装的php模块中是否有ldap.so

    [root@nms ldap]# ll  /usr/local/php/lib/php/extensions/no-debug-non-zts-20160303/
    total 1576
    -rwxr-xr-x 1 root root  129484 Aug 22 10:18 ldap.so # 出现告警是因为此模块不存在,须要编译生成此模块并重新加载
    -rwxr-xr-x 1 root root 1430846 Aug 21 19:38 opcache.so
    [root@nms ldap]#

    2、如何本机中已经有ldap.so,只须要在php.ini文件中添加extension=ldap.so

        864 ; Dynamic Extensions ;
        865 ;;;;;;;;;;;;;;;;;;;;;;
        866 
        867 ; If you wish to have an extension loaded automatically, use the following
        868 ; syntax:
        869     extension=ldap.so          #新添加内容
        870 ;   
        871 ;   extension=modulename.extension
        872 ; 
        873 ; For example, on Windows:
        874 ;   
        875 ;   extension=msql.dll
        876 ; 
        877 ; ... or under UNIX:
        878 ;   
        879 ;   extension=msql.so
        880 ; 
        881 ; ... or with a path:
        882 ;   
        883 ;   extension=/path/to/extension/msql.so
        884 ; 

    3、如果相应的模块不存在

      3.1下载相应的php版本源码到主目录,进行源码编译ldap模块(重点,其他模块如果缺失编译方法一样)

    [root@nms ~]# tar jxvf php-7.1.7.tar.bz2 
    [root@nms ~]# ls
    anaconda-ks.cfg                  install.log         lnmp-install.log  php-7.1.7.tar.bz2
    databases_backup_20170821115223  install.log.syslog  php-7.1.7

    [root@nms ldap]# cd /root/php-7.1.7/ext/ldap/ #进入模块所在的源码位置

    [root@nms ldap]# ll
    total 144
    -rw-rw-r-- 1 1000 1000   7374 Jul  6 17:30 config.m4
    -rw-rw-r-- 1 1000 1000   1008 Jul  6 17:30 config.w32
    -rw-rw-r-- 1 1000 1000     77 Jul  6 17:30 CREDITS
    -rw-rw-r-- 1 1000 1000 102189 Jul  6 17:30 ldap.c
    -rw-rw-r-- 1 1000 1000   4464 Jul  6 17:30 ldap.mak
    -rw-rw-r-- 1 1000 1000   1546 Jul  6 17:30 LDAP_Win32_HOWTO.txt
    -rw-rw-r-- 1 1000 1000   2315 Jul  6 17:30 php_ldap.h
    drwxrwxr-x 2 1000 1000  12288 Jul  6 17:30 tests
    [root@nms ldap]# /usr/local/php/bin/phpize #编译PHP扩展的工具,主要是根据系统信息生成对应的configure文件
    Configuring for:
    PHP Api Version:         20160303
    Zend Module Api No:      20160303
    Zend Extension Api No:   320160303
    [root@nms ldap]# ./configure  --with-php-config=/usr/local/php/bin/php-config  --with-ldap #编译
    checking for grep that handles long lines and -e... /bin/grep
    checking for egrep... /bin/grep -E
    checking for a sed that does not truncate output... /bin/sed
    ........

    [root@nms ldap]# make && make install #安装
    /bin/sh /root/php-7.1.7/ext/ldap/libtool --mode=compile cc -DLDAP_DEPRECATED=1 -I. -I/root/php-7.1.7/ext/ldap -DPHP_ATOM_INC -I/root/php-7.1.7/ext/ldap/include -I/root/php-7.1.7/ext/ldap/main -I/root/php-7.1.7/ext/ldap -I/usr/local/php/include/php -I/usr/local/php/include/php/main -I/usr/local/php/include/php/TSRM -I/usr/local/php/include/php/Zend -I/usr/local/php/include/php/ext -I/usr/local/php/include/php/ext/date/lib  -DHAVE_CONFIG_H  -g -O2   -c /root/php-7.1.7/ext/ldap/ldap.c -o ldap.lo
    mkdir .libs
     cc -DLDAP_DEPRECATED=1 -I. -I/root/php-7.1.7/ext/ldap -DPHP_ATOM_INC -I/root/php-7.1.7/ext/ldap/include -I/root/php-7.1.7/ext/ldap/main -I/root/php-7.1.7/ext/ldap -I/usr/local/php/include/php -I/usr/local/php/include/php/main -I/usr/local/php/include/php/TSRM -I/usr/local/php/include/php/Zend -I/usr/local/php/include/php/ext -I/usr/local/php/include/php/ext/date/lib -DHAVE_CONFIG_H -g -O2 -c /root/php-7.1.7/ext/ldap/ldap.c  -fPIC -DPIC -o .libs/ldap.o
    /bin/sh /root/php-7.1.7/ext/ldap/libtool --mode=link cc -DPHP_ATOM_INC -I/root/php-7.1.7/ext/ldap/include -I/root/php-7.1.7/ext/ldap/main -I/root/php-7.1.7/ext/ldap -I/usr/local/php/include/php -I/usr/local/php/include/php/main -I/usr/local/php/include/php/TSRM -I/usr/local/php/include/php/Zend -I/usr/local/php/include/php/ext -I/usr/local/php/include/php/ext/date/lib  -DHAVE_CONFIG_H  -g -O2   -o ldap.la -export-dynamic -avoid-version -prefer-pic -module -rpath /root/php-7.1.7/ext/ldap/modules  ldap.lo -lldap -llber
    cc -shared  .libs/ldap.o  -lldap -llber  -Wl,-soname -Wl,ldap.so -o .libs/ldap.so
    creating ldap.la
    (cd .libs && rm -f ldap.la && ln -s ../ldap.la ldap.la)
    /bin/sh /root/php-7.1.7/ext/ldap/libtool --mode=install cp ./ldap.la /root/php-7.1.7/ext/ldap/modules
    cp ./.libs/ldap.so /root/php-7.1.7/ext/ldap/modules/ldap.so
    cp ./.libs/ldap.lai /root/php-7.1.7/ext/ldap/modules/ldap.la
    PATH="$PATH:/sbin" ldconfig -n /root/php-7.1.7/ext/ldap/modules
    ----------------------------------------------------------------------
    Libraries have been installed in:
       /root/php-7.1.7/ext/ldap/modules

    If you ever happen to want to link against installed libraries
    in a given directory, LIBDIR, you must either use libtool, and
    specify the full pathname of the library, or use the `-LLIBDIR'
    flag during linking and do at least one of the following:
       - add LIBDIR to the `LD_LIBRARY_PATH' environment variable
         during execution
       - add LIBDIR to the `LD_RUN_PATH' environment variable
         during linking
       - use the `-Wl,--rpath -Wl,LIBDIR' linker flag
       - have your system administrator add LIBDIR to `/etc/ld.so.conf'

    See any operating system documentation about shared libraries for
    more information, such as the ld(1) and ld.so(8) manual pages.
    ----------------------------------------------------------------------

    Build complete.
    Don't forget to run 'make test'.

    Installing shared extensions:     /usr/local/php/lib/php/extensions/no-debug-non-zts-20160303/ #make 生成模块安装位置
    [root@nms ldap]#
    [root@nms php-7.1.7]# ll /usr/local/php/lib/php/extensions/no-debug-non-zts-20160303/ #确认ldap.so模块存在
    total 1576
    -rwxr-xr-x 1 root root  129484 Aug 22 10:18 ldap.so
    -rwxr-xr-x 1 root root 1430846 Aug 21 19:38 opcache.so

    [root@nms php-7.1.7]# vi /usr/local/php/etc/php.ini #编辑php.ini,添加新生成的ldap.so模块

        853 default_socket_timeout = 60
        854
        855 ; If your scripts have to deal with files from Macintosh systems,
        856 ; or you are running on a Mac and need to deal with files from
        857 ; unix or win32 systems, setting this flag will cause PHP to
        858 ; automatically detect the EOL character in those files so that
        859 ; fgets() and file() will work regardless of the source of the file.
        860 ; http://php.net/auto-detect-line-endings
        861 ;auto_detect_line_endings = Off
        862
        863 ;;;;;;;;;;;;;;;;;;;;;;
        864 ; Dynamic Extensions ;
        865 ;;;;;;;;;;;;;;;;;;;;;;
        866
        867 ; If you wish to have an extension loaded automatically, use the following
        868 ; syntax:
        869     extension=ldap.so #新添加模块
        870 ;
        871 ;   extension=modulename.extension
        872 ;
        873 ; For example, on Windows:
        874 ;
        875 ;   extension=msql.dll
        876 ;
        877 ; ... or under UNIX:
        878 ;
        879 ;   extension=msql.so
        880 ;


    [root@nms php-7.1.7]# service httpd restart #重启httpd
    restart apache...  done

     4、http://192.168.0.198/zabbix/setup.php再次进入前端安装

      发现PHP LDAP模块 OK!!

     5、至此zabbix 前面安装 “Check of pre-requisites”全部OK

  • 相关阅读:
    ObjectiveC的算术表达式 .
    《ObjectiveC 程序设计(第4版)》图书信息
    实例变量的访问及数据封装
    Android系统中的广播(Broadcast)机制简要介绍和学习计划 .
    Android应用程序的Activity启动过程简要介绍和学习计划 .
    如何在Scala中使用条件表达式 .
    Android系统Surface机制的SurfaceFlinger服务简要介绍和学习计划
    Android应用程序组件Content Provider简要介绍和学习计划
    asp.net怎么将网页添加为首页或加入收藏夹中
    学习网址
  • 原文地址:https://www.cnblogs.com/me80/p/7410958.html
Copyright © 2020-2023  润新知