今天上传一个源代码,发现我的lamp环境不支持mysql的PDO ,这不科学,一般都支持的吧,然后去看了一下php.ini把以下一行打开:
extension = pdo_mysql.so
重启apache,还是不行。
运行了一下phpinfo ,看到编译命令,原来真的没有编译mysql的pdo 好吧,这只能后期编译了
1. 如何获得
http://pecl.php.net/package/PDO_MYSQL
另一种方式是svn获得
svn co http://svn.php.net/viewvc/php/php-src/trunk/ext/pdo_mysql/
2. 安装
首先解压 ,我这里放在home目录里
tar -zxvf PDO_MYSQL-1.0.2.tgz
//进入目录
cd PDO_MYSQL-1.0.2
//执行
/usr/local/php/bin/phpize
注:/usr/local/php 是我的 php 安装目录
执行完 phpize 命令后,在 pdo_mysql 目录中就会出现 configure
./configure --with-php-config=/usr/local/php/bin/php-config --with-pdo-mysql=/usr/local/mysql/ --enable-pdo=shared --with-mysql-config=/usr/local/mysql/mysql_config
参数说明:
--with-php-config=/usr/local/php/bin/php-config 指定安装 PHP 的时候的配置
--with-pdo-MySQL=/usr/local/mysql/ 指定 MySQL 数据库的安装目录位置
编译安装
make && make install
3.编译完成之后,请注意是否出现类似以下图片所示信息
如果出现说明编译安装成功,请十分注意红线圈住的目录(注意:不同时间段目录名称可能不一样)。
编译安装完成之后,生成的 pdo_mysql.so 文件就放置在这个目录下。
4、修改 php.ini 文件
使用 vi 打开你机器的 php.ini 文件,添加一段代码“extension=/usr/local/php/lib/php/extensions/no-debug-non-zts-20090626/pdo_mysql.so”,加载 pdo_mysql.so 文件
效果如下图:
保存退出编辑!
5. 查看 phpinfo()
首先重启 Apache 服务器。使用 phpinfo() 函数查看 php 的安装信息,如出现下图所示说明 PDO 扩展安装成功。
===可能会出现的错误===
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模块加进去了.