linux 安装pdo_mysql

linux 安装pdo_mysql,第1张

网站不能访问 查看apache日志 PHP Fatal error: Uncaught exception 'PDOException' with message 'could not find driver'

(PHP 5.3.29)

网站php代码是用pdo模块去访问mysql数据库

#查看php中pdo是否支持mysql php -m | grep -i pdo_mysql

#何为pdo

POD(PHP Data Object)扩展在PHP5中加入,PHP6中将默认识用PDO连接数据库,所有非PDO扩展将会在PHP6被从扩展中移除。该扩展提供PHP内置类 PDO来对数据库进行访问,不同数据库使用相同的方法名,解决数据库连接不统一的问题。

#下载pdo_mysql源码

wget http://pecl.php.net/get/PDO_MYSQL-1.0.2.tgz

tar -zxv -f PDO_MYSQL-1.0.2

cd PDO_MYSQL-1.0.2

/usr/local/bin/phpize #必须安装有 m4 autoconf

./configure --with-php-config=/usr/local/bin/php-config --with-pdo-mysql=/usr/local/mysql

make &&make install

#pdo_mysql.so移动到/usr/lib64/php/modules/

find / -name pdo_mysql.so -type f -exec mv {} /usr/lib64/php/modules/ \

#模块加入到php中

vim /usr/local/lib/php.ini

extension_dir = "/usr/lib64/php/modules/"

extension = "pdo_mysql.so"

#重启apache

apachectl -k restart

php模块安装的方式

1、静态安装

将先将在安装php之前先将需要安装的程序装上,如ftp、mhash、mcrypt……安装完成后,解压php安装包,执行./configure

--with-ftp

--with-mhash

--wth-mcrypt等等。后面具体跟的参数可以参看./configure

--help查看。编译好后,执行make

&&

make

install

就行了。

2、动态安装

而在往往我们进行编译php时经常会忘记添加某扩展,后来想添加扩展,但是因为安装php后又装了一些东西如PEAR等,不想再重新装php,于是可以采用phpize来动态加载需要安装的模块。

具体实现方法如下(这里以忘记安装pdo_mysql模块为例):

cd

/root/source/php-5.3.10/ext/pdo_mysql

/usr/local/php/bin/phpize

在安装完mysql后,并不是进入/root/source/mysql-5.5.21目录运行phpize,而是进入php的源文件中要增加的扩展模块的文件目录---也就是/root/source/php-5.3.10/ext/pdo_mysql目录执行phpize。如果不是这样 *** 作的话就会提示下面的错误:

Cannot

find

config.m4.

Make

sure

that

you

run

'/usr/local/php/bin/phpize'

in

the

top

level

source

directory

of

the

module

关于上面的这个错误,我不得不鄙视下网上有些自以为是的家伙,自认为对所有的安装 *** 作很懂,报上面的错误的时候,去修改源代码,搞的乱七八糟,误人子弟。根本不按php官方的文档 *** 作。

目录/root/source/php-5.3.10/ext/pdo_mysql

,在运行phpize命令前并没有configure文件,只有config.m4文件。运行phpize就生成了一个可执行的configure文件。此时就可以按照下的方法编译了:

./configure

--with-php-config=/usr/bin/php-config

(还可以加一些其他的参数,可通过./configure

--help查看)

make

make

install

编译完成后会提示扩展模块生成在/usr/local/php/lib/php/extensions/no-debug-non-zts-20090626目录。

修改php.ini文件

vi

/usr/local/php/etc/php.ini

在其文件结尾加入下面的内容:

extension_dir="/usr/local/php/lib/php/extensions/no-debug-non-zts-20090626"

extension=pdo_mysql.so

安装完成后,重启php-fpm和web服务器。(因为我用的是php-fpm和tengine,如果用的是apache则也重启相应的程序,重新加载就行了)

PDO使用扩展库实现其功能,但PHP5默认未启用PDO,因此必须在php.ini中进行配置才能使用PDO。搜索php.ini,找到下面的这一行文本:

Windows Extensions

extension=php_pdo.dll

这是所有PDO驱动程序共享的扩展,必须得有。然后,就看你使用什么数据库,如果使用MySQL,那么添加下面的一行:

extension=php_pdo_mysql.dll

由于我们要使用MySQL和Access,所以要激活MySQL驱动和ODBC驱动程序:

extension=php_pdo.dll

extension=php_pdo_mysql.dll

extension=php_pdo_odbc.dll

不用谢。。


欢迎分享,转载请注明来源:内存溢出

原文地址: http://www.outofmemory.cn/zaji/6105892.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2023-03-15
下一篇 2023-03-15

发表评论

登录后才能评论

评论列表(0条)

保存