当DLO未加载时,Magento Cron作业失败

时间:2015-01-21 12:02:45

标签: php magento pdo cron

我正在尝试运行Magento Cron作业,但收到此错误消息。我查看了phpinfo(),其中显示了应加载的所有内容以及get_loaded_extensions() shows => PDO [27] => pdo_mysql [28] => pdo_sqlite [29]

有什么想法,我可以做下一步找到原因吗?

谢谢, 克里斯

PHP Fatal error: Uncaught exception 'Zend_Db_Adapter_Exception' with
message 'The PDO extension is required for this adapter but the extension is
not loaded' in /home/k117235a/domains/greenman-chris.eu/private_html/lib/Zend/Db/Adapter/Pdo/Abstract.php:342
Stack trace: 
#0 /home/k117235a/domains/greenman-chris.eu/private_html/lib/Zend/Db/Adapter/Abstract.php(248): 
Zend_Db_Adapter_Pdo_Abstract->setFetchMode(2) 
#1 /home/k117235a/domains/greenman-chris.eu/private_html/app/code/core/Mage/Core/Model/Resource.php(175): 
Zend_Db_Adapter_Abstract->__construct(Array)
#2 /home/k117235a/domains/greenman-chris.eu/private_html/app/code/core/Mage/Core/Model/Resource.php(110): 
Mage_Core_Model_Resource->_newConnection('pdo_mysql', Object(Mage_Core_Model_Config_Element))
#3 /home/k117235a/domains/greenman-chris.eu/private_html/app/code/core/Mage/Core/Model/Resource/Db/Abstract.php(320): 
Mage_Core_Model_Resource->getConnection('core_write')
#4 /home/k117235a/domains/greenman-chris.eu/private_html/app/code/core/Mage/Core/Model/Resource/Db/Abstract 
in /home/k117235a/domains/greenman-chris.eu/private_html/lib/Zend/Db/Adapter/Pdo/Abstract.php 
on line 342

3 个答案:

答案 0 :(得分:0)

可能你正在从浏览器中检查phpinfo(),但扩展名可能只是为apache / nginx加载,而不是为命令行加载,这就是我假设cronjob php文件将运行的方式。

检查CLI的扩展是否已启用,通常位于以下位置:

/etc/php5/cli/conf.d/20-pdo_mysql.ini (the name might not be exactly the same)

它可能只在/ etc / php5 / apache2 /或/ etc / php5 / php-fpm /

您可以从其他位置复制它,也可以使用以下内容创建新文件:

extension=pdo_mysql.so

之后,通过从命令行运行来检查扩展是否已加载:

php -i | grep pdo

如果已加载,您应该看到一些输出,而cronjob现在可以正常工作。

我希望它有所帮助。

答案 1 :(得分:0)

使用“$ which php”确保您使用自己认为的PHP 查看PHP正在使用的命令行php.ini,看看是否禁用了任何扩展

答案 2 :(得分:0)

另一种方法是让Apache使用wget:

运行cron作业
[specified time] wget -q http://magento.url.com/cron.php

使用此方法也有助于文件权限存在问题的情况(特别是涉及Magento的缓存时)。