phpmyadmin tiempo de cierre de sesión automático

88

¿Cómo puedo cambiar el tiempo de cierre de sesión automático de phpmyadmin?

Se cerrará automáticamente después de 1440 segundos, lo cual es muy bajo para mí. ¿Cómo puedo cambiar la opción o eliminar la solicitud de inicio de sesión por completo?

Abadis
fuente

Respuestas:

86

Cree o edite su php.iniarchivo y establezca este valor de variable en él:

session.gc_maxlifetime = 1440

El número entero está en segundos. 500000 segundos son 5,7 días. Luego reinicia Apache.

Ravinder Singh
fuente
2
así que abra su archivo php.ini y aumente el valor de session.gc_maxlifetime, eso es todo.
Ravinder Singh
10
mala respuesta, problemas de seguridad!
Sebastian Viereck
1
Es posible que también deba actualizar $ cfg ['LoginCookieValidity'] en el archivo phpmyadmin config.inc.php.
Jorge Orpinel
5
@ slaver113 En este caso, diría que la seguridad está bien ya que es un entorno de desarrollo, esto NO está bien para ningún entorno de producción. Preferiría ver esto mencionado en la respuesta.
Manuel
8
Esto no tiene nada que ver con el tiempo de espera de PHPMyAdmin. No sé por qué es tan votado. Ni siquiera está relacionado con la pregunta.
Felwithe
112

Cambiar php.ini cambiará la duración de la sesión para todos los sitios web que se ejecutan en el servidor. Para cambiarlo solo para PhpMyAdmin, abra config.inc.phpy agregue:

$sessionDuration = 60*60*24*7; // 60*60*24*7 = one week
ini_set('session.gc_maxlifetime', $sessionDuration);
$cfg['LoginCookieValidity'] = $sessionDuration;
Laurent
fuente
21
parece haber una interfaz de usuario para configurar las variables config.php en localhost / phpmyadmin / setup /… - ver Validez de la cookie de inicio de sesión
psycho brm
Esta configuración de la interfaz de usuario es un poco confusa pero funciona para establecer la contraseña en la configuración para el inicio de sesión automático y establecer el tiempo de vencimiento de la sesión. Voto a favor.
Antonio Max
1
El tiempo ilimitado es algo imposible porque cada cookie tiene una fecha "Válida hasta", pero puede ingresar un número muy alto.
Marcel Burkhard
5
Esta debería ser la respuesta. La pregunta era cómo modificar phpMyAdmin. Esta respuesta lo resuelve específicamente.
1
También debe cambiar la ruta de las cookies. Porque si gc_maxlifetime se define para otro sitio web, gc eliminará todas las cookies la primera vez que se llame para un sitio web. Puede agregar estas 2 líneas en el archivo /etc/apache2/conf-available/phpmyadmin.conf: php_admin_value session.gc_maxlifetime 604800 + php_admin_value session.save_path / var / lib / phpmyadmin / tmp
fred727
96

En PHPMyAdmin 4, esto ya no aparece en el archivo config.inc.php. En su lugar, vaya a PHPMyAdmin en su navegador. Asegúrese de estar en el nivel de localhost para ver el enlace Configuración. Luego configure Configuración> Funciones> Cambiar el valor de 'Validez de la cookie de inicio de sesión'> Guardar

instrucciones

Kohjah Breese
fuente
Nota: parece haber un límite en la cantidad de caracteres que puede ingresar en este campo.
Kohjah Breese
1
El cambio de interfaz de usuario no me funciona. Todavía cierra la sesión demasiado rápido, sin importar cuán mayor sea la validez de la cookie de inicio de sesión .
dani24
4
@ dani24, ¿recibió este aviso Your preferences will be saved for current session only. Storing them permanently requires phpMyAdmin configuration storage.:? Haga clic en el enlace que se encuentra en este y le dará instrucciones para habilitar la capacidad de almacenar cambios permanentemente.
Parapluie
phpMyAdmin mostrará este error. Your PHP parameter session.gc_maxlifetime is lower than cookie validity configured in phpMyAdmin, because of this, your login will expire sooner than configured in phpMyAdmin.Tendrá que aplicar la respuesta de Ravinder Singh así como esta.
Abraham Murciano Benzadon
7
No disponible en la versión 4.8.4
Thanasis
11

Puede cambiar la función de sesión de tiempo de cookies en la interfaz web phpmyadmin

Settings->Features->General->Login cookie validity

O

Si desea cambiar la 'validez de la cookie de inicio de sesión' en el archivo de configuración, abra el archivo de configuración phpmMyAdmin, config.inc.phpen el directorio raíz de PHPMyAdmin (el directorio raíz suele ser / etc / phpmyadmin /)

Después de ubicar config.inc.php, busque la línea a continuación y configúrelo en el valor de segundos que desea que phpmyadmin agote el tiempo de espera:

['LoginCookieValidity'] 

Si no pudo encontrar la línea anterior, simplemente agregue lo siguiente:

$cfg['Servers'][$i]['LoginCookieValidity'] = <your_new_timeout>;

Por ejemplo:

$cfg['Servers'][$i]['LoginCookieValidity'] = 3600 * 3;

El tiempo de espera se establece en 3 horas a partir del ejemplo anterior.

session.gc_maxlifetimepuede limitar la validez de la sesión y, si se pierde, la cookie de inicio de sesión también se invalida. Por lo tanto, es posible que debamos configurar session.gc_maxlifetime en el php.iniarchivo de configuración (la ubicación del archivo es / etc / php5 /apache2/php.ini en ubuntu).

session.gc_maxlifetime = 3600 * 3


Documentación de phpMyAdmin sobre LoginCookieValidity

$ cfg ['LoginCookieValidity']

Tipo: entero [número de segundos]
Valor predeterminado: 1440

Defina cuánto tiempo es válida una cookie de inicio de sesión. Tenga en cuenta que la opción de configuración de php session.gc_maxlifetime puede limitar la validez de la sesión y, si la sesión se pierde, la cookie de inicio de sesión también se invalida. Por lo tanto, es una buena idea establecer session.gc_maxlifetime al menos con el mismo valor de $ cfg ['LoginCookieValidity'].

NOTA:

  1. Si su servidor falló y no puede cargar su página phpmyadmin, verifique su registro de Apache en /var/log/apache2/error.log. Si tiene la PHP Fatal error: Call to a member function get() on a non-object in /path/to/phpmyadmin/libraries/Header.class.phplínea 135, haga una chmod 644 config.inc.php. eso debería solucionar el error.
  2. Si recibe la advertencia : Your PHP parameter session.gc_maxlifetime is lower that cookie validity configured in phpMyAdmin, because of this, your login will expire sooner than configured in phpMyAdmin., cambie session.gc_maxlifetime como se mencionó anteriormente.
Foreever
fuente
5

Solo para instalaciones LOCALES, puede eliminar el inicio de sesión y el tiempo de espera por completo; esto parece ser lo que está buscando. Al cambiar el tipo de autorización a "config" e ingresar el nombre de usuario y la contraseña de su base de datos en su archivo de configuración, iniciará sesión automáticamente. Agregar a config.inc.php:

$cfg['Servers'][$i]['verbose'] = '';
$cfg['Servers'][$i]['host'] = 'localhost';
$cfg['Servers'][$i]['port'] = '';
$cfg['Servers'][$i]['socket'] = '';
$cfg['Servers'][$i]['connect_type'] = 'tcp';
$cfg['Servers'][$i]['extension'] = 'mysqli';
$cfg['Servers'][$i]['auth_type'] = 'config';
$cfg['Servers'][$i]['user'] = 'username';
$cfg['Servers'][$i]['password'] = 'password';
$cfg['Servers'][$i]['AllowNoPassword'] = false;

Por supuesto, si haces esto en un servidor en Internet, algún pícaro alegre vendrá y descargará alegremente todas tus contraseñas y borrará tu sitio web. Esto es solo para un servidor de desarrollo que se ejecuta en su propia computadora portátil.

Una forma más fácil de personalizar phpmyadmin en estos días es ir a http://www.example.com/phpmyadmin/setup/ , guardar toda la sección de configuración a la vez, hacer clic en guardar o descargar en la parte inferior, copiar el archivo generado en su directorio raíz phpmyadmin, luego chmod. Debe desactivar el permiso de escritura incluso si es un servidor local, ya que phpmyadmin lo verifica antes de permitirle iniciar sesión.

Chris
fuente
El nombre del archivo es incorrecto, no es un gran problema ya que la mayoría entenderá lo que quiere decir. Sin embargo, el nombre correcto esconfig.inc.php
David
3

Explore el directorio 'apps \ phpmyadmin4.5.2' en su carpeta wamp y abra el archivo config.inc.php. Luego agregue esta línea debajo del código existente.

'$cfg['LoginCookieValidity'] = 3600 * 10; //login cookie validity extended upto 10 hours'.

Eso es todo...

Koushik Chowdhury
fuente
1

Para phpMyadmin 5.0.2 ejecutándose en Ubuntu 18.04, edité el archivo de la siguiente manera:

  1. sudo nano /usr/share/phpmyadmin/libraries/classes/Config/Forms/User/FeaturesForm.php

  2. encuentre el método public static function getForms()y agregue el campo LoginCookieValidity

    public static function getForms()
    {
        $result = [
            'General' => [
                'VersionCheck',
                'NaturalOrder',
                'InitialSlidersState',
                'LoginCookieValidity', //Added this line if it missing
                ...........
          }
  3. guarde el archivo y ahora podrá cambiar el valor desde la interfaz de usuario.

[Configuración -> General -> Funciones -> Validación de cookies de inicio de sesión]

sandip
fuente
Gracias por esto. Estaba mirando las respuestas anteriores, y de nuevo en mi instalación 5.0.2, ¡y pensaba que estaba perdiendo la cabeza! Me pregunto por qué eliminaron la interfaz de usuario, especialmente si todavía está lista para volver a habilitarse.
Headbank
0

Server:localhost -> Settings -> Features -> General -> Login cookie validity

Pmpr
fuente
La misma respuesta ya se publicó hace mucho tiempo (y con una explicación + información sobre el tiempo de espera de la sesión php que le falta a su respuesta).
Marki555
Aunque no lo mencioné, siempre prefiero respuestas súper simples para algún tipo de preguntas.
Pmpr
1
Sí, pero si configura la validez de la cookie de inicio de sesión en un valor más alto que la validez de la sesión en php, no funcionará.
Marki555
Eso no lo sabía. gracias por su comentario informativo :)
Pmpr
-1

Tengo phpmyadmin 4.9.2. e intentar configurar LoginCookieValidity, pero tengo cierre de sesión automático :( Si usa localhost, puede probar https://docs.phpmyadmin.net/en/latest/config.html#example-for-ip-address-limited-autologin

if ($_SERVER["REMOTE_ADDR"] == "127.0.0.1") {
    $cfg['Servers'][$i]['auth_type'] = 'config';
    $cfg['Servers'][$i]['user'] = 'root';
    $cfg['Servers'][$i]['password'] = 'yourpassword';
} else {
    $cfg['Servers'][$i]['auth_type'] = 'cookie';
}
Denis Viunyk
fuente