首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >临时- Symfony-Cache文件夹中的文件

临时- Symfony-Cache文件夹中的文件
EN

Stack Overflow用户
提问于 2010-07-25 23:08:02
回答 3查看 2.9K关注 0票数 1

我在一些生产机器上使用Windows (带有FastCGI-PHP的IIS)。自从一个SF-Project更新到1.3.x后,我注意到一些奇怪的问题。服务器正在“收集”应用程序的config-cache文件夹中的临时文件。它们的名称类似于con1718.tmp,并且始终包含autoload-config-cache。并不是每个请求都会生成临时文件,但我每半小时左右就会有1到2个新文件。如果应用程序正在运行几天/几个月,就会有很多这样的临时文件(兆字节)。

计算机-详细信息:- Windows Server 2008 -IIS7- ZendServer?使用PHP 5.2.11

使用SF 1.3.3的项目

你知道问题会是什么吗?

EN

回答 3

Stack Overflow用户

回答已采纳

发布于 2010-08-21 20:03:08

我查看了symfony 1.4,并在代码中看到了以下内容:

代码语言:javascript
复制
     // Hack from Agavi (http://trac.agavi.org/changeset/3979)
     // With php < 5.2.6 on win32, renaming to an already existing file doesn't work, but copy does,
     // so we simply assume that when rename() fails that we are on win32 and try to use copy()
     if (!@rename($tmpFile, $cache))
     {
       if (copy($tmpFile, $cache))
       {
         unlink($tmpFile);
       }

     }

这段代码应该在sfConfigCache.php中的第354行,你能检查一下你有没有这一行?如果没有,请考虑更新或打补丁,如果是,您可以在取消链接之前记录$tmpFile,看看是否有人试图取消这些文件的链接。要添加更多信息日志,您应该尝试以下代码:

代码语言:javascript
复制
 if (!@rename($tmpFile, $cache))
 {
   sfContext::getInstance()->getLogger()->info('attempt to renaming ' . $tmpFile . ' failed, trying copy');
   if (copy($tmpFile, $cache))
   {
     sfContext::getInstance()->getLogger()->info('copy successful, now unlinking ' . $tmpFile);
     unlink($tmpFile);
   }
   else
   {
     sfContext::getInstance()->getLogger()->err('probem with copy for file '.$tmpFile);
   }

 }
票数 1
EN

Stack Overflow用户

发布于 2010-08-18 03:05:55

'con1718.tmp‘看起来像是用tempnam PHP函数生成的临时文件名:

代码语言:javascript
复制
tempnam('c:/tmp', 'con'); // produces something like c:\\tmp\con1234.tmp

我在symfony源上使用grep来查找这样的调用,但没有找到任何带有'con‘的tempnam()用法。也许是你正在使用的某个插件?

票数 0
EN

Stack Overflow用户

发布于 2010-08-18 07:52:13

你有没有可能正在运行PHP2.0中的Windows Cache扩展(用于PHP5.2的Windows Cache扩展1.1Web Platform installer2.0)?我注意到,虽然这个包试图模仿广泛使用的PHP Accelerator的行为,但它确实消耗了大量资源,并做了一些奇怪的事情,特别是在奇怪的地方写入文件。我还没有将symfony和它混合在一起,但将在接下来的几周内完成。否则,我的规格和你的非常接近。

可能不是一个完整的答案,但如果安装了它,禁用它并重试会怎么样?

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/3329686

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档