最近学习linux,使用php5.6+marridb+apache部署项目时最终的时候遇到MYSQL_ATTR_INIT_COMMAND未定义报错,百度后发现是php扩展未添加
1.进入PHP源码包ext/pdo目录
cd ext/pdo
2.执行/usr/local/php/bin/phpize[假设PHP的安装目录为/usr/local/php]
/usr/local/php/bin/phpize
3.配置扩展pdo
./configure --with-php-config=/usr/local/php/bin/php-config --enable-pdo=shared
4.编译安装pdo
make && make install
成功则出现
Installing shared extensions: /usr/local/php//lib/php/extensions/no-debug-non-zts-20060613/
Installing header files: /usr/local/php//include/php/
Installing PDO headers: /usr/local/php//include/php/ext/pdo/
说明在/usr/local/php//lib/php/extensions/no-debug-non-zts-20060613/目录下生成了pdo.so文件
6.在php配置文件中加上
extension=”/usr/local/php//lib/php/extensions/no-debug-non-zts-20060613/pdo.so”
7.在PHP源码包中进入pdo_mysql
cd ext/pdo_mysql
8.执行/usr/local/php/bin/phpize
9.配置pdo_mysql[假设Mysql的安装目录为/usr/local/mysql]
./configure --with-php-config=/usr/local/php/bin/php-config --with-pdo-mysql=/usr/local/mysql
10.编译pdo_mysql 安装pdo_mysql
make && make install
成功则出现
Installing shared extensions: /usr/local/php//lib/php/extensions/no-debug-non-zts-20060613/
说明的/usr/local/php//lib/php/extensions/no-debug-non-zts-20060613/目录下生成了pdo_mysql.so文件
12.在php配置文件中加上
extension=”/usr/local/php//lib/php/extensions/no-debug-non-zts-20060613/pdo_mysql.so”
重启php和(nginx或Apache)即可!
但是通过查看phpinfo,还是失败
通过strace命令跟踪服务
strace /usr/local/php7/sbin/php-fpm -i 2>1.log跟踪服务启动项
发现我的php-fpm是在/etc/php/php.ini里启动它,而我之前一直在/usr/local/php/etc/php.ini里修改,所以无效,复制过去就解决了问题
本文转自 水滴的历程 51CTO博客,原文链接:http://blog.51cto.com/12390959/2048349