未加载 DLO 时 Magento Cron 作业失败

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

之后检查扩展是否由 运行ning 从命令行加载:

php -i | grep pdo

如果已加载,您应该会看到一些输出,并且 cronjob 现在应该可以工作了。

希望对您有所帮助。

使用“$ which php”确保您使用的是您认为的 PHP。
查看 php.ini 您的命令行 PHP 正在使用并查看是否有任何扩展被禁用

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

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

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