lamp环境下php开启php_mysql扩展
PDO MySQL模块在安装php环境时默认是没有安装了,如果我们要使用PDO MySQL需要在php.ini配置文件中开启PDO MySQL模块功能即可,具体我来给大家介绍一下配置方法。
在windows服务器中
找到php安装目录的php.ini文件然后我们搜索到
;extension=php_pdo.dll 这一行,看这行前面是否有分号,如果有的话,把它去掉。然后找找有没有 extension=php_pdo_mysql.dll 如果有,同样去掉前面的分号。如果没有,则手动添加上
最终这两行配置内容如下
extension=php_pdo.dll
extension=php_pdo_mysql.dll
最后重启apahce/iis就可以了
在centos服务器
先到http://pecl.php.net/找需要的版本,我用的是稳定的版本。要先看看说明,特别是要注意mysql的php的版本。
wget http://pecl.php.net/get/PDO_MYSQL-1.0.2.tgz
tar xzvf PDO_MYSQL-1.0.2.tgz
cd PDO_MYSQL-1.0.2
/usr/local/php/bin/phpize
Configuring for:
PHP Api Version: 20041225
Zend Module Api No: 20060613
Zend Extension Api No: 220060519
./configure –with-php-config=/usr/local/php/bin/php-config –with-pdo-mysql=/usr/local/mysql
make
make install
在make的时候有可能会出现下面的错误:
In file included from /data1/PDO_MYSQL-1.0.2/pdo_mysql.c:31:
/data1/PDO_MYSQL-1.0.2/php_pdo_mysql_int.h:25:19: error: mysql.h: No such file or directory
In file included from /data1/PDO_MYSQL-1.0.2/pdo_mysql.c:31:
/data1/PDO_MYSQL-1.0.2/php_pdo_mysql_int.h:36: error: expected specifier-qualifier-list before ‘MYSQL’
/data1/PDO_MYSQL-1.0.2/php_pdo_mysql_int.h:48: error: expected specifier-qualifier-list before ‘MYSQL_FIELD’
/data1/PDO_MYSQL-1.0.2/php_pdo_mysql_int.h:53: error: expected specifier-qualifier-list before ‘MYSQL_RES’
make: *** [pdo_mysql.lo] Error 1
解决办法:
这是因为在编译时需要mysql的头的文件,而它按默认搜索找不到头文件的位置,所以才出现这个问题.所以要将 /usr/local/mysql/include/ 目录下的mysql头文件链接到 /usr/local/include/ 的目录下:
ln -s /usr/local/mysql/include/* /usr/local/include/
然后再make和make install,pdo_mysql模块加进去了.
注意pdo_mysql的全路径,我的是:
/usr/local/php/lib/php/extensions/debug-non-zts-20060613/pdo_mysql.so
然后在/usr/local/lib/php.ini
加上一句:
extension=/usr/local/php/lib/php/extensions/debug-non-zts-20060613/pdo_mysql.so重新启动apache即可看到已经加载pdo_mysql成功。 (试验成功)