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

Увеличить время сеанса php через .htaccess не работает

Я хочу установить тайм-аут сеанса до 6 часов, но мой браузер все еще отключается через 1/2 часа.

Я нахожусь на сервере PLESK.

Я обновил .htaccess

php_value session.gc_maxlifetime 21600
php_value session.cache_expire 21600
php_value session.cookie_lifetime 21600

Вот соответствующая PHPinfo:

                        Local   Master
session.gc_maxlifetime  21600   1440
session.cache_expire    21600   180
session.gc_maxlifetime  21600   1440

Ваш php_info() доказывает что настройки применены.

Вы используете Debian или Ubuntu? В таком случае есть предостережение: разработчики debian исправили пакет PHP, чтобы очистить неиспользуемые сеансы через crontab. (Вышесказанное может относиться не только к Debian / Ubuntu, зависит от разработчиков дистрибутива)

# /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

Таким образом, такая децентрализация осуществляется на основе глобальных настроек, а не для отдельных процессов.

Я вижу два решения:

  1. через 20 минут или около того (используйте time (), чтобы узнать, когда вы превысили временной порог), вы закрываете сеанс с session_write_close() и откройте его снова.
  2. вы реализуете свой собственный обработчик сеанса с session_set_save_handler и сохраните данные сеанса в другом месте, кроме пути по умолчанию.

Какой бы маршрут вы ни выбрали, я предлагаю вам сохранить изменения, которые вы внесли в .htaccess.

Дайте нам знать, как это происходит :-)

Вместо этого попробуйте сделать это в своем коде. Если у вас есть header.php или config.php файл, который включен везде, добавьте к нему это:

ini_set("session.gc_maxlifetime", 21600);
session_set_cookie_params(21600);