IIS 不再保存会话变量

IIS 不再保存会话变量

我在一台 Win7 开发机器上运行 IIS v7。我有 PHP 代码可以保存会话变量并在稍后调用它们。这已经在这台机器上运行了一段时间。

由于某种原因,会话变量在保存后立即消失。以前在http://本地主机/,突然现在没有了。

我已经测试了不同的浏览器 - 无论使用哪种浏览器,变量都会消失。

我在不同的服务器上测试了相同的代码。问题只存在于这台开发机器上。

我尝试了一些代码,保存会话变量,然后将其读回并显示,然后显示一个链接,单击该链接即可将其读回并再次显示。结果会话变量确实被写入并读回并正常显示。但是当您单击链接再次查看它时,它就消失了。

我不记得对 IIS 做过任何更改。但我确实运行了几个恶意软件扫描程序和清理工具。

有人知道 IIS 中是否有任何设置不允许会话变量吗?还有其他想法吗?

答案1

我怀疑您没有对目录 P:/PHP/Sessions 设置正确的权限。

IIS 进程所有者(通常是 IUSR_MACHINENAME)需要对该目录的读、写和修改权限。

当然,脚本运行时共享也需要可用(如果 P 是映射共享而不是本地驱动器)。

最后,在我的 php.ini 文件中,即使在 Windows 上,我也总是使用正斜杠来表示目录。

代码 c:/windows/system32/drivers/etc

php 不应该关心。但我知道我曾经通过这样做(即 unix 风格)修复了一个错误,因此从那时起就一直遵循相同的规则。

但最可能的问题是跨共享的权限。当然(为了方便)您还应该确保如果 P 在单独的机器上,它们也在同一个 AD 林或域和 ACL 中。

相关内容