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
- Firefox Phpmyadmin Timeout Preveneter
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:
Deshabilite el cronjob (probablemente
/etc/cron.d/php5
) y habilite el recolector de basura de la sesión de PHP, configurandosession.gc_probability
en1
(en todos los archivos/etc/php5/*/php.ini
).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).