1.magento 1.x 版本,站点搬迁后,前台访问,提示错误:Fatal error: Class name must be a valid object or a string in /www/users/domain.name/includes/src/__default.php on line 29658
2.查看 __default.php 相应的行,大概有如下:
public function getConnectionTypeInstance($type)
{
if (!isset($this->_connectionTypes[$type])) {
$config = Mage::getConfig()->getResourceTypeConfig($type);
$typeClass = $config->getClassName();
$this->_connectionTypes[$type] = new $typeClass();
}
return $this->_connectionTypes[$type];
}
3.网上查得,这是mysql连接相关。查看 local.xml 文件中mysql的配置内容,是写了 pdo_mysqli ,但查看当前的php模块中,仅有 pdo_mysql
4.将 local.xml 文件中的 pdo_mysqli 替换为 pdo_mysql 后,就正常了
参考:
https://stackoverflow.com/questions/13377491/magento-fatal-error-class-name-must-be-a-valid-object-or-a-string
版权声明:本文内容由阿里云实名注册用户自发贡献,版权归原作者所有,阿里云开发者社区不拥有其著作权,亦不承担相应法律责任。具体规则请查看《阿里云开发者社区用户服务协议》和《阿里云开发者社区知识产权保护指引》。如果您发现本社区中有涉嫌抄袭的内容,填写侵权投诉表单进行举报,一经查实,本社区将立刻删除涉嫌侵权内容。
针对您在Magento 1.x版本站点搬迁后遇到的前台访问错误问题,具体表现为“Fatal error: Class name must be a valid object or a string in /www/users/domain.name/includes/src/__default.php on line 29658”,此错误与MySQL数据库连接配置不匹配有关。根据您的描述和已采取的解决措施,以下是详细的解析和建议:
错误原因分析:
__default.php
文件的getConnectionTypeInstance
方法中,该方法负责初始化数据库连接类型实例。local.xml
配置文件原使用的是pdo_mysqli
作为数据库驱动,但实际PHP环境中仅安装了pdo_mysql
扩展,导致 Magento 尝试使用未安装的数据库驱动时抛出异常。解决方案回顾:
local.xml
中的数据库连接类型从pdo_mysqli
更改为与PHP环境匹配的pdo_mysql
,成功解决了问题。这一改动确保了Magento能够正确加载并使用已安装的MySQL PDO驱动,从而恢复了数据库连接功能。后续建议:
综上所述,您已经通过修改数据库连接配置解决了问题,未来在进行类似迁移操作时,提前做好环境兼容性验证和细致的配置审查将是预防此类问题的有效策略。