Windows 2019和PHP 7.3:“session_start():ps_files_cleanup_dir:opendir失败:没有这样的文件或目录(2)”

ffdz8vbo  于 9个月前  发布在  PHP
关注(0)|答案(1)|浏览(79)

有这个问题。我知道有类似的问题,但没有一个提供了解决方案。

  • Windows Server 2019服务器核心
  • PHP 7.3.7 x64 under IIS.

错误信息:
PHP Fatal error:Uncaught ErrorException:session_start():ps_files_cleanup_dir:opendir(D:\TempPHP)failed:No such file or directory(2).

  • 该目录确实存在,并且充满了会话文件。
  • 对于应用程序池用户(IIS AppPool...)、IUSR、IIS_IUSRS、服务器服务、服务器网络、系统和创建所有者,有完全权限(我知道,有安全风险,但我首先尝试使其工作)。
  • 错误信息似乎是随机显示的。

一些相关的php.ini设置:

session.gc_probability = 1
error_log = "D:\TempPHP\PHP73x64_errors.log"
upload_tmp_dir = "D:\TempPHP\upload"
session.save_path = "D:\TempPHP"
sys_temp_dir = "D:\TempPHP"

字符串
编辑:“D:\”是一个本地分区。不是一个Map或共享驱动器。磁盘和会话正在成功写入。似乎php只是不能删除这些文件。

qhhrdooz

qhhrdooz1#

好了,找到问题了。
在Windows中,session.save_path似乎不能与PHP可执行文件路径位于不同的磁盘/分区中。在我的情况下,PHP目录是c:\Program Files\PHP\v7.3,因此我将TempPHP文件夹从D:分区移动到C:分区,并将session.save_path的值从“D:\TempPHP”更改为“C:\TempPHP”。现在sess_xxxxx文件会自动清理,并且没有更多的错误消息。
不知道这是否适用于其他php或windows版本。

相关问题