一、事出有因:

 最近,有位开发人员发给一个截图,具体如下,说要进行新功能测试,需要已编译安装的PHP支持如图中所示的模块。

160401777.jpg

二、积极解决:

 像这种情况,根据以往经验都是,重新编译安装PHP,为了避免繁琐的删除、编译、安装操作,也为以后方便扩展PHP模块,采用将需要添加的模块编译成.so动态链接库的方式。

三、具体步骤:

 1、操作环境:  

   CentOS,Kernel:2.6.18-274.17.1.el5PAE

   LAMP

   PHP-5.2.15

   MySQL-5.0.91-linux-i686-icc-glibc23  

 2、具体操作:

   2.1编译扩展pdo:

   (1)编译:

   #ls /usr/local/src/php-5.2.15/ext/

   #cd /usr/local/src/php-5.2.15/ext/pdo/

   #/usr/local/php/bin/phpize

   #./configure -with-php-config=/usr/local/php/bin/php-config

   # make && make install

   (2)修改php.ini

   添加如下内容:

   extension= "pdo.so"

   (3)重启Apache:

   #/usr/local/apache/bin/apachectl restart

   2.2编译扩展ldap:

   (1)编译:  

   #ls /usr/local/src/php-5.2.15/ext/

   #cd /usr/local/src/php-5.2.15/ext/ldap/

   #/usr/local/php/bin/phpize

   #./configure -with-ldap -with-php-config=/usr/local/php/bin/php-config

   # make && make install

   (2)修改php.ini

   添加如下内容:

   extension= "ldap.so"

   (3)重启Apache:

   #/usr/local/apache/bin/apachectl restart

***解决“configure:error:Cannot find ldap.h”问题***

安装openldap和openldap-devel包:

yum install openldap,openldap-devel -y

***解决“configure:error:Cannot find ldap lablibraries in /usr/lib”问题***

cp -frp /usr/lib64/libldap* /usr/lib/

   2.3编译扩展imap:

   (1)编译:  

   #ls /usr/local/src/php-5.2.15/ext/

   #cd /usr/local/src/php-5.2.15/ext/imap/

   #/usr/local/php/bin/phpize

   #./configure -with-imap -with-kerberos=/usr -with-imap-ssl=/usr \

     -with-php-config=/usr/local/php/bin/php-config

   # make && make install

   (2)修改php.ini

   添加如下内容:

   extension= "imap.so"

   (3)重启Apache:

   #/usr/local/apache/bin/apachectl restart

四、扩展测试:

 完成以上操作后,测试显示扩展成功。

161051907.jpg