我在 Windows 环境中使用 Apache/2.4.28 (Win64) PHP/7.0.32。
我尝试这个问题,但就我的情况来说,有时会出现丢失错误。
(有时意味着问题发生 5 个小时或更长时间或几天......)
(我想,也许..这个 PHP 问题https://bugs.php.net/bug.php?id=16263)
(这个,非常类似的情况,但没有解决方案......https://serverfault.com/questions/869781/apache-on-windows-cookie-w-php-sessions-bug)
当我尝试保存会话并重定向时,有时会失败。
//正常情况
session_start() -> 从服务器“aaa”获取会话 ID -> 保存在 cookie 中
使用请求标头中的“aaa”cookie 进行重定向
我可以在重定向页面中使用会话。
//错误情况
session_start() -> 从服务器“aaa”获取会话 ID -> 保存在 cookie 中
使用请求标头中的“aaa”cookie 进行重定向
但服务器响应不同的会话 ID“bbb”。即使 Web 服务器在 Windows 临时文件夹中有“sess_aaa”文件。在这种情况下,服务器有“sess_aaa”和“sess_bbb”两个会话文件。
- sess_aaa:有会话信息。
- sess_bbb :0kb 空会话文件
在 apache 重新启动之前我无法使用会话。
//有关此错误的更多信息...
- Windows 资源 CPU 3~5%,内存 30% -> 没有问题
- $_GET、$_POST、$_REQUEST、$_SERVER 其他 PHP 变量运行良好。
请帮助我提出你的好主意。(感谢哈斯塔的指南)
答案1
我将 Windows PHP 更改为 FCGI 版本...(非线程安全)然后运行良好。