Magento Cron Job在DLO未加载时失败


Magento Cron Job fails while DLO not loaded

我正在尝试运行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

可能您正在从浏览器检查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 现在应该可以工作了。

我希望它有所帮助。

使用"$ what php"来确保你使用的是你认为的PHP。
查看 php.ini您的命令行 PHP 正在使用,看看是否有任何扩展被禁用

另一种方法是让 Apache 使用 wget 运行 cron 作业:

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

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