编译php添加pdo_mysql

编译php添加pdo_mysql

我使用redhat linux 5.1 系统,
mysql,apache使用系统自带
之前编译过php支持了gd库,现在公司需要php支持pdo_mysql,但重新编译是加了--enable-pdo=shared --with-pdo-mysql=shared,编译完后,用phpinfo()查看,没有pdo_mysql出现。
在网上有看到可以单独安装pdo_mysql,下载源码包,安装,在php.ini中添加指向extension=pdo_mysql.so,但仍然在phpinfo()中不能出现,求救各位老大,帮解决。
php使用 php5.2.5
mysql使用5.0.22
apache使用2.2.3


QUOTE:
原帖由 xingbowu0419 于 2008-10-28 17:31 发表
我使用redhat linux 5.1 系统,
mysql,apache使用系统自带
之前编译过php支持了gd库,现在公司需要php支持pdo_mysql,但重新编译是加了--enable-pdo=shared --with-pdo-mysql=shared,编译完后,用phpinfo() ...

zlib的安装没有
贴编译参数
pdo_mysql  需要先安装 pdo模块,检查一下pdo装了吗?
./configure --prefix=/usr/local/php5 --with-apxs2=/usr/sbin/apxs --with-bz2 --enable-zip --enable-calendar --with-mysql=/usr --enable-pdo=shared --with-pdo-mysql=shared  --with-iconv  --enable-mbstring --with-curl --with-snmp --with-tidy --enable-exif --with-gd --with-jpeg-dir=/usr --with-png-dir=/usr --with-zlib-dir=/usr --with-xpm-dir=/usr --with-ttf=/usr --with-freetype-dir=/usr --enable-gd-native-ttf --with-ming=/usr --with-xmlrpc --enable-soap --enable-sockets --with-mcrypt --with-mhash --enable-shmop --enable-dba --with-gdbm --with-db4 --with-imap --with-imap-ssl --with-kerberos --with-mcrypt=/usr --with-mhash=/usr --enable-pcntli

这是我的编译参数,使用phpinfo查看时,pdo已经出来了,只是pdo_mysql没有出来。pdo模块已经安装上了,zlib也装上了。

按照官方的说法,php5.1及以上版本是自带PDO的,有两种配置方式(请使用第2种方式,第1种我没搞成功):

1、以共享模块的方法编译php,这样的好处是pdo作为一个单独的so,可以方便更新版本,在对php configure时需要增加参数:

首先下载pdo的安装包,当前最新版本是1.0.3,config、编译后安装就可以(按照官方解释,php自己编译出来后应该是有这个so的,我没找到,所以下载了pdo的包编译安装)。

接着编译php:
./configure --with-zlib --enable-pdo=shared --with-pdo-sqlite=shared --with-sqlite=shared --with-pdo-mysql=shared --with-mysql=shared
如果使用该方式,必须要指明Mysql和sqlite都为共享模块方式。
     Php编译安装后,在php.ini中增加extension=pdo.so这一行,在Php启动时动态的加载pdo的库,最好指明pdo.so的路径。
   我按该方式安装后发现PDO的驱动中没有任何数据库,由于时间原因,没有继续追查。

2、使用非共享模块的方式,也就是pdo作为php的一部分。在config php时修改一些参数即可:
     './configure' '--with-gd=/usr' '--enable-gd-native-ttf' '--with-freetype-dir=/usr' '--with-apxs2=/usr/local/apache2/bin/apxs' '--with-zlib' '--enable-pdo' '--with-pdo-mysql' '--with-mysql'