【发布时间】:2012-07-13 10:05:53
【问题描述】:
我正在尝试编译 pdo.so 和 pdo_mysql.so 以在我的 PHP5 安装中获得 pdo 支持。 我尝试了以下方法:
./configure --prefix=/thedirectory --with-mysql --with-pdo-mysql --enable-pdo
编译成功,但没有生成.so。 我应该有/指定一个 mysql 安装?
pdo 支持是否应该在 php core 中编译? 如果我运行 php -m 我可以看到 PDO 和 pdo_mysql 已注册,但 phpinfo() 声明不支持 pdo_mysql。 我猜 php -m 只是告诉我 php 支持 pdo 但仍然需要 .so?
谁能给点建议?
谢谢
【问题讨论】:
-
您使用哪个系统? PDO 包含在最新版本中。为什么要编译它?
-
您的 PHP CLI 二进制文件已编译 PDO 支持。您的 Web 服务器使用的 PHP 二进制文件不支持。我认为为了生成so文件,您需要
configure/make/make install-configure通常只生成一个makefile,它实际上并没有编译它......你如何运行PHP,针对哪个网络服务器? Apache/mod_php 还是 CGI/FCGI? -
感谢您的回答。我正在使用 redhat 4 linux,我已经获得了 5.2.17 的编译包,但是 pdo_mysql 不起作用,因为我得到“未捕获的异常 'PDOException' 和消息'找不到驱动程序'”所以我'我试图通过将 pdo.so 和 pdo_mysql.so 放在扩展文件夹中来添加支持,并修改 php.ini 以使用这些扩展。我正在尝试从 php-5.4.3 源代码编译。当然,我运行了 make & make install 并且它是成功的,但是如上所述,它不会生成 .so 我正在使用 PHP2.2 和 mod_php5.so
-
@lepolac 如果您达到
PDOException,则无需担心pdo.so。如果你用的是redhat,你不能用rpm来搞定吗? -
@DaveRandom 哦,是的,你是对的,那时 pdo 可能已启用。事实上,phpinfo 告诉我 pdo_sqlite 已启用,但 mysql 未启用。简单的 rpm 解决方案只存在于一个理想的世界中,不幸的是:'(。没有访问它的权限,无论如何我都在自定义位置构建所有这些。