Я попытался изменить путь сеанса для PHP 7.2 на Windows Server 2016, но phpinfo показывает только путь по умолчанию к временной папке Windows.
PHP 7.2 был установлен установщиком веб-платформы.
Что я пробовал до сих пор:
создал новую папку
путь: "C: \ Program Files \ PHP \ v7.2 \ session"
изменили свойства безопасности папки для IIS_IUSERS
для тестирования у пользователя есть полный доступ
затем изменил запись "session.save_path" в php.ini на путь к папке
session.save_path = "C: \ Program Files \ PHP \ v7.2 \ session"
перезапустить сервер IIS / перезапустить весь сервер окна
Если я распечатал настройки php с функцией phpinfo он сказал, что путь к сеансу находится в «C: \ Windows \ temp». Похоже, моя опция не загрузится.
На снимке экрана показана часть сеанса из вывода phpinfo.
Но если я изменил другой параметр в php.ini, phpinfo покажет мне правильное значение. А в записи «Загруженный файл конфигурации» показано, что мой файл php.ini используется в качестве файла конфигурации.
На снимке экрана показана запись «Загруженный файл конфигурации» из вывода phpinfo.
Итак, мой вопрос: что мне нужно сделать, чтобы изменить путь сеанса на сервере windwo 2016?
Проблема заключалась в установщике веб-платформы.
Установщик добавил новый раздел [WebPIChanges] в файл 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, он отменяет мои изменения.
Проверьте, какой php.ini используется. session.save_path
в вашем php.ini это правильное место, iisreset - это то, что нужно делать.