Я недавно принял проект, который мы пытаемся разместить в docker, используя php: 7.4-fpm-buster. Ранее использовалась старая версия PHP, поэтому переменные $ _SESSION активно использовались в проекте. Вот код, который у меня есть в моем PHP файле, который терпит неудачу:
if (session_status() == PHP_SESSION_NONE) {
session_start();
}
... и ...
unset($_SESSION['ListOfRoutings']);
Я также повторил sys_get_temp_dir () и это говорит, что это / tmp, он также говорит, что папка, в которую он пишет, доступна для записи. Я получаю сообщение об ошибке:
Примечание: неопределенная переменная: _SESSION в /usr/local/src/arc-bis/basketdesign/scripts/ListOfRoutings.php в строке 96
Линия 96 - это неустановленный вызов. Я также вынул оператор if, он не создает сеанс. Есть ли способ получить $ _SESSION для создания переменной только с каталогом tmp, используя docker? Я пытался создать каталог tmp в docker, но это не сработало. Заранее спасибо ...
РЕДАКТИРОВАТЬ: Вот информация из phpinfo:
Поддержка сеанса включена Зарегистрированный пользователь обработчиков сохранения файлов Зарегистрированный обработчик сериализатора php_serialize php php_binary DirectiveLocal ValueMaster Value session .auto_startOffOff session.cache_expire180180 сеанс .cookie_path // session.cookie_samesite без значения без значения session.cookie_secure00 session.gc_divisor10001000 session.gc_maxlifetime72007200 session.gc_probability11 session.lazy_writeOnOn сеанс 1031 * без значения session.save_handler без значения без значения session.save_path / tmp / tmp session.serialize_handler phpphp session.sid_bits_per_character44 сеанс. sid_length3232 session.upload_pro gress.cleanupOnOn session.upload_progress.enabledOnOn session.upload_progress.freq1% 1% session.upload_progress.min_freq11 session.upload_progress.namePHP_SESSION_UPLOAD_PROGRESSPHP_SESSION_UPLOAD_PROGRESS session.upload_progress.prefixupload_progress_upload_progress_ session.use_cookies11 session.use_only_cookies11 session.use_strict_mode00 session.use_trans_sid00
1039
РЕДАКТИРОВАТЬ: Вот некоторые вещи, которые я пытался добавить к docker. Внутри ./ root проекта есть папка tmp.
FROM php:7.4-fpm-buster
...
COPY ./docker/php/php.ini /usr/local/etc/php/php.ini.template
COPY ./docker/php/php-fpm.conf /usr/local/etc/php-fpm.conf.template
...
RUN mkdir /usr/local/src/arc-bis
COPY ./* /usr/local/src/arc-bis/
RUN chown -R www-data:www-data /usr/local/src/arc-bis/
...
WORKDIR /usr/local/src/arc-bis
В php .ini файле внутри моей папки docker:
session.save_path = /usr/local/src/arc-bis