首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >致命错误:未找到类'PDO‘(但已安装并在终端上工作)

致命错误:未找到类'PDO‘(但已安装并在终端上工作)
EN

Stack Overflow用户
提问于 2013-04-27 03:56:37
回答 4查看 11.6K关注 0票数 1

我遇到了一个很奇怪的情况。

我的网站托管在共享主机上,突然停止了报告致命错误的工作:类'PDO‘未找到

因此,我创建了一个名为test.php的验证文件,并将其放在public_html文件夹中。

test.php:

代码语言:javascript
复制
<?php
if (class_exists('PDO')) {
  print "PDO is installed"; 
}
else {
  print "PDO NOT installed";
}

phpinfo();
?>

因此,上面的脚本检查PDO类是否存在,然后打印出有关安装和启用什么的php信息。

首先,我在SSH终端上做了一些测试:

  • 在运行test.php之前,我检查了安装的模块:$ php、-m、以及PDO和PDO_mysql;
  • 然后运行$ cd public_html $ php -f test.php。它返回安装了PDO类,并从phpinfo()调用中列出了PDO和PDO_mysql。

然后我在网络浏览器上运行test.php。它返回未安装的PDO,并在phpinfo()打印调用中列出了PDO和PDO_mysql。

是什么导致了这样的行为?

更新: 我已经尝试将下面的扩展行添加到php.ini中,但问题仍然存在。我还确保通过调用get_cfg_var('cfg_file_path')将这些行添加到正确的php.ini文件中。 extension=pdo.so extension=pdo_mysql.so

EN

回答 4

Stack Overflow用户

回答已采纳

发布于 2013-04-27 07:39:18

好的,这是我如何解决这个问题,以防其他人遇到同样的问题。

我创建了php.ini文件的副本,删除了原始文件,通过web浏览器刷新了test.php文件,将php.ini文件复制回原来的位置。

这就解决了问题。

票数 1
EN

Stack Overflow用户

发布于 2013-04-27 04:00:03

PHP有两个独立的.ini文件。一个用于命令行,另一个用于非命令行。您可能只在命令行.ini文件中加载了PDO扩展名。找到您的.ini文件并确保您已经加载了PDO扩展名。你在找像下面这样的台词。

代码语言:javascript
复制
extension=pdo.so
extension=pdo_mysql.so

如果您为我们提供了您的操作系统,我们可以准确地指导您查找的位置。

票数 4
EN

Stack Overflow用户

发布于 2013-12-25 08:22:58

在Ubuntu13.04中,我不知道其他操作系统是否相同,但是

将pdo文件从

/var/lib/php5/modules/apache2/enabled_by_admin

/var/lib/php5/modules/apache2/enabled_by_maint

让php在圣诞节快乐,并在phpinfo()上正确声明它。

票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/16248169

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档