session_write_close()仅通过https请求失败?

时间:2017-12-04 10:28:55

标签: php apache session https

以下情况:

  • Apache2 Webserver
  • PHP版本5.5.38(模块)(目前无法升级)

测试环境可通过http://www.test-environment.com到达 生产环境可以在https://www.productive-environment.com以上到达 (虚构域名)

两个系统都位于同一台机器上:

  • / www / htdocs / myuser / test(测试环境的Webroot,可通过http访问)
  • / www / htdocs / myuser / productive(生产环境的Webroot,强制HTTPS)

我得到了以下代码并在两个系统上执行它,但它们的行为有所不同:

session_write_close_test.php

<?php
session_start();

// Some logic here, but doesn't matter in the test case...

session_write_close();
set_time_limit(30);

$counter = 30;

while ($counter > 0) {
    sleep(1);
    $counter -= 1;
}

在我的测试环境(仅限http)上通过http://www.test-environment/session_write_close_test.php调用脚本,并在30秒内在另一个标签中调用http://www.test-environment.com,一切正常。没有阻止。 session_write_close()似乎有效。

在另一个标签中调用https://www.productive-environment.com/session_write_close_test.php并在此30秒内调用https://www.productive-environment.com:没有,直到测试脚本结束。 session_write_close()似乎不起作用。

对此行为有何解释?两个系统都使用相同的配置。我已经尝试更改会话保存路径以防止任何文件写入权限问题,遗憾的是没有任何影响。

提前致谢

0 个答案:

没有答案