在我的本地开发Ubuntu框中,我使用MySQL和phpmyadmin来处理数据库。
每当phpmyadmin闲置1440秒(24分钟)时,会话就会到期。我失去了我的位置,必须登录并重新开始。
我尝试在$cfg['LoginCookieValidity'] = 3600 * 9;
内更换config.inc.php
,但它仍然在1440秒内超时。
我重新启动了所有内容并清除了浏览器缓存(Firefox历史记录 - >清除最近的历史记录 - >缓存 - >所有内容)。
我不确定为什么增加的超时不会生效。我究竟做错了什么?
在浏览器中转到PHPMyAdmin
设置>功能>更改登录cookie有效期的值>保存
1)登录phpMyAdmin 2)在主屏幕上点击“更多设置”(屏幕中间的底部)3)点击屏幕顶部的“功能”选项卡/按钮。 4)在20天内将“登录cookie有效期”设置设置为1728000 5)应用。
它不起作用。 PHP会话将在1440秒后过期。
这也改变了PHP.ini
:
session.gc_maxlifetime = 3600
http://www.phpmyadmin.net/documentation/Documentation.html#config
另外,来自PHP.ini
:
如果您使用子目录选项存储会话文件
; (参见上面的session.save_path),然后垃圾收集没有
;自动发生。你需要自己做垃圾
;通过shell脚本,cron条目或其他方法收集。
;例如,以下脚本相当于
;将session.gc_maxlifetime设置为1440(1440秒= 24分钟):
; cd / path / to / sessions;找-cmin +24 | xargs rm
从wampicon / php / php更改php.in文件
session.gc_maxlifetime = 1440
至
session.gc_maxlifetime = 43200
要永久设置Cookie,您需要执行一些步骤
转到 - > /etc/phpmyadmin/config.inc.php
文件
添加此代码
$cfg['LoginCookieValidity'] = <cookie expiration time in seconds >
如果参数$cfg['LoginCookieValidity']
没有在config.inc.php
文件中生效,请尝试通过在左侧添加分号来禁用php.ini文件中的session.gc_maxlifetime
,如下所示:
; After this number of seconds, stored data will be seen as 'garbage' and
; cleaned up by the garbage collection process.
; http://php.net/session.gc-maxlifetime
; session.gc_maxlifetime = 1440
或者尝试通过评论两者来禁用$cfg['LoginCookieValidity']
和session.gc_maxlifetime = 1440
。
然后当您空闲时,phpMyAdmin不应再注销。它适用于Windows。不要忘记清除浏览器缓存并重新启动网络服务器。
更改cookie过期的步骤
第1步:转到Phpmyadmin的设置
第2步:一般
第3步:登录cookie有效期
步骤4:使用新值更新1440秒默认Cookie到期时间
如果你有phpmyadmin configuration storage设置,设置将从你的phpmyadmin.pma__userconfig表中提取出来,并覆盖你在config.inc.php中的任何内容。在此表中,可以为每个MYSQL用户分配一组不同的phpmyadmin设置。
我已经找到了解决方案,并且现在已成功使用它。
只需将此Addon安装到您的FF浏览器即可。
在我尝试了所有建议的方法并且仍然保持注销后,我转向为Tampermonkey编写一个小的usercsript,因为我已经有了这个扩展名。它非常简单,只需每分钟向PHPMyAdmin的一个低占用脚本发送一个请求。这是代码:
// ==UserScript==
// @name PHPMyAdmin Keep Session Alive
// @namespace https://www.bitwizeor.io/
// @version 0.1
// @description No more nasty PHPMyAdmin session expiries
// @match http://localhost/phpmyadmin/*
// ==/UserScript==
(function() {
'use strict';
console.log('PHPMyAdmin Keep Session Alive activated');
var url;
window.setInterval(function(){
url = $("#serverinfo a:eq(1)").prop("href");
url += '&ajax_request=true&ajax_page_request=true';
$.getJSON(url);
console.log('pinging ...');
}, 60000);
})();
===方法1,http登录===
[php.ini]
session.gc_maxlifetime = 86400
[config.inc.php]
$cfg['Servers'][$i]['auth_type'] = 'http';
===方法2,使用cookie登录===
[php.ini]
session.gc_maxlifetime = 86400
[config.inc.php]
$cfg['Servers'][$i]['auth_type'] = 'cookie';
$cfg['Servers'][$i]['LoginCookieValidity'] = 86400;
$cfg['Servers'][$i]['pmadb'] = 'phpmyadmin';
$cfg['Servers'][$i]['controluser'] = 'phpmyadmin_pma';
$cfg['Servers'][$i]['controlpass'] = 'nigookike';
$cfg['Servers'][$i]['userconfig'] = 'pma__userconfig'; // there's a lot of other table required for full functionality,
// all others can be left out unconfig except this one
[mysql]
-import phpMyAdmin/sql/create_tables.sql
-grant PRIVILEGES to phpmyadmin_pma as below
db/table
phpmyadmin ALL PRIVILEGES
mysql/db SELECT
mysql/host SELECT
mysql/tables_priv USAGE
mysql/user USAGE
-clear all entries should old one exists
phpmyadmin/pma__userconfig
[webUI]
-clear broswer cookie
-as normal mysql user, access http://mysql/phpmyadmin , at the bottom of page:
The phpMyAdmin configuration storage is not completely configured, some extended features have been deactivated. [Find out why.]
-near top of the page
[Create missing phpMyAdmin configuration storage tables.]
-access http://mysql/phpmyadmin > settings > features > Login cookie validity > 86400 > [apply]
-check phpmyadmin/pma__userconfig contain new entries of aforemention mysql user
注:
链接没有出现在首页,去设置>功能>警告>缺少phpMyAdmin配置存储表> [刷新]几次将使它出现
将此行添加到/config.inc.php:
$cfg['LoginCookieValidity'] = 36000;
在/setup/lib/index.lib.php中
$cf->getValue('LoginCookieValidity') > 36000;
如果您还没有phpMyAdmin站点的.htaccess文件,请创建一个,然后添加以下行以覆盖默认的PHP会话超时:
php_value session.gc_maxlifetime 36000
我不建议在主php.ini文件中更改此值,因为它将允许所有PHP站点的超长会话超时。
来源:http://www.sitekickr.com/blog/increase-phpmyadmin-timeout/
我之后对我有用
$cfg['LoginCookieValidity']
的(phpmyadmin folder)/libraries/config.default.php
改为999999999
。php.ini
的phpmyadmin使用的php5 -i | grep php.ini
。php.ini
文件,我从grep命令输出得到的路径,并将session.gc_maxlifetime
值更改为999999999
。sudo service apache2 restart
。完成。登录phpmyadmin并在设置 - >功能 - >常规 - >登录cookie有效性中检查cookie有效性。这是999999999
。此外没有警告“您的PHP参数session.gc_maxlifetime低于cookie有效性......”。我在更改php.ini
文件之前登录phpmyadmin后显示警告。
检查phpmyadmin使用的php版本。你应该更改phpmyadmin使用的php的ini文件。我安装了php5和php(即7)。但我的phpmyadmin使用php5。所以我不得不搜索php5的ini文件。
我知道这是一个老帖子,但我尝试了我读过的每一个解决方案,包括这个页面上的那些无济于事,然后我很幸运,所以我在这里发布它。
我正在运行Ubuntu 17.10。
我存档/etc/phpmyadmin/config.inc.php并将其内容替换为/usr/share/phpmyadmin/config.sample.inc.php的内容。
然后我
1) Enabled (uncommented) all the options under "Storage database and tables";
2) Included "ini_set('session.gc_maxlifetime', 86400);" underneath the uncommented items; and
3) Provided a 32 character sequence for the $cfg['blowfish_secret'] = ''; /* YOU MUST FILL IN THIS FOR COOKIE AUTH! */, which is above the uncommented items.
我保存了文件并重新启动了phpMyAdmin。
我选择了Server:localhost - > Settings - > Features并将“Login cookie validity”的值更改为86400(24小时)。请注意,您指定的任何非默认值都会导致此选项的背景颜色变为黄色,因此请勿对其进行警告。该值应小于或等于config.inc.php中使用的值。
我保存了设置,退出并重新启动了phpMyAdmin。
最后,所有消息都消失了。我的会话根据设置(在这种情况下全天)保持活动状态,并记住我的设置。
我当然希望这有助于某人。对我来说,处理和解决是令人沮丧的。
我们可以在以下位置更改Cookie时间会话功能:
设置 - >功能 - >常规 - >登录cookie有效期
我在这里找到了答案.. No activity within 1440 seconds; please log in again
您可以在phpmyadmin Web界面更改cookie时间会话功能
Settings->Features->General->Login cookie validity
要么
如果要更改配置文件中的“登录cookie有效期”,请在PHPMyAdmin的根目录中打开phpmMyAdmin配置文件config.inc.php
。(根目录通常是/ etc / phpmyadmin /)
找到config.inc.php后,搜索下面的行并将其设置为您希望phpmyadmin超时的秒值:
$cfg['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
$ cfg ['LoginCookieValidity']
类型:整数[秒数] 默认值:1440
定义登录cookie的有效期。请注意,php配置选项session.gc_maxlifetime可能会限制会话有效性,如果会话丢失,登录cookie也会失效。因此,将session.gc_maxlifetime至少设置为$ cfg ['LoginCookieValidity']的相同值是个好主意。
注意:
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
。似乎有用于更改phpmyadmin配置的UI启动apache并单击以下链接
http://localhost/phpmyadmin/setup/index.php?page=form&formset=Features#tab_Security
phpMyAdmin settings
without any problem or requirements to change configs in php my.ini or defining .htaccess file:phpmyadmin
路径,在其子文件夹(我的4.4.9版本中的create_tables.sql
)中找到phpMyAdmin/sql/create_tables.sql
,并从你的网络浏览器在你当前的phpMyAdmin网站上执行整个文件内容。这将创建一个名为phpmyadmin
的数据库,它可以永久保存所有phpMyAdmin选项。config.inc.php
中找到注释行$cfg['Servers'][$i]['pmadb'] = 'phpmyadmin';
并取消注释(现在phpMyAdmin将使用我们在上一步中生成的自定义数据库)。phpMyAdmin
并按照Pavnish描述的图片转到Server >> Settings >> Features >> "Login Cookie Validity"
并设置所需的值。它现在有效。参考文献:Niccolas Answer,PhpMyAdmin Configuration Storage,flashMarks Answer
你应该重启apache或httpd,而不是mysqld
sudo service httpd restart
要么
sudo /etc/init.d/apache2 restart
然后,您将收到另一个警告:“您的PHP参数session.gc_maxlifetime低于phpMyAdmin中配置的cookie有效性,因此,您的登录将比在phpMyAdmin中配置的更早到期。”这是有道理的,因为php的会话将首先超时。所以我们需要更改/etc/php.ini。
session.gc_maxlifetime = 43200
That’s 12 hours in seconds.
重启你的apache服务器,你就完成了!
来源:http://birdchan.com/home/2011/06/06/phpmyadmin-timeout-after-1440-seconds/
这对我有用! :)
您只需增加phpMyAdmin会话超时,在根phpMyAdmin目录中打开config.inc.php并添加此行。
来自wamp文件夹路径wamp \ apps \ phpmyadmin4.0.4 \ config.inc.php
$cfg['LoginCookieValidity'] = <your_timeout>;
例
$cfg['LoginCookieValidity'] = '1440';
注意:对于不是生产服务器的开发服务器,短cookie生命周期都很好。