【问题标题】:The PDO extension is required for this adapter but the extension is not loaded error with a CRON job此适配器需要 PDO 扩展,但 CRON 作业未加载扩展错误
【发布时间】:2013-03-03 23:01:07
【问题描述】:

我正在尝试运行访问我的数据库并进行一些文件传输的 CRON 作业。从另一个刚刚进行文件传输的 CRON 作业改编它,我输入了命令:

php -qn -d memory_limit=128M 

在我的 CRON 文件前面。我记得我添加了 memory_limit 是因为我正在传输文件,但我一生都记不起为什么要使用 -qn -d。将相同的命令复制到另一个需要使用 Zend_Db_Adapter_Pdo_Mysql 访问数据库的 CRON 作业,我得到了错误:

“此适配器需要 PDO 扩展,但未加载扩展错误”

而且,只有当我使用命令时

php -q

错误消失了。 2个问题,然后:

1) 对于 CRON 作业,“-qn -d memory_limit=128M”和“php -q”有什么区别?

2) 为什么我使用前一个命令而不是后一个命令时会出现 PDO 问题?

-埃里克

【问题讨论】:

    标签: zend-framework pdo cron jobs


    【解决方案1】:

    -n 标志表示“不要使用任何 php.ini 文件”,因此它不会加载任何扩展(导致 PDO 错误)。 -d 标志允许您设置 PHP 配置变量,因此在您的示例中,您将覆盖默认内存限制。

    【讨论】:

    • 考虑到这一点,我可以把蛋糕也吃掉吗?换句话说,是否有一个配置选项来加载扩展以及覆盖内存限制?
    • 是的,应该可以,只需删除 -n: -q -d memory_limit=128M
    • 好的!这就说得通了。但是,我的主机给我的印象(如果这会有所不同,我正在使用共享主机提供商)我也需要 CRON 作业的 -n ,否则 memory_limit=128M 将被忽略。如果这是真的,有没有办法通过 CRON 作业加载扩展,或者 -n 实际上是多余的?
    • 你不需要-n,你的内存限制仍然会被使用。我不会说 -n 标志是多余的,但它的目的与 -d 标志完全无关。
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2013-10-15
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多