为PHP编译pdo和pdo_mysql

为PHP编译pdo和pdo_mysql,php,pdo,Php,Pdo,我正在尝试编译pdo.so和pdo_mysql.so,以便在我的PHP5安装中获得pdo支持。 我尝试了以下方法: ./configure --prefix=/thedirectory --with-mysql --with-pdo-mysql --enable-pdo 编译成功,但未生成.so。 我应该安装/指定mysql吗 pdo支持应该在php内核中编译吗? 如果我运行php-m,我可以看到PDO和PDO_mysql已注册,但是phpinfo()表示不支持PDO_mysql。 我猜php

我正在尝试编译pdo.so和pdo_mysql.so,以便在我的PHP5安装中获得pdo支持。 我尝试了以下方法:

./configure --prefix=/thedirectory --with-mysql --with-pdo-mysql --enable-pdo
编译成功,但未生成.so。 我应该安装/指定mysql吗

pdo支持应该在php内核中编译吗? 如果我运行php-m,我可以看到PDO和PDO_mysql已注册,但是phpinfo()表示不支持PDO_mysql。 我猜php-m只是告诉我php有pdo支持,但仍然需要

有人能给我建议吗


感谢

最新版本的PHP附带了用于MySQL、Oracle、PgSQL、ODBC、SQLite和Firebird/Interbase的PDO驱动程序。您所要做的就是在
php.ini中启用它们:

;extension=php_pdo_firebird.dll
extension=php_pdo_mysql.dll
;extension=php_pdo_oci.dll
;extension=php_pdo_odbc.dll
extension=php_pdo_pgsql.dll
;extension=php_pdo_sqlite.dll
在这里,我启用了MySQL和PgSQL,而所有其他的都被禁用


(这是来自Windows的php.ini文件,但在linux上看起来几乎相同,只是扩展名的形式为
pdo_mysql.so
pdo_pgsql.so
,等等)。

使用以下配置选项:

./configure \
--with-mysqli=/home/user/programs/mysql/install/bin/mysql_config \
--with-pdo-mysql=/home/user/programs/mysql/install
/home/user/programs/mysql/install
目录是安装mysql的地方

您应该在phpinfo()输出中看到一个
pdo_mysql
部分,显示以下内容:

PDO Driver for MySQL    enabled
Client API version  5.7.16 

你使用哪种系统?PDO包含在最新版本中。为什么要编译它?您的PHP CLI二进制文件中编译了PDO支持。您的web服务器使用的PHP二进制文件不存在。我认为为了生成so文件,您需要
配置
/
制作
/
制作安装
-
配置
通常只生成一个制作文件,它实际上并不编译它。。。您是如何运行PHP的,针对哪个web服务器?Apache/mod_php或CGI/FCGI?感谢您的回答。我使用的是Redhat4Linux,我得到了一个5.2.17的编译包,但是pdo_mysql不能在上面运行,因为我得到了“未捕获的异常‘PDOException’,带有消息‘找不到驱动程序’”,所以我试图通过将pdo.So和pdo_mysql.So放在extensions文件夹中并修改php.ini来使用这些扩展来添加支持。我试图从php-5.4.3源代码编译。当然,我运行了make&makeinstall,它是成功的,但正如所说的,它没有生成。所以我使用PHP2.2和mod_php5。so@lepolac如果您得到了一个
pdo异常
,您就不需要担心
pdo.so
。如果你使用的是redhat,你就不能用rpm来获取它吗?@DaveRandom哦,是的,你是对的,pdo可能已经启用了。事实上,phpinfo告诉我pdo_sqlite已启用,但mysql未启用。easy rpm解决方案只存在于一个理想世界中,不幸的是,这个理想世界不是我的:'(。我没有访问它的权限,而且我正在自定义位置构建所有这些。