将 PHP 文件传输到 Windows Server 时遇到问题。我发现的错误是:
PHP Warning: session_start(): open(C:\inetpub\tmp\sess_ls40vhrbgus8ghmqvnqrat2qfo, O_RDWR) failed: Permission denied (13) in C:\inetpub\wwwroot\ebooking\index.php on line 4
下面是我的代码:
index.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 中进行任何配置吗?
最佳答案
IIS 通过应用程序池身份激活 PHP_CGI。因此,请尝试授予经过身份验证的用户(例如 IUSR)和应用程序池身份(IIS Apppool\apppool 名称)读/写权限来访问 C:\inetpub\tmp。
如果上述步骤不起作用,请尝试在这种情况下使用进程监视器。 创建一个过滤器来访问被拒绝的错误。然后它会告诉我们谁以及在哪里授予权限。
https://learn.microsoft.com/en-us/sysinternals/downloads/procmon
关于PHP警告: session_start(): Failed to read session data: files (path: C:\inetpub\tmp) - Windows Server 2016,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/60070742/