我对WinCache有一个奇怪的问题,这可能不是最好的论坛。我检查了SuperUser但是有关于WinCache的0结果。整个网络的支持似乎很弱,但至少SO之前已经讨论过了。
我在同一台服务器上有一个实时和一个开发站点(CakePHP框架,Windows Server 2008 R2,IIS 7.5,PHP 5.3,FastCGI,WinCache 1.1)。 Live站点位于端口80上,dev位于81.IIS有两个网站,每个网站指向Inetpub \ wwwroot中的不同根文件夹。每个站点都在不同的应用程序池下运行。
在更改开发站点后的一段时间,实时站点开始出错。经过一些痛苦的调试后,我发现以下(完全蹩脚)事件链发生了:
如果我通过端口80(实时站点)下的Web界面检查WinCache属性,我看到文档根目录是Inetpub \ wwwroot \ Live - 正如预期的那样。但是,如果我查看文件缓存选项卡下的缓存文件列表,我会看到一些文件缓存两次。鼠标悬停告诉我,一个来自Inetpub \ wwwroot \ Dev,另一个来自Inetpub \ wwwroot \ Live。
这怎么可能?为什么IIS在GET请求中使用一个而在POST中使用另一个?我知道CakePHP根据格式化的URL选择要加载哪些文件,但处理路由的index.php文件位于Inetpub \ wwwroot \ Live中,因此可能永远不会在不同的doc根目录中请求文件。在我看来,PHP要求IIS提供一个文件,但是在与WinCache通信时,IIS正在失去其弹珠。
到目前为止,我看不到任何方法为一个站点禁用WinCache,但即使我可能也不会再相信它了。
对此棘手问题的任何建议都将不胜感激。
答案 0 :(得分:2)
我没有问题。
试试这个: 使用Wincache 1.2(Beta)
不要使用“。”在AppPool名称中。
(选项)为每个AppPool创建一个ProcessUser。
在我们的会话目录中查找名为“wincache_session_ *”的会话文件。
从每个web目录中的“[AppDir 86] \ IIS [Wincache] \ wincache.php”复制wincache.php 并通过http打开它。