Выдернул мои волосы, пытаясь выяснить, почему мои сеансы заканчиваются / убиваются / уничтожаются через 30 минут.Похоже, в системах на основе Debian есть специальный запущенный cron, который игнорирует все конфигурации php.ini и apache и убивает любой бездействующий сеанс за 30 минут.
Путь cron: /etc/cron.d/php5
Внутри cron:
# /etc/cron.d/php5: crontab fragment for php5
# This purges session files older than X, where X is defined in seconds
# as the largest value of session.gc_maxlifetime from all your php.ini
# files, or 24 minutes if not defined. See /usr/lib/php5/maxlifetime
# Look for and purge old sessions every 30 minutes
09,39 * * * * root [ -x /usr/lib/php5/maxlifetime ] && [ -d /var/lib/php5 ] && find /var/lib/php5/ -type f -cmin +$(/usr/lib/php5/maxlifetime) -print0 | xargs -n 200 -r -0 rm
Я неплохо настраиваю и настраиваю хосты, но я не sysAdmin.Может ли кто-нибудь помочь мне переопределить / отредактировать / изменить / перенастроить это, чтобы я мог установить значение дольше?Я думаю, что 3 часа было бы неплохо, но я хотел бы понять изменения, поэтому, если кто-то на более высоком уровне захочет сократить время сеанса / дольше, я обдумываю, как настроить это изменение.
Благодаря любой помощи в пониманииthis
EDIT: добавление / usr / lib / php5 / maxlifetime кода
#!/bin/sh -e
max=1440
for ini in /etc/php5/*/php.ini; do
cur=$(sed -n -e 's/^[[:space:]]*session.gc_maxlifetime[[:space:]]*=[[:space:]]*\([0-9]\+\).*$/\1/p' $ini 2>/dev/null || true);
[ -z "$cur" ] && cur=0
[ "$cur" -gt "$max" ] && max=$cur
done
echo $(($max/60))
exit 0
, чтобы он выглядел, как ищущий все файлы php.ini, находит наибольшее значение, сравнивает его с 1440(что составляет 24 минуты).
Вот файлы php.ini
/etc/php5/apache2/php.ini
session.gc_maxlifetime = 1440
/etc/php5/cgi/php.ini
session.gc_maxlifetime = 1440
/etc/php5/cli/php.ini
session.gc_maxlifetime = 1440
, но почему мой сеанс сценария прерывается на 30, а не на 24 минутах?
РЕДАКТИРОВАТЬ # 2: CRON, работающий каждые 30 минут, поэтому сеанс выглядит убитым с 30-минутными интервалами.Но это также может занять от 24 до 54 минут, FYI
Также просматривая код в: /usr/lib/php5/maxlifetime
он принимает самое высокое значение, и во время моего тестирования я пытался снизить порог, чтобы ускорить состояние.
Похоже, мне просто нужно увеличить один файл php.ini до более чем одного часа тестового теста.