ãç°å¢ã
$ cat /etc/redhat-release CentOS Linux release 7.6.1810 (Core) $ rpm -qa | grep openldap openldap-clients-2.4.44-20.el7.x86_64 openldap-devel-2.4.44-20.el7.x86_64 openldap-2.4.44-20.el7.x86_64
以ä¸ã®ãããªãªãã·ã§ã³ã§ãPHP 7.2 ãconfigureããã¨ãLDAPã®ã¨ããã§ã¨ã©ã¼ã«ãªãã
# ./configure \ --prefix=/usr/local/lib/php-7.2 \ --with-ldap \ ã» ã»çç¥ ã» checking size of long int... (cached) 8 configure: error: Cannot find ldap libraries in /usr/lib.
OpenLDAPã®ã©ã¤ãã©ãªãå
¥ã£ã¦ããã¯ãã ããç¶æ³ã確èªã
# ls -l /usr/lib64/libldap* lrwxrwxrwx 1 root root 21 12æ 4 08:31 /usr/lib64/libldap-2.4.so.2 -> libldap-2.4.so.2.10.7 -rwxr-xr-x 1 root root 352624 10æ 31 08:15 /usr/lib64/libldap-2.4.so.2.10.7 lrwxrwxrwx 1 root root 21 12æ 16 14:43 /usr/lib64/libldap.so -> libldap-2.4.so.2.10.7 lrwxrwxrwx 1 root root 23 12æ 4 08:31 /usr/lib64/libldap_r-2.4.so.2 -> libldap_r-2.4.so.2.10.7 -rwxr-xr-x 1 root root 381440 10æ 31 08:15 /usr/lib64/libldap_r-2.4.so.2.10.7 lrwxrwxrwx 1 root root 23 12æ 16 14:43 /usr/lib64/libldap_r.so -> libldap_r-2.4.so.2.10.7
64bitç¨ããã±ã¼ã¸ããå
¥ã£ã¦ããªãã®ã§ã/usr/lib/ 以ä¸ã«ã¯ãlibldap* ã®ãã¡ã¤ã«ã¯ç¡ãã
configure 㧠/usr/lib 以ä¸ã«ã©ã¤ãã©ãªãæ¢ãã«è¡ã£ã¦ããã¨ãããè¦ãã¨ã32bitç¨ã®ããã±ã¼ã¸ãããã°è¯ãã®ãããããªãã
# yum install openldap-devel.i686
ã§ã¤ã³ã¹ãã¼ã«ãããã¨ããã¨ãä»ã«ãä¾åé¢ä¿ã®ããããã±ã¼ã¸ã大éã«ãªã¹ãã¢ãããããã
ãã®æ¹æ³ã¯å±éºãªåããããã®ã§ä¸æ¢ã
/usr/lib/libldap.so 㨠/usr/lib/libldap_r.so ãæ¢ãã«è¡ã£ã¦ããã¨æãããã®ã§ã次ã®ããã« /usr/lib 以ä¸ãã /usr/lib64 ã®ãã¡ã¤ã«ã¸ã·ã³ããªãã¯ãªã³ã¯ãä½æã
# ln -s /usr/lib64/libldap.so /usr/lib/libldap.so # ln -s /usr/lib64/libldap_r.so /usr/lib/libldap_r.so
確èª
# ls -l /usr/lib/libldap* lrwxrwxrwx 1 root root 21 12æ 16 14:53 /usr/lib/libldap.so -> /usr/lib64/libldap.so lrwxrwxrwx 1 root root 23 12æ 16 14:53 /usr/lib/libldap_r.so -> /usr/lib64/libldap_r.so
åã³configureãã¦ã¿ãã¨ãåé¡ã¯åé¿ãããã
# ./configure \ --prefix=/usr/local/lib/php-7.2 \ --with-ldap \ ã» ã»çç¥ ã» Thank you for using PHP.
次ã«ãmake ã§ãå¥ãªã¨ã©ã¼ã«ééããã
# make ã» ã»çç¥ ã» /usr/bin/ld: ext/ldap/.libs/ldap.o: undefined reference to symbol 'ber_scanf' /usr/lib64/liblber-2.4.so.2: error adding symbols: DSO missing from command line collect2: error: ld returned 1 exit status make: *** [sapi/cli/php] ã¨ã©ã¼ 1
ber_scanf ã¨ããã·ã³ãã«ãè¦ããªãäºãåå ã¨ããã¡ãã»ã¼ã¸ãªã®ã§ãããããããã§æ¤ç´¢ããã¨ãman page ãåºãã
https://linux.die.net/man/3/ber_scanf
ããã«ããã¨ããã®ã·ã³ãã«ã¯ã
ãOpenLDAP LBER (liblber, -llber)
ã«å«ã¾ãããããã
liblber.so ã®ãã¨ã
configure åã« LDFLAGS 㧠liblber.so ãåç §ããããã«æå®ãã¦ãããç´ãã
# export LDFLAGS=-llber # configure ã» ã»çç¥ ã» # make
ãã㧠make ã§ããããã«ãªã£ãã