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

问题描述 投票:2回答:1

存在此问题。我知道也有类似的问题,但没有一个提供解决方案。

  • Windows Server 2019服务器核心
  • IIS下的PHP 7.3.7 x64。

错误消息:

PHP致命错误:未捕获的ErrorException:session_start():ps_files_cleanup_dir:opendir(D:\ TempPHP)失败:没有这样的文件或目录(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:\”是本地分区。不是映射驱动器或共享驱动器。日志和会话正在成功写入。似乎php无法删除这些文件。

php windows iis permissions fastcgi
1个回答
0
投票

确定,发现问题。

似乎与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版本。

© www.soinside.com 2019 - 2024. All rights reserved.