【发布时间】:2013-04-21 07:41:10
【问题描述】:
我陷入了一个非常奇怪的境地。
我的网站托管在共享主机上,突然停止工作报告致命错误:未找到“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 之前,我检查了已安装的模块:$ php -m 并且 PDO 和 PDO_mysql 都在那里;
- 然后我运行 $ cd public_html $ php -f test.php。它返回 PDO 类已安装,并且 PDO 和 PDO_mysql 都从 phpinfo() 调用中列出。
然后我在网络浏览器上运行了 test.php。它返回 PDO NOT installed 并且 PDO 和 PDO_mysql 都列在 phpinfo() 打印调用中。
什么可能导致这种行为?
更新:
我已经尝试将下面的扩展行添加到 php.ini 中,但是 问题仍然存在。我还确保我已将这些行添加到 通过调用 get_cfg_var('cfg_file_path')
正确的 php.ini 文件extension=pdo.so
extension=pdo_mysql.so
【问题讨论】:
-
作为旁注使用 Mysqli。
-
那个 PDO 是在命令行解释器中安装的,而不是在 Web 服务器模块中?