PHP 5.6.32 增加pdo_dblib.so拓展
首先说明,php增加pdo_dblib.so拓展不需要重新编译php源文件,只需要增加dblib源包即可。
1.下载安装所需包
1.#下载 wget http://mirrors.ibiblio.org/freetds/stable/freetds-stable.tgz 2.#解压文件 (选择好自己所需要编译的路径) tar -zxvf freetds-stable.tgz 3.#进入解压后的目录 cd freetds-0.91/ 4.配置编译 ./configure --prefix=/usr/local/freetds --with-tdsver=7.1 --enable-msdblib make && make install
2.进入php源编译目录进行编译安装pdo_dblib.so
1#进入我的php编译目录 cd /usr/local/src/php-5.6.32/ext/pdo_dblib/ 2.#执行phpize生成PECL扩展的configure文件. /usr/local/php/bin/phpize 3.安装编译 ./configure --with-php-config=/usr/local/php/bin/php-config --with-pdo-dblib=/usr/local/freetds make && make install
3.编译成功的话可以在cd /usr/local/php/lib/extensions/里找到 pdo_dblib.so,不成功的话查看下面我备注的一些坑。
[root@vm-no-debug-non-zts-20131226]# ll /usr/local/php/lib/php/extensions/no-debug-non-zts-20131226/ total 3408 -rwxr-xr-x 1 root root 1113008 Apr 10 16:12 opcache.a -rwxr-xr-x 1 root root 589508 Apr 10 16:12 opcache.so -rwxr-xr-x 1 root root 109781 Apr 11 14:58 pdo_dblib.so -rwxr-xr-x 1 root root 1671797 Nov 24 10:00 redis.so [root@vm-no-debug-non-zts-20131226]#
4.重启php服务 查看文件是否存在
[root@vm-no-debug-non-zts-20131226]# php -m|grep dblib pdo_dblib [root@vm-no-debug-non-zts-20131226]#
我遇到的错误~
PHP Warning: PHP Startup: redis: Unable to initialize module
解决办法:
1、删除编译过的源码包freetds-0.91 和 pdo_dblib文件和目录,从新编译生成freetds
2、检测/usr/sbin /use/bin 目录下是否存在php php-config php-cgi phpize 文件,重新在源文件目录下cop过来新的命令。(因为我这之前升级过版本,所以存在版本不一致情况)
然后重新编译即可,还要注意执行phpize时最好写全路径,并且要在php源文件ext目录下pdo_dbib问下才行)
我遇到的错误~
.PHP Warning: Module 'pdo_dblib' already loaded in Unknown on line 0
解决办法:
因为看文档很多都写了在php.ini中添加 extension=/usr/local/php/lib/php/extensions/no-debug-non-zts-20131226/pdo_dblib.so
加上后就会出现如上错误,显示重复加载,具体报错原因不知道。直接注释掉就好啦。
好记性不如烂笔头-_-