未找到 ZF2 类 PDO,但在 php 配置中启用了 PDO

Posted

技术标签:

【中文标题】未找到 ZF2 类 PDO,但在 php 配置中启用了 PDO【英文标题】:ZF2 Class PDO not found but PDO is enabled in php config 【发布时间】:2015-12-08 02:41:55 【问题描述】:

我的 zf2 应用程序一直运行良好,但突然我开始收到此错误

致命错误:在第 21 行的 /home/doaminName/public_html/xxxxx.com/config/autoload/global.php 中找不到类“PDO”

我的 PHP 版本是原生的 (5.4),这里是来自 phpinfo 的配置命令。 PDO 通过这一行启用 --enable-pdo=shared。

'./configure' '--enable-bcmath' '--enable-calendar' '--enable-exif' '--enable-ftp' '--enable-gd-native-ttf' '--enable-libxml' '--enable-mbstring' '--enable-pdo=shared' '--enable-soap' '--enable-sockets' '--enable-zip' '--prefix=/usr/local' '--with-bz2' '--with-curl=/opt/curlssl/' '--with-freetype-dir=/usr' '--with-gd' '--with-gettext' '--with-imap=/opt/php_with_imap_client/' '--with-imap-ssl=/usr' '--with-jpeg-dir=/usr' '--with-kerberos' '--with-libdir=lib64' '--with-libexpat-dir=/usr' '--with-libxml-dir=/opt/xml2' '--with-libxml-dir=/opt/xml2/' '--with-mcrypt=/opt/libmcrypt/' '--with-mysql=/usr' '--with-mysql-sock=/var/lib/mysql/mysql.sock' '--with-mysqli=/usr/bin/mysql_config' '--with-openssl=/usr' '--with-openssl-dir=/usr' '--with-pcre-regex=/opt/pcre' '--with-pdo-mysql=shared' '--with-pdo-sqlite=shared' '--with-pic' '--with-png-dir=/usr' '--with-tidy=/opt/tidy/' '--with-xmlrpc' '--with-xpm-dir=/usr' '--with-zlib' '--with-zlib-dir=/usr'

知道问题出在哪里吗?

【问题讨论】:

在 PHP 文件中尝试<?php phpinfo(); 以查看您的 PHP 是如何配置的。也许您需要在php.ini 中启用 PDO?您的主机发生了一些变化 - 您管理此服务器吗?尝试重新启动 Apache。 【参考方案1】:

好吧,你可以尝试在 global.php 的第 21 行设置为 \PDO

所有对 PDOException 的后续调用也必须进行转换。

如果它不起作用,那么你的 php 是在没有 PDO 的情况下构建的。

【讨论】:

到目前为止它一直有效。我不明白为什么我现在得到这个。当我将 php 版本更改为 5.4(不是本机)时,它可以正常工作。但这迫使我更改该版本不支持的所有内容。

以上是关于未找到 ZF2 类 PDO,但在 php 配置中启用了 PDO的主要内容,如果未能解决你的问题,请参考以下文章

ZF2应用程序中的原则2:未找到实体“没有要处理的元数据类”。

已加载 PDO 和 pdo_mysql 但未找到类

PDO_ODBC:未找到数据源名称且未指定默认驱动程序

pdo

如何在 ZF2 中将 ServiceManager 的实例放入模型中

rhel6 上的 php pdo_informix - 未实现可选功能