我在我的项目中有代码点火器框架。我的网站运行在windows平台上。有时我会犯这样的错误:
PHP致命错误: Wincache6484 free_memory中的失败:第44行D:\home\site\wwwroot\system\libraries\Log.php中未使用的块0x41d56d8
我试图通过更改内存的值来更改php.ini文件:
ini_set('memory_limit','2048M');但是,在我检查了memory_get_peak_usage();之后,我发现应用程序甚至没有比1MB更多的使用。我不知道这里发生了什么。我得到了空白页和网站,当这种情况下。
请问我你是否需要更多的信息或代码。
Log.php:
public function __construct()
{
$config =& get_config();
$this->_log_path = ($config['log_path'] != '') ? $config['log_path'] : APPPATH.'logs/';
if ( ! is_dir($this->_log_path) OR ! is_really_writable($this->_log_path)) // This is line 44.
{
$this->_enabled = FALSE;
}
if (is_numeric($config['log_threshold']))
{
$this->_threshold = $config['log_threshold'];
}
if ($config['log_date_format'] != '')
{
$this->_date_fmt = $config['log_date_format'];
}
}log.php文件是默认的代码点火器文件。
最终解决方案:
我用以下内容更新了我的php.ini文件:
wincache.fcenabled=0
wincache.ocenabled=0
wincache.ucenabled=0
wincache.reroute_enabled = 0
wincache.srwlocks = 0发布于 2015-04-27 18:24:50
这是Windows上的IIS或WinCache的一个问题。您可以在iis论坛上跟踪官方螺纹。为了确定,请在php.ini中检查以下选项:
wincache.reroute_enabled = 0
wincache.srwlocks = 0还将wincache更新为最新版本。
发布于 2015-06-04 21:58:43
特定的WinCache错误消息已从WinCache 1.3.7.5中删除,该消息在最近的更新中被删除。
至于错误消息的含义:在试图释放跨进程共享内存段中的内存块时,WinCache检测到该块已经被释放。消息表明WinCache检测到了问题,避免了损坏内存。这个消息应该是一个警告级别的消息。此外,执行请求应该运行到完成,并且响应应该返回给客户。
在WinCache 1.3.7.4之前,WinCache没有检测到这个场景,最终会导致内存损坏,最终导致AV。因此,错误消息实际上表明WinCache刚刚将您从崩溃中拯救出来,欢迎您!
https://stackoverflow.com/questions/29852844
复制相似问题