首页 > 解决方案 > PHP 警告:session_start():无法读取会话数据:文件(路径:C:\inetpub\tmp)-Windows Server 2016

问题描述

将 PHP 文件传输到 Windows Server 时出现问题。我发现的错误是:

PHP 警告:session_start(): open(C:\inetpub\tmp\sess_ls40vhrbgus8ghmqvnqrat2qfo, O_RDWR) failed: Permission denied (13) in C:\inetpub\wwwroot\ebooking\index.php on line 4

以下是我的代码:

索引.php

include("config/configPDO.php");
session_start(); //line 4

$msg = ""; 
if(isset($_POST['submitBtnLogin'])) {
$User_ID = trim($_POST['Email']);
$email=explode('@',$User_ID);
if (is_array($email)){
    $User_ID=$email[0];
}

但是当我只编码 echo"Hello World"时,文本将显示。没问题。

我能知道是什么问题吗?我需要在 php.ini 中进行任何配置吗?

标签: phpsql-serveriis

解决方案


IIS 通过应用程序池标识激活 PHP_CGI。因此,请尝试授予您经过身份验证的用户,如 IUSR 和应用程序池身份(IIS Apppool\apppool 名称)读取/写入权限以访问 C:\inetpub\tmp。

如果上述步骤不起作用,请尝试在这种情况下使用进程监视器。创建一个过滤器来访问被拒绝的错误。然后它会告诉我们谁和在哪里授予权限。

https://docs.microsoft.com/en-us/sysinternals/downloads/procmon


推荐阅读