我尝试更改 Windows Server 2016 上 PHP 7.2 的会话路径,但 phpinfo 仅显示 Windows 临时文件夹的默认路径。
PHP 7.2 由 webplatform 安装程序安装。
到目前为止我已经尝试过:
创建新文件夹
路径:“C:\Program Files\PHP\v7.2\session”
更改了 IIS_IUSERS 的文件夹安全属性
为了测试,用户具有完全访问权限
然后将 php.ini 中的条目“session.save_path”更改为文件夹路径
session.save_path = “C:\Program Files\PHP\v7.2\session”
重新启动 IIS 服务器/重新启动整个窗口服务器
如果我使用该函数打印出 php 设置php信息它说会话路径位于“C:\Windows\temp”下。看来我的选项不会被加载。
但如果我更改了 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 是正确的做法。