我正在尝试运行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
答案 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的缓存时)。