我陷入了一个非常奇怪的境地。
我的网站托管在共享主机上,突然停止工作,报告致命错误:未找到“PDO”类
所以我创建了一个名为test.php的验证文件,并将它放在 public_html 文件夹中。
测试.php:
<?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 类已安装,并且 PDO 和 PDO_mysql 都从 phpinfo() 调用中列出。
然后我在网络浏览器上运行了 test.php。它返回未安装 PDO,并且 PDO 和 PDO_mysql 都列在 phpinfo() 打印调用中。
什么可能导致这种行为?
更新:
我已经尝试将下面的扩展行添加到 php.ini 中,但问题仍然存在。我还通过调用get_cfg_var('cfg_file_path')确保已将这些行添加到正确的 php.ini 文件中
扩展=pdo.so
扩展=pdo_mysql.so