当php.ini存在时,PDO从phpinfo()中消失

时间:2013-12-05 01:04:25

标签: php mysql pdo shared-hosting

我添加了以下php.ini(这是文件的100%):

upload_max_filesize = 200M
post_max_size = 200M
session.gc_maxlifetime = 6000
max_execution_time = 600

当它出现时,phpinfo()在configure命令中列出PDO但不在其他地方。驱动程序,API版本和SQLite版本都消失。当查询开始失败且“未找到”类'PDO'时,我发现了这一点。

如果删除php.ini,我会得到不同的结果,请参阅下文。这是在共享服务器上。我该怎么办?我绝对必须修改php.ini。

PDO settings

3 个答案:

答案 0 :(得分:3)

如果您的ini文件只包含那些vars,它只会覆盖它们并使用其他值的主值,但在大多数情况下,默认情况下禁用pdo,mysqli,mbstring,sqlite等扩展来节省资源,现在大多数共享主机都让你启用它们。

答案 1 :(得分:2)

我遇到了同样的问题。我的解决方案是在php.ini中指示可加载扩展文件夹的行不正确。

我改变了:

; Directory in which the loadable extensions (modules) reside.
extension_dir = "/home/mycmecre/public_html/php_extensions"
;extension_dir = "/usr/local/lib/php/extensions/no-debug-non-zts-20060613"

; Directory in which the loadable extensions (modules) reside.
;extension_dir = "/home/mycmecre/public_html/php_extensions"
extension_dir = "/usr/local/lib/php/extensions/no-debug-non-zts-20060613"

和PDO神奇地为我加载。希望这可以帮助某人,因为我需要花费数小时才能弄明白,而且显然我的网络托管技术支持时间更长,因为他们还没有回电话。

答案 2 :(得分:1)

如果忽略php.ini中的扩展程序(例如PDO)会导致扩展程序被禁用。

我建议您抓取一个示例/默认php.ini文件并添加修改。以下是关于样本php.ini s,https://stackoverflow.com/a/9602645/1349295的上一篇SO帖子。