92

如何更改 phpmyadmin 自动注销时间?

它会在 1440 秒后自动注销,这对我来说非常低。如何更改选项或完全删除登录请求?

4

9 回答 9

117

更改 php.ini 将更改服务器上运行的所有网站的会话持续时间。要仅为 PhpMyAdmin 更改它,请打开config.inc.php并添加:

$sessionDuration = 60*60*24*7; // 60*60*24*7 = one week
ini_set('session.gc_maxlifetime', $sessionDuration);
$cfg['LoginCookieValidity'] = $sessionDuration;
于 2012-08-08T05:42:47.347 回答
97

在 PHPMyAdmin 4 中,这不再出现在 config.inc.php 文件中。而是在浏览器中转到 PHPMyAdmin。确保您处于 localhost 级别以查看“设置”链接。然后设置设置>功能>更改“登录cookie有效性”的值>保存

指示

于 2014-11-11T19:08:40.973 回答
87

创建或编辑您的php.ini文件并在其中设置此变量值:

session.gc_maxlifetime = 1440

整数以秒为单位。500000 秒是 5.7 天。然后重启apache。

于 2012-06-30T09:48:45.080 回答
12

您可以在 phpmyadmin Web 界面更改 cookie 时间会话功能

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

或者

如果要更改配置文件中的“登录cookie有效性”,则打开phpmMyAdmin配置文件,config.inc.php在PHPMyAdmin的根目录下。(根目录通常是/etc/phpmyadmin/)

找到 config.inc.php 后,搜索下面的行并将其设置为您希望 phpmyadmin 超时的秒数:

['LoginCookieValidity'] 

如果找不到上述行,只需添加以下内容:

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

例如:

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

上述示例中的超时设置为 3 小时。

session.gc_maxlifetime可能会限制会话有效性,如果会话丢失,登录 cookie 也会失效。因此,我们可能需要在php.ini配置文件中设置 session.gc_maxlifetime(文件位置在 ubuntu 中是 /etc/php5 /apache2/php.ini)。

session.gc_maxlifetime = 3600 * 3


关于 LoginCookieValidity 的 phpMyAdmin 文档

$cfg['LoginCookieValidity']

类型: 整数 [秒数]
默认值: 1440

定义登录 cookie 的有效期。请注意 php 配置选项 session.gc_maxlifetime 可能会限制会话的有效性,如果会话丢失,登录 cookie 也会失效。所以最好将 session.gc_maxlifetime 设置为至少与 $cfg['LoginCookieValidity'] 相同的值。

笔记:

  1. 如果您的服务器崩溃并且无法加载您的 phpmyadmin 页面,请在 /var/log/apache2/error.log 检查您的 apache 日志。如果您PHP Fatal error: Call to a member function get() on a non-object in /path/to/phpmyadmin/libraries/Header.class.php在第 135 行上,请执行chmod 644 config.inc.php. 那应该处理错误。
  2. 如果您收到警告: , 则按上述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.更改。session.gc_maxlifetime
于 2014-08-07T06:10:41.537 回答
6

仅对于本地安装,您可以完全删除登录和超时 - 这似乎是您所追求的。通过将授权类型更改为“config”并在配置文件中输入您的数据库用户名和密码,您将自动登录。添加到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;

当然,如果您在 Internet 上的服务器上执行此操作,一些厚脸皮的家伙会兴高采烈地下载您的所有密码并删除您的网站。这仅适用于在您自己的笔记本电脑上运行的开发服务器。

这些天来自定义 phpmyadmin 的一种更简单的方法是访问http://www.example.com/phpmyadmin/setup/,一次保存所有设置部分,点击底部的保存或下载,将生成的文件复制到您的root phpmyadmin 目录,然后对其进行 chmod。即使它是本地服务器,您也必须关闭写入权限,因为 phpmyadmin 在允许您登录之前会检查这一点。

于 2013-09-21T21:09:21.920 回答
3

在 wamp 文件夹中探索目录 'apps\phpmyadmin4.5.2' 并打开 config.inc.php 文件。然后在现有代码下添加这一行。

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

就这样...

于 2016-12-15T05:14:14.080 回答
2

对于在 Ubuntu 18.04 上运行的phpMyadmin 5.0.2,我将文件编辑如下:

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

  2. 找到方法public static function getForms()并添加LoginCookieValidity字段

    public static function getForms()
    {
        $result = [
            'General' => [
                'VersionCheck',
                'NaturalOrder',
                'InitialSlidersState',
                'LoginCookieValidity', //Added this line if it missing
                ...........
          }
    
  3. 保存文件,现在您将能够从用户界面更改值。

[设置 -> 常规 -> 功能 -> 登录 Cookie 有效性]

于 2020-06-05T10:38:16.023 回答
0

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

于 2016-07-20T06:36:21.673 回答
-1

我有 phpmyadmin 4.9.2。并尝试配置 LoginCookieValidity,但我有自动注销 :( 如果您使用本地主机,您可以尝试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';
}
于 2020-01-14T15:32:24.727 回答