tiempo sesion extender ejecucion configurar cambiar aumentar ampliar php phpmyadmin session-timeout

ejecucion - extender tiempo sesion php



phpMyAdmin-no puede cambiar el tiempo de expiración de la sesión (2)

Sé que esta pregunta se ha hecho muchas veces en el sitio web de SO. Sin embargo, he leído this , this , this , this , this y this , y más. Ninguno de ellos funcionó. También he intentado cambiar la ubicación de los archivos de sesión y otras cosas que no recuerdo ahora.

Mi configuración:

uno: el archivo config.inc.php :

<?php $cfg[''LoginCookieValidity''] = 3600 * 24; // http://docs.phpmyadmin.net/en/latest/config.html#cfg_LoginCookieValidity

esto se muestra en la configuración de phpMyAdmin:

dos: archivo .htaccess :

php_value session.gc_maxlifetime 86400

tres: el archivo phpinfo.php de la raíz phpMyAdmin muestra:

cuatro: el servidor (uname -a):

Linux ubuntu-13 3.11.0-26-generic #45-Ubuntu SMP Tue Jul 15 04:02:06 UTC 2014 x86_64 x86_64 x86_64 GNU/Linux

¿Hay alguna otra manera en que pueda aumentar el tiempo de espera de la sesión phpMyAdmin?


PhpMyAdmin debería estar funcionando bien con tus configuraciones, puedes haberte metido con algo mientras intentabas que funcionara. ya que no puede reinstalar phpmyadmin o hacer actualizaciones en el servidor. Hay otras soluciones a este problema.

Hackeando el núcleo

No creo que sea una buena idea, pero si realmente desea deshacerse de esto, puede desactivar la función modificando AuthenticationCookie.class.php en las libraries/plugins/auth/

sigue esta linea

if ($_SESSION[''last_access_time''] < $last_access_time ) { PMA_Util::cacheUnset(''is_create_db_priv'', null); PMA_Util::cacheUnset(''is_process_priv'', null); PMA_Util::cacheUnset(''is_reload_priv'', null); PMA_Util::cacheUnset(''db_to_create'', null); PMA_Util::cacheUnset(''dbs_where_create_table_allowed'', null); $GLOBALS[''no_activity''] = true; $this->authFails(); if (! defined(''TESTSUITE'')) { exit; } else { return false; } }

y editarlo para

if (false ) { PMA_Util::cacheUnset(''is_create_db_priv'', null); PMA_Util::cacheUnset(''is_process_priv'', null); PMA_Util::cacheUnset(''is_reload_priv'', null); PMA_Util::cacheUnset(''db_to_create'', null); PMA_Util::cacheUnset(''dbs_where_create_table_allowed'', null); $GLOBALS[''no_activity''] = true; $this->authFails(); if (! defined(''TESTSUITE'')) { exit; } else { return false; } }

Al hacer esto, la función se deshabilitará y ya no habrá tiempo de espera. Siempre puede hacer clic en cerrar sesión cuando complete su trabajo con phpmyadmin.

O usar un complemento del navegador


Ubuntu deshabilitará por defecto el recolector de basura de la sesión de PHP (al establecer el valor maestro de session.gc_probability en 0 ), y en lugar de eso usará un cronjob para eliminar los archivos de sesión después de que alcancen una cierta edad. La edad está determinada por el valor maestro de session.gc_maxlifetime .

Esto significa que, independientemente de su valor local de 86400 segundos (que no tiene ningún efecto debido a la recolección de basura de la sesión deshabilitada), el cronjob eliminará los archivos de sesiones después de 1440 segundos.

Así que tienes 2 opciones:

  1. Deshabilite el cronjob (probablemente /etc/cron.d/php5 ) y habilite el recolector de basura de la sesión de PHP, configurando session.gc_probability en 1 (en todos los archivos /etc/php5/*/php.ini ).

  2. Establezca el valor maestro correcto para session.gc_maxlifetime . El tuyo es de 1440 segundos. Modifíquelo (en todos los archivos /etc/php5/*/php.ini ) al mayor valor local que cualquier aplicación de host virtual / php en el servidor (por lo menos 86400 segundos).