
У меня есть сервер Ubuntu 20.04 с запущенным PHP 7.4.3 (Apache 2.4.41 + mod_php), все должно быть по умолчанию AFAIK. Но сессии PHP, похоже, не работают. При запуске следующего кода каждое обновление веб-страницы приводит к одному и тому же выводу (вместо увеличения) и к новому файлу сессии в /var/lib/php/sessions
:
?php
session_start();
$_SESSION['test'] += 1;
var_dump($_SESSION['test']);
Я проверил это с разными браузерами (чтобы исключить возможность того, что мой браузер отклонит cookie сеанса) и операционными системами, проблема сохраняется. Я запустил тот же код на старой CentOS с PHP 5.3 — там проблем не было. Счетчик увеличивается после каждого обновления браузера, независимо от браузера, и сеанс обновляется с каждым запросом вместо того, чтобы создаваться заново. Я понятия не имею, почему возникла эта проблема.
Права /var/lib/php/sessions
на машине Ubuntu — 1733.
решение1
Оказывается, я был глуп. Некоторое время назад я создал Apache VHost на этом сервере и удалил куки для этого VHost через Header unset Set-Cookie
. К сожалению, это был VHost по умолчанию, и я провел тесты сеанса PHP только с IP-адресом сервера (у меня пока нет домена). Я узнал об этом через инструменты разработчика моего браузера — куки PHPSESSID никогда не отправлялись в заголовке ответа HTTP, и тогда я вспомнил свой странный выбор в VHost по умолчанию.