我正在与Magento合作很长一段时间,但最近我感到很沮丧,因为我收到了“允许的内存大小”错误。这通常是固定的(根据我的理解)通过增加相关的.htaccess文件中的“php_value memory_limit”,自我启动商店以来,我已将其设置为较高的值。
在任何情况下,虽然我最近在error_log中收到以下错误:
PHP Fatal error: Allowed memory size of 52428800 bytes exhausted (tried to allocate 10282 bytes) in /home/store/public_html/includes/src/__default.php on line 2976
PHP Fatal error: Allowed memory size of 52428800 bytes exhausted (tried to allocate 32 bytes) in /home/store/public_html/includes/src/__default.php on line 56485
PHP Fatal error: Allowed memory size of 52428800 bytes exhausted (tried to allocate 77 bytes) in /home/store/public_html/includes/src/__default.php on line 56485
如果有帮助,我会指出相关的行如下。 (问题中的行标有** **)
2976:
try {
$includeFilePath = realpath($this->_viewDir . DS . $fileName);
if (strpos($includeFilePath, realpath($this->_viewDir)) === 0 || $this->_getAllowSymlinks()) {
**include $includeFilePath;**
} else {
Mage::log('Not valid template file:'.$fileName, Zend_Log::CRIT, null, null, true);
}
56485:
public function fetchAll($style = null, $col = null)
{
if ($style === null) {
$style = $this->_fetchMode;
}
try {
if ($style == PDO::FETCH_COLUMN) {
if ($col === null) {
$col = 0;
}
return $this->_stmt->fetchAll($style, $col);
} else {
**return $this->_stmt->fetchAll($style);**
}
} catch (PDOException $e) {
#require_once 'Zend/Db/Statement/Exception.php';
throw new Zend_Db_Statement_Exception($e->getMessage(), $e->getCode(), $e);
}
}
这里我觉得奇怪的是“52428800字节”,从我的理解转化为50MB。这些50MB可以预定义在哪里?我清楚地检查了我的php信息并且值无处可见,而且“php_value memory_limit”对应于我之前定义的并且远不及50MB。
我的Magento设置:
硬件设置:
当前的PHP配置:
如果某人有能力指出我如何解决这个问题的正确方向,我将非常感激。谢谢。
答案 0 :(得分:0)
可以在
中设置 php.ini
档案
您的Apache配置(.htaccess
或http.conf
/它包含)
在运行时调用ini_set
更有可能的是,你的webhost已经安装了限制内存的第三方PHP扩展(例如suhosin。我会先花时间联系他们,然后花很多时间追逐鬼魂。