这让我们都快疯了。
我们有一个使用wincache运行php的IIS web服务器。
在iis中,我们使用虚拟目录映射文档根目录和网站的第二部分。
首先,下面是错误:
PHP Fatal error: session_start(): Failed to initialize storage module: wincache (path: C:\Windows\Temp)我们在一个简单的单行php文件中复制了这个错误:
<?php
session_start();
?>这是最重要的
如果将此文件放在根doc文件夹中的任何位置,都不会抛出任何错误。但一旦放到虚拟目录中,它将工作大约5分钟,然后失败。它将继续失败,直到我们重新启动IIS。
我们还有两台配置完全相同的服务器。它在两台服务器上都可以正常工作。
发布于 2015-03-04 13:29:22
这可不是我想要的答案。但我们只是花了几个小时切换到Apache。Bug消失了,服务器变得更快了,一切都很好。
发布于 2015-06-05 06:10:27
这听起来像是运行PHP的IIS应用程序池ID没有写入C:\Windows\Temp的权限。你应该检查文件夹上的ACL,看看它是否可由你的应用程序池标识写入。
c:\Windows>icacls Temp
Temp NT AUTHORITY\SYSTEM:(OI)(CI)(S,RD)
BUILTIN\IIS_IUSRS:(OI)(CI)(S,RD)
BUILTIN\Users:(CI)(S,WD,AD,X)
BUILTIN\Administrators:(F)
BUILTIN\Administrators:(OI)(CI)(IO)(F)
NT AUTHORITY\SYSTEM:(F)
NT AUTHORITY\SYSTEM:(OI)(CI)(IO)(F)
CREATOR OWNER:(OI)(CI)(IO)(F)如果你在ACL上看不到BUILTIN\IIS_IUSRS,那么默认的应用程序池ID就不能写入该目录。如果您对应用程序池使用自定义用户ID,则需要确保它位于文件夹的ACL中。
https://stackoverflow.com/questions/28844922
复制相似问题