我遇到了一个非常奇怪的情况。
我的网站托管在共享主机上,从头开始,停止工作报告致命错误:未找到“PDO”类
所以我创建了一个名为 test.php 的验证文件,并将其放在public_html文件夹中。
test.php的:
<?php
if (class_exists('PDO')) {
print "PDO is installed";
}
else {
print "PDO NOT installed";
}
phpinfo();
?>
因此,上面的脚本会检查PDO类是否存在,并在此之后打印有关已安装和启用的内容的php信息。
首先,我在SSH终端上做了一些测试:
然后我在网络浏览器上运行了test.php。它返回了未安装的PDO,并且在phpinfo()打印调用中列出了PDO和PDO_mysql。
什么可能导致这种行为?
更新:
我已经尝试将下面的扩展行添加到php.ini中了 问题依然存在。我也确定我已将这些行添加到了 通过调用 get_cfg_var('cfg_file_path')
来调用php.ini文件延长= pdo.so
延长= pdo_mysql.so
答案 0 :(得分:4)
PHP有两个独立的.ini文件。一个用于命令行,一个用于非命令行。您可能只在命令行.ini文件中加载了PDO扩展。找到.ini文件并确保已加载PDO扩展。您正在寻找以下几行。
extension=pdo.so
extension=pdo_mysql.so
如果您向我们提供您的操作系统,我们可以指导您到哪里查看。
答案 1 :(得分:1)
好的,这是我解决这个问题的方法,以防其他人遇到同样的问题。
我创建了一个php.ini文件的副本,删除了原始文件,通过Web浏览器刷新了 test.php 文件,将php.ini文件复制回原来的位置。
这就解决了。
答案 2 :(得分:1)
在Ubuntu 13.04下,我不知道它是否与其他操作系统相同但是
从
移动pdo文件的/ var / lib中/ PHP5 /模块/ apache2的/ enabled_by_admin
到
/ var / lib / php5 / modules / apache2 / enabled_by_maint
让php在这个圣诞节快乐,并在phpinfo()上正确声明。