我刚刚复制了我们的文件和数据库。似乎所有东西都具有正确的权限,并链接到正确的数据库和指向正确路径的正确数据库。我有什么想法可以得到这个错误吗?
答案 0 :(得分:1)
这是一个有趣的错误。
Magento致命错误:include():无法在第93行的/lib/Varien/Autoload.php中重新声明类varien_profiler
这很有意思,因为我希望看到Varien_Profiler
,而不是'varien_profiler'。抛出此错误的行是您自动加载方法的最后一行。
#File: lib/Varien/Autoload.php
public function autoload($class)
{
if ($this->_collectClasses) {
$this->_arrLoadedClasses[self::$_scope][] = $class;
}
if ($this->_isIncludePathDefined) {
$classFile = COMPILER_INCLUDE_PATH . DIRECTORY_SEPARATOR . $class;
} else {
$classFile = str_replace(' ', DIRECTORY_SEPARATOR, ucwords(str_replace('_', ' ', $class)));
}
$classFile.= '.php';
//echo $classFile;die();
return include $classFile;
}
您的错误有些奇怪,似乎有人试图声明/使用
varien_profiler
类。但是,此类的所有标准Magento引用都是
Varien_Profiler
带领字案例。当您使用Varien_Profiler
时,Magento会尝试包含文件
lib/Varien/Profiler.php
但是,在您的情况下,Magento应该尝试包含文件
lib/varien/profiler.php
哪个不同 - 并且在标准安装中不存在。我猜你是从一个经过大量修改的unix系统下载的 - 并将其下载到Mac或Windows系统,其中区分大小写不是问题。
所有这些都是很长的说法 - 这是您特定安装的问题,您需要对其进行调试。正如其他评论者所指出的那样,最佳方法是获取堆栈跟踪并找出胭脂varien_profiler
的来源,然后将其修复为Varien_Profiler
。使用以下代码暂时修改上述功能
if($class == 'varien_profiler')
{
mageDebugBacktrace();
exit;
}
return include $classFile;
这将输出files.php:line-number的简化堆栈跟踪 - 类似这样的
[1] :
[2] /Users/alanstorm/Sites2014/magento-march2014.dev/app/Mage.php:665
[3] /Users/alanstorm/Sites2014/magento-march2014.dev/index.php:87
这可以让你追踪胭脂声明。