我遇到了magento命令的问题:php shell / indexer.php reindexall
堆栈追踪:
0 /home/taatoo/www/lib/Zend/Db/Adapter/Abstract.php(459):> Varien_Db_Adapter_Pdo_Mysql-> _connect()
1 /home/taatoo/www/lib/Zend/Db/Adapter/Pdo/Abstract.php(238):Zend_Db_Adapter_Abstract->查询('SET NAMES utf8',数组)
2 /home/taatoo/www/lib/Varien/Db/Adapter/Pdo/Mysql.php(419):Zend_Db_Adapter_Pdo_Abstract->查询('SET NAMES utf8',数组)
3 /home/taatoo/www/app/code/core/Mage/Core/Model/Resource.php(169):Varien_Db_Adapter_Pdo_Mysql-> query('SET NAMES utf8')
4 /home/taatoo/www/app/code/core/Mage/Core/Model/Resource.php(110):Mage_Core_Model_Resource-> _newConnection('pdo_mysql',Object(Mage_Core_Model_Config_Element))
5 /home/taatoo/www/app/code/core/Mage/Core/Model/Resource/Db/Abstract.php(320):Mage_Core_Model_Resource-> getConnection('core_write') 6 /home/taatoo/www/app/code/core/Mage/Core/Model/Resource/Db/Abstract.php(350):/ home / taatoo / www / lib / Varien / Db / Adapter中的Mage_Core第302行的/Pdo/Mysql.php
第301/302/303行是:
if (!extension_loaded('pdo_mysql')) {
throw new Zend_Db_Adapter_Exception('pdo_mysql extension is not installed');
}
或者,如果我在/ home / project / www /或/ home / project / www / lib / Varien / Db / Adapter / Pdo /中执行print_r(get_loaded_extensions());
,我正确地获得了“pdo_mysql”扩展名。
如果我在此脚本中执行true
,我也会获得var_dump(extension_loaded('pdo_mysql'));
。
但false
如果我在/home/project/www/lib/Varien/Db/Adapter/Pdo/Mysql.php中做同样的事情
答案 0 :(得分:1)
如评论中所述,您可能正在使用两个不同的php.ini文件
要检查一下,请将throw new Zend_Db_Adapter_Exception
行更改为
throw new Zend_Db_Adapter_Exception(
'pdo_mysql extension is not installed. php.ini:'
. get_cfg_var('cfg_file_path')
);
并将结果与
的输出进行比较var_dump(get_cfg_var('cfg_file_path'), extension_loaded('pdo_mysql'));
在命令行脚本中。
另见:
http://docs.php.net/manual/en/function.get-cfg-var.php
http://docs.php.net/manual/en/function.php-ini-loaded-file.php
http://docs.php.net/manual/en/function.php-ini-scanned-files.php
答案 1 :(得分:1)
您经常会发现用于Web的PHP和PHP CLI(命令行界面)使用不同的php.ini文件。由于您的问题发生在CLI中,请键入php -m
并查看列表中是否包含pdo_mysql。如果不是,您可以通过键入php --ini
找到要编辑的php.ini文件。
需要在php.ini中的行是extension=php_pdo_mysql.so
。最有可能是它,但用分号注释掉。