【问题标题】:PHP session_write_close() does not work in NGINXPHP session_write_close() 在 NGINX 中不起作用
【发布时间】:2018-07-10 13:21:25
【问题描述】:

我在 Nginx 上运行 session_write_close() 时遇到问题,它没有任何效果。

当我访问需要很长时间才能完成的资源时,应用程序的其他页面被阻塞,等待第一页完成。

我将我的应用程序从 Apache 迁移到 Nginx,在 Apache 中它可以正常工作。

Nginx 或 Apache 日志中未显示任何信息。有谁知道为什么会这样?

最好的问候。

【问题讨论】:

  • 你的php版本是多少?
  • 你好马文!我的 PHP 版本是 7.2.7

标签: php http session nginx webserver


【解决方案1】:

我在使用 php 7 和 Nginx 时也遇到了同样的情况。您可以更改缓存内存,使用 memchached 或 redis。

【讨论】:

  • 那是 PHP 7 的问题吗?你试过其他版本吗?
【解决方案2】:

假设 nginx 在用户名 nginx 下默认运行,那么我将检查 /var/lib/php/session foder 并查看它是否具有正确的所有权。如果您从 apache 切换,则该文件夹没有任何人或 www-data 所有权(用户/组)。所以做一个ls -lsa /var/lib/php/session,看看谁拥有这个文件夹,然后做一个chown nginx:nginx /var/lib/php/session -R。然后再试一次,看看它是否有效。

【讨论】:

  • 博格丹您好!我检查了会话文件夹不存在......所以我将 session.save_path 属性修改为 /tmp,它具有执行测试的完全权限 (777)。即使问题不断出现,我看到PHP可以正常将会话文件写入/tmp文件夹,但是session_write_close()方法完全没有效果。
  • 在 Windows 上我遇到了同样的问题。甚至以管理员身份运行 nginx.exe 和 php-cgi.exe ......我在 Docker 中对一个 Ubuntu 容器进行了测试,它工作正常,我不知道问题的根源。
  • 说实话,我真的不知道为什么会这样
猜你喜欢
  • 1970-01-01
  • 2015-05-02
  • 2015-02-03
  • 2018-02-09
  • 1970-01-01
  • 1970-01-01
  • 2023-03-18
  • 1970-01-01
  • 2015-07-08
相关资源
最近更新 更多