如何无密码登录Adminer?Kubuntu18下Adminer-4.7.2-mysql.php会话设置
嘿,针对你的两个问题,我来给你详细说说怎么操作——毕竟在家庭本地环境里折腾Adminer,确实可以省不少登录的麻烦:
一、实现无需密码登录Adminer
Adminer支持通过自定义配置实现自动登录(免密),不过仅限家庭本地环境使用,绝对不能把这样的配置暴露到公网,风险极高。具体有两种简单的方式:
方式1:创建自定义Adminer封装文件
不用修改原始的adminer-4.7.2-mysql.php,新建一个adminer-custom.php文件,内容如下:
<?php function adminer_object() { // 引入原始Adminer文件 include_once "adminer-4.7.2-mysql.php"; class AdminerCustom extends Adminer { // 方法1:自动填充登录凭证(表单会自动填好,点击登录即可) public function credentials() { // 替换成你的MySQL服务器、用户名、密码 return array('localhost', '你的数据库用户名', '你的数据库密码'); } // 方法2:完全跳过登录验证(直接进入Adminer,连登录按钮都不用点) // 如果你想用这个,就注释掉上面的credentials方法,打开下面的login方法 /* public function login($login, $password) { // 直接返回true,允许任何登录尝试(仅限本地使用!) return true; // 也可以限定特定用户名:return $login == '你的用户名'; } */ } return new AdminerCustom(); } ?>
之后访问adminer-custom.php就能免密/自动登录了。
方式2:修改原始Adminer文件(不推荐)
直接打开adminer-4.7.2-mysql.php,找到function credentials()方法,修改返回值为你的数据库凭证:
function credentials() { return array('localhost', '你的用户名', '你的密码'); }
这种方式的缺点是,下次升级Adminer时需要重新修改,不如封装文件方便。
二、设置尽可能久的会话时长
Adminer的会话时长依赖PHP的Session配置,你可以通过两种方式延长:
方式1:在自定义Adminer中动态设置
在刚才的adminer-custom.php的AdminerCustom类里添加init方法:
public function init() { parent::init(); // 设置会话有效期为30天(单位:秒),你可以改成任意更大的数值 $session_lifetime = 30 * 24 * 60 * 60; ini_set('session.gc_maxlifetime', $session_lifetime); session_set_cookie_params($session_lifetime); }
这样每次访问Adminer时,都会自动延长会话有效期。
方式2:修改系统PHP配置(全局生效)
- 找到Kubuntu 18.04上的PHP配置文件,通常路径是
/etc/php/7.2/apache2/php.ini(如果你用Apache)或者/etc/php/7.2/fpm/php.ini(如果你用Nginx+PHP-FPM)。 - 搜索
session.gc_maxlifetime,把默认的1440(24分钟)改成你想要的时长,比如2592000(30天):session.gc_maxlifetime = 2592000 - 重启对应的服务:
- Apache:
sudo systemctl restart apache2 - PHP-FPM:
sudo systemctl restart php7.2-fpm
- Apache:
这种方式会让所有PHP应用的会话时长都延长,如果你只想要Adminer生效,优先选方式1。
内容的提问来源于stack exchange,提问作者mstdmstd
相关产品推荐
相关产品推荐

