phpMyAdmin-5.2.1-all-languages.zip)。/var/www/html/phpmyadmin 或虚拟主机 public_html/phpmyadmin)。pma_secure_x7k9),提高安全性。复制 config.sample.inc.php 为 config.inc.php,编辑以下关键项:
<?php
$cfg['PmaAbsoluteUri'] = 'https://example.com/pma_secure_x7k9/'; // 完整访问 URL,结尾带 /
$cfg['Servers'][$i]['host'] = 'localhost'; // MySQL 主机,同机用 localhost 或 127.0.0.1
$cfg['Servers'][$i]['port'] = ''; // 留空默认 3306,非标准端口填数字
$cfg['Servers'][$i]['socket'] = ''; // Unix socket 路径(如 /var/run/mysqld/mysqld.sock),留空自动
$cfg['Servers'][$i]['user'] = 'pma_user'; // 专用数据库账号,建议不使用 root
$cfg['Servers'][$i]['password'] = 'strong_password_here'; // 对应密码
$cfg['Servers'][$i]['auth_type'] = 'cookie'; // 认证方式:cookie/http/config/signon
$cfg['Servers'][$i]['connect_type'] = 'tcp'; // tcp/socket
$cfg['Servers'][$i]['compress'] = false; // 是否压缩协议
$cfg['Servers'][$i]['controlhost'] = '';
$cfg['Servers'][$i]['controluser'] = 'pma_control';
$cfg['Servers'][$i]['controlpass'] = 'control_pass'; // phpMyAdmin 配置存储专用账号
?>
| 模式 | 特点 | 适用场景 |
|---|---|---|
| cookie | 表单登录,密码加密存 Cookie,支持注销,最通用 | 生产环境首选,Apache + mod_php / PHP-FPM 均支持 |
| http | 浏览器原生 Basic Auth 弹窗,无注销功能 | 简单内网、Apache mod_php |
| signon | 单点登录 (SSO) 集成,由应用层验证后设置会话 | 已有统一登录系统的平台 |
| config | 配置文件明文存用户名密码,免登录,**极不安全** | 仅限本地开发调试,严禁生产 |
$cfg['blowfish_secret'] = 'a_very_long_random_string_at_least_32_chars_!@#$%^&*()'; // 32+ 字符随机串
用于加密 Cookie 中的登录凭证。可用 openssl_random_pseudo_bytes(32) 生成。
$cfg['DefaultLang'] = 'zh_CN';
$cfg['ServerDefault'] = 1;
$cfg['UploadDir'] = '/var/www/phpmyadmin/upload/'; // 导入文件上传目录
$cfg['SaveDir'] = '/var/www/phpmyadmin/save/'; // 导出文件保存目录
$cfg['MaxRows'] = 50; // 默认每页行数
$cfg['Order'] = 'DESC'; // 默认排序
$cfg['NavigationTreeEnableGrouping'] = true; // 左侧树分组
$cfg['LoginCookieValidity'] = 3600; // Cookie 有效期 1 小时
$cfg['LoginCookieStore'] = 0; // 0=会话级,非 0=持久天数
pma_user,仅授予所需库的 SELECT, INSERT, UPDATE, DELETE, CREATE, DROP, INDEX, ALTER,无 GRANT OPTION、FILE、SHUTDOWN 等高危权限。# Apache .htaccess (放在 phpmyadmin 目录)
AuthType Basic
AuthName "phpMyAdmin Restricted"
AuthUserFile /etc/apache2/.htpasswd_pma
Require valid-user
或 Nginx auth_basic,双重认证。$cfg['AllowArbitraryServer'] = false; 禁止任意服务器连接。浏览器访问 https://example.com/pma_secure_x7k9/,应显示登录页。输入 pma_user 及密码,登录后检查:
| 现象 | 原因 | 解决 |
|---|---|---|
| 报错 "The $cfg['blowfish_secret'] is too short" | 密钥长度不足 32 字符 | 生成 32+ 随机字符串填入 |
| 登录后立即跳回登录页 | Cookie 域/路径/HTTPS 不匹配 | 检查 PmaAbsoluteUri 协议/域名/路径;php.ini session.cookie_secure/domain/path |
| 导入大 SQL 超时/内存溢出 | PHP 限制 | 调大 upload_max_filesize、post_max_size、max_execution_time、memory_limit;或用命令行 mysql < big.sql |
| 无法创建/写入配置存储表 | controluser 权限不足 | 授予 controluser 对 phpmyadmin 数据库的全部权限 |