phpmyadmin 自动注销时间

Posted

技术标签:

【中文标题】phpmyadmin 自动注销时间【英文标题】:phpmyadmin automatic logout time 【发布时间】:2012-07-01 15:29:30 【问题描述】:

如何更改 phpmyadmin 的自动登出时间?

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

【问题讨论】:

【参考方案1】:

更改 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;

【讨论】:

localhost/phpmyadmin/setup/… 似乎有用于设置 config.php 变量的 UI - 请参阅登录 Cookie 有效性 此 UI 设置有点混乱,但适用于在配置中设置密码以自动登录和设置会话到期时间。点赞。 无限时间是不可能的,因为每个 cookie 都有一个“有效期至”-日期,但您可以输入一个非常高的数字。 这应该是答案。该问题询问如何修改phpMyAdmin。这个答案专门解决它。 您也需要更改 cookie 路径。因为如果为其他网站定义了 gc_maxlifetime,gc 将在第一次调用网站时删除所有 cookie。您可以在 /etc/apache2/conf-available/phpmyadmin.conf 文件中添加这两行: php_admin_value session.gc_maxlifetime 604800 + php_admin_value session.save_path /var/lib/phpmyadmin/tmp【参考方案2】:

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

【讨论】:

注:您可以在此字段中输入的字符数似乎有限制。 UI 更改对我不起作用。不管 登录 cookie 有效期 有多大,它仍然注销得太快。 @dani24,您收到此通知了吗:Your preferences will be saved for current session only. Storing them permanently requires phpMyAdmin configuration storage.?单击此链接,它将为您提供启用永久存储更改功能的说明。 phpMyAdmin 将显示此错误。 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. 你将不得不应用 Ravinder Singh 的答案以及这个答案。 在 4.8.4 版本中不可用【参考方案3】:

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

session.gc_maxlifetime = 1440

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

【讨论】:

所以打开你的php.ini文件并增加session.gc_maxlifetime的值,就是这样。 错误答案,安全问题! 您可能还需要更新 phpmyadmin config.inc.php 文件中的 $cfg['LoginCookieValidity']。 @slaver113 在这种情况下,我会说安全性很好,因为它是一个开发环境,这不适用于任何生产环境。我希望在答案中看到这一点。 这与 PHPMyAdmin 的超时无关。我不知道为什么它的投票率如此之高。它甚至与问题无关。【参考方案4】:

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

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

如果要更改配置文件中的'login cookie有效性',则打开phpmMyAdmin配置文件,在PHPMyAdmin的根目录config.inc.php。(根目录通常是/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


phpMyAdmin Documentation on LoginCookieValidity

$cfg['LoginCookieValidity']

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

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

注意:

    如果您的服务器崩溃并且无法加载您的 phpmyadmin 页面,请检查 您的 apache 日志位于 /var/log/apache2/error.log。如果你在第 135 行得到PHP Fatal error: Call to a member function get() on a non-object in /path/to/phpmyadmin/libraries/Header.class.php,那么 chmod 644 config.inc.php。这应该可以解决错误。 如果收到警告: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 如上所述。

【讨论】:

【参考方案5】:

仅对于本地安装,您可以完全删除登录和超时 - 这似乎就是您所追求的。通过将授权类型更改为“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/ ,一次保存所有设置部分,单击底部的保存或下载,将生成的文件复制到您的根 phpmyadmin 目录,然后对其进行 chmod。即使它是本地服务器,您也必须关闭写入权限,因为 phpmyadmin 在允许您登录之前会检查这一点。

【讨论】:

文件名错误,不是什么大问题,因为大多数人都会理解你的意思。不过正确的名字是config.inc.php【参考方案6】:

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

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

就是这样……

【讨论】:

【参考方案7】:

对于在 Ubuntu 18.04 上运行的phpMyadmin5.0.2,我将文件编辑如下:

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

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

    public static function getForms()
    
        $result = [
            'General' => [
                'VersionCheck',
                'NaturalOrder',
                'InitialSlidersState',
                'LoginCookieValidity', //Added this line if it missing
                ...........
          
    

    保存文件,现在您可以从用户界面更改值。

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

【讨论】:

谢谢。我正在查看上面的答案,然后回到我的 5.0.2 安装,并认为我疯了!想知道他们为什么要移除 UI,尤其是在它仍然可以重新启用的情况下?【参考方案8】:

Server:localhost -&gt; Settings -&gt; Features -&gt; General -&gt; Login cookie validity

【讨论】:

很久以前就已经发布了相同的答案(以及您的答案缺少的关于 php 会话超时的解释+信息)。 虽然我没有提到,但对于某些类型的问题,我总是喜欢超级简单的答案。 是的,但是如果你将登录cookie有效性设置为比php中的会话有效性更高的值,它将不起作用。 我不知道。感谢您提供丰富的评论:)【参考方案9】:

我有 phpmyadmin 4.9.2。并尝试配置 LoginCookieValidity,但我有自动注销 :( 如果你使用 localhost 你可以试试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';

【讨论】:

以上是关于phpmyadmin 自动注销时间的主要内容,如果未能解决你的问题,请参考以下文章

在 YII2 中使用自动注销,需要在再次登录后将用户重定向到用户在自动注销之前的相同 URL

无法从 XAMPP 中的 phpmyadmin 注销

使用 php 和 mysql 自动注销

phpMyAdmin 中缺少设置图标和注销

phpmyadmin 在第一次单击时注销

当用户注销其中一个标签时,如何自动从所有打开的标签中注销用户?