Windows 2019 和 PHP 7.3:"session_start(): ps_files_cleanup_dir: opendir failed: No such file or directory (2)"
Windows 2019 and PHP 7.3: "session_start(): ps_files_cleanup_dir: opendir failed: No such file or directory (2)"
遇到这个问题。我知道有类似的问题,但其中 none 提供了解决方案。
- Windows Server 2019服务器核心
- PHP IIS 下的 7.3.7 x64。
错误信息:
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、LOCAL SERVICE 有完全权限(我知道,存在安全风险,但我首先尝试让它工作) 、本地网络、系统和创建所有者。
- 错误消息似乎是随机显示的。
一些相关的 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:\" 是本地分区。不是映射或共享驱动器。正在成功写入日志和会话。 php 似乎无法删除这些文件。
好的,找到问题了。
似乎与 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 版本。
遇到这个问题。我知道有类似的问题,但其中 none 提供了解决方案。
- Windows Server 2019服务器核心
- PHP IIS 下的 7.3.7 x64。
错误信息:
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、LOCAL SERVICE 有完全权限(我知道,存在安全风险,但我首先尝试让它工作) 、本地网络、系统和创建所有者。
- 错误消息似乎是随机显示的。
一些相关的 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:\" 是本地分区。不是映射或共享驱动器。正在成功写入日志和会话。 php 似乎无法删除这些文件。
好的,找到问题了。
似乎与 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 版本。