1

我是 IIS 管理的新手,我有一个问题。

1.php

session_start();
$_SESSION['test'] = 'my_test_value';

在 Google Chrome 控制台中,我看到PHPSESSID=fg32orkv32m4eb8811bbncvks5

2.php

session_start();
echo '<p>' . session_id() . '</p>';
echo '<p>' . session_save_path() . '</p>'; 
print_r($_SESSION);

输出:

fg32orkv32m4eb8811bbncvks5
C:\Windows\temp
Array ( )

C:\Windows\Temp 中没有包含“fg32orkv32m4eb8811bbncvks5”的文件。目录是可写的。

4

1 回答 1

3

根据服务器的设置方式,“C:\Windows\Temp”目录可能超出了允许从网站保存文件的范围。

找到虚拟主机文件夹并创建一个 tmp 文件夹,例如“C:\HostingSpaces\tmp”

然后将 tmp 文件夹安全属性更改为包括: IIS_IUSRS 在选中 MODIFY 选项。

现在找到带有条目“session.save_path =”的主 PHP.ini 文件,在此示例中,您将 tmp 路径硬编码为以下内容:

session.save_path = "C:\HostingSpaces\tmp"

保存。重新启动 IIS 服务器,会话将正确保存。

于 2014-06-27T03:14:03.810 回答