Home >php教程 >php手册 >为PHP增加PDO-Mysql驱动,php增加pdo-mysql

为PHP增加PDO-Mysql驱动,php增加pdo-mysql

WBOY
WBOYOriginal
2016-06-13 09:17:151115browse

为PHP增加PDO-Mysql驱动,php增加pdo-mysql

一、问题 

公司有一台老的Linux服务器,Apache+MySQL+Php结构的, 要把最近做的一个PHP项目部署到上面,做为测试环境,

由于新项目是用PHP的YII框架开发的,而YII框架的数据访问使用PDO接口的,因此需要PDO_Mysql驱动的支持。

【注:当前,PDO已成为PHP访问数据库的主要方式,这也是面向接口编程的设计思想。
PHP高版本也都内置了PDO、PDO-SQLite、PDO-Mysql的支持。相信现在大部分的PHP服务器上都支持PDO了。
如果您现在还在用老的 mysql mysqli方式的话,不放用用PDO。】

二、思路

为PHP配置PDO-Mysql驱动无非两种方式,
一种是重新编译、安装、配置PHP,在configure的时候加上--with-pdo-mysql参数即可,
另外一种就是在现有PHP的基础上,增加一个pdo-mysql扩展。

本着方便快速的原则,我们选择了在现有基础上增加pdo-mysql driver的方式。

三、具体操作

0、准备
首先要知道自己当前的php安装在什么位置,假设位于 /user/local/php
目录结构大致是这样的,
 bin
 etc
 include
 lib
 logs
 man

找到这几个文件,下面会用到:
lib/php.ini  php的配置文件,想必您不会陌生,也有可能在etc目录下,看您的具体情况
bin/phpize   这是在不重新编辑php的情况下,为php增加新的扩展的
bin/php-config  php-config是个脚本文件,用来得到一些php的相关信息,比如php安装在哪个目录,扩展库路径是什么等等。 如果您的系统中安装了不止一个php版本, 这个参数会比较有用,用来指定您的扩展安装到哪个php版本上。

另外,要知道自己的Mysql安装在什么地方,
这里假设位于 /usr/local/mysql


1、下载pdo-mysql驱动的源码
网址在 http://pecl.php.net/package/PDO_MYSQL ,从官方网页可以看到这种方式已经不被鼓励使用了,
因为PDO都已经集成到PHP内核中了,只需编译的时候加个参数即可。

以下步骤按顺序操作:

wget http://pecl.php.net/get/PDO_MYSQL-1.0.2.tgz
tar zxvf PDO_MYSQL-1.0.2.tgz
cd PDO_MYSQL-1.0.2
/usr/local/php/bin/phpize
./configure --with-php-config=/usr/local/php/bin/php-config  --with-pdo-mysql=/usr/local/mysql
make
make install


这时,pdo-mysql驱动就已经编译完成了,
一般就在这个目录
/usr/local/php/lib/php/extensions/no-debug-non-zts-20090626
这里是php扩展的存放位置,可能已经有了很多其他的扩展了,如memcache.so
查看一下该目录,应该已经可以看到 pdo_mysql.so 库文件了。


2、配置php.ini文件

vi /usr/local/php/lib/php.ini

找到 extentions 这一个配置段, 接着增加 pdo_mysql.so 就行了


extension_dir = "/usr/local/php/lib/php/extensions/no-debug-non-zts-20060613/"
extension = "memcache.so"
extension = "pdo_mysql.so"

3、重启apache服务器,就算完成了
apache/bin/apachectl restart

4、phpinfo看一下,是否生效
写一个php文件,简单的一句话 phpinfo() 

打开 http://www.aaa.com/test.php 
搜索pdo
会看到如下的提示,说明pdo已经支持mysql驱动了,就可以在php中通过pdo操作mysql数据库了。
PDO drivers sqlite, sqlite2, mysql

Statement:
The content of this article is voluntarily contributed by netizens, and the copyright belongs to the original author. This site does not assume corresponding legal responsibility. If you find any content suspected of plagiarism or infringement, please contact admin@php.cn