Назад | Перейти на главную страницу

Путь к сеансу PHP 7.2 не меняется в Windows Server 2016

Я попытался изменить путь сеанса для PHP 7.2 на Windows Server 2016, но phpinfo показывает только путь по умолчанию к временной папке Windows.

PHP 7.2 был установлен установщиком веб-платформы.

Что я пробовал до сих пор:

  1. создал новую папку

    путь: "C: \ Program Files \ PHP \ v7.2 \ session"

  2. изменили свойства безопасности папки для IIS_IUSERS

    для тестирования у пользователя есть полный доступ

  3. затем изменил запись "session.save_path" в php.ini на путь к папке

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

  4. перезапустить сервер 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 - это то, что нужно делать.