PHP 7.2 会话路径在 Windows Server 2016 上不会改变

PHP 7.2 会话路径在 Windows Server 2016 上不会改变

我尝试更改 Windows Server 2016 上 PHP 7.2 的会话路径,但 phpinfo 仅显示 Windows 临时文件夹的默认路径。

PHP 7.2 由 webplatform 安装程序安装。

到目前为止我已经尝试过:

  1. 创建新文件夹

    路径:“C:\Program Files\PHP\v7.2\session”

  2. 更改了 IIS_IUSERS 的文件夹安全属性

    为了测试,用户具有完全访问权限

  3. 然后将 php.ini 中的条目“session.save_path”更改为文件夹路径

    session.save_path = “C:\Program Files\PHP\v7.2\session”

  4. 重新启动 IIS 服务器/重新启动整个窗口服务器

如果我使用该函数打印出 php 设置php信息它说会话路径位于“C:\Windows\temp”下。看来我的选项不会被加载。

屏幕截图显示了 phpinfo 输出中的会话部分

但如果我更改了 php.ini 中的其他选项,phpinfo 会显示正确的值。并且在“已加载的配置文件”条目中,它显示我的 php.ini 文件被用作配置文件。

屏幕截图显示了 phpinfo 输出中的“已加载配置文件”条目

所以我的问题是,我要做什么才能更改 windwo server 2016 下的会话路径?

答案1

问题出在 webplatform 安装程序上。

安装程序添加了新部分[WebPI 变更]到 php.ini。

在本节中,它session.save_path用硬编码字符串覆盖。

[WebPIChanges]
error_log=C:\Windows\temp\PHP72x64_errors.log
upload_tmp_dir=C:\Windows\temp
session.save_path=C:\Windows\temp
cgi.force_redirect=0
cgi.fix_pathinfo=1
fastcgi.impersonate=1
fastcgi.logging=0
max_execution_time=300
date.timezone=Europe/Berlin
extension_dir="C:\Program Files\PHP\v7.2\ext\"

因为该部分位于 php.ini 的末尾,所以它会覆盖我的更改。

答案2

检查使用了哪个 php.ini。session.save_path在您的 php.ini 正确的位置,iisreset 是正确的做法。

相关内容