PhpMyAdmin上的会话生命周期

时间:2014-09-25 11:28:05

标签: php phpmyadmin

我尝试了多种方式来扩展它,以便不必在开发服务器上每1440秒登录一次。但问题仍然存在。

有人可以就“正确”的方法提出建议吗?我想将cookie会话超时设置为3600(1小时)而不是默认的1440。

我试过了:

  • 在我的php.ini文件中设置:'session.gc_maxlifetime'
  • 在Settings =>下进入phpmyadmin功能=>一般=>登录cookie有效期并将其设置为我想要的时间。
  • 进入phpmyadmin文件中的config.ini.php并将'$ cfg ['LoginCookieValidity']'设置为所需的时间。

我确保每次尝试重新启动apache以加载新配置。但问题仍然存在。

非常感谢任何帮助/建议。

2 个答案:

答案 0 :(得分:2)

你必须编辑phpmyadmin的配置文件(config.inc.php)并设置变量$cfg['LoginCookieValidity'] = 3600,我把它放在文件的末尾。

接下来,如果它低于3600秒,你必须增加php会话超时,为此你必须在php.ini文件中设置session.gc_maxlifetime

之后你必须重启apache。

我已经这样做了,它适用于Ubuntu 14.04。

答案 1 :(得分:1)

首先,您需要验证系统上是否允许使用ini_set?

要了解服务器上的默认(基于文件的会话)会话超时值,您可以通过ini_get命令查看它:

$currentTimeoutInSecs = ini_get(’session.gc_maxlifetime’);

//会话超时所需的php.ini设置。

ini_set(’session.gc_maxlifetime’, 3600);
ini_set(‘session.gc_probability’,1);
ini_set(‘session.gc_divisor’,1);


session_set_cookie_params(3600);   

session_start(); // ready to go!

如果你想改变session.cookie_lifetime。

这在一些常见文件中是必需的,因为要在整个应用程序中获取会话值,我们需要编写session_start();到每个文件然后只会获得$ _SESSION全局变量值。

$sessionCookieExpireTime=8*60*60;
session_set_cookie_params($sessionCookieExpireTime);
session_start();