首頁
編程語言
C語言|JAVA編程
Python編程
網頁編程
ASP編程|PHP編程
JSP編程
數據庫
MYSQL數據庫|SqlServer數據庫
Oracle數據庫|DB2數據庫
您现在的位置: 程式碼之家 >> 編程語言 >  >> 網頁程式設計 >> PHP 程式設計 >> PHP 相關知識

phpMyAdmin 安装与配置完整教程:从下载到安全认证设置

     編輯:PHP 相關知識

1. 下载与部署

  • 官网:phpMyAdmin Downloads,选择最新稳定版(如 phpMyAdmin-5.2.1-all-languages.zip)。
  • 解压到 Web 可访问目录(如 /var/www/html/phpmyadmin 或虚拟主机 public_html/phpmyadmin)。
  • 重命名目录为不易猜测的名(如 pma_secure_x7k9),提高安全性。

2. 核心配置文件:config.inc.php

复制 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 配置存储专用账号
?>

认证方式详解 (auth_type)

模式特点适用场景
cookie表单登录,密码加密存 Cookie,支持注销,最通用生产环境首选,Apache + mod_php / PHP-FPM 均支持
http浏览器原生 Basic Auth 弹窗,无注销功能简单内网、Apache mod_php
signon单点登录 (SSO) 集成,由应用层验证后设置会话已有统一登录系统的平台
config配置文件明文存用户名密码,免登录,**极不安全**仅限本地开发调试,严禁生产

Blowfish 密钥 (必填,cookie 模式下)

$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=持久天数

3. 权限与安全加固

  1. 数据库账号最小权限:创建专用 pma_user,仅授予所需库的 SELECT, INSERT, UPDATE, DELETE, CREATE, DROP, INDEX, ALTER,无 GRANT OPTION、FILE、SHUTDOWN 等高危权限。
  2. Web 服务器层访问控制:
    # Apache .htaccess (放在 phpmyadmin 目录)
    AuthType Basic
    AuthName "phpMyAdmin Restricted"
    AuthUserFile /etc/apache2/.htpasswd_pma
    Require valid-user
    或 Nginx auth_basic,双重认证。
  3. HTTPS 强制:配置 SSL 证书,重定向 HTTP→HTTPS,防止凭证明文传输。
  4. 禁用不需要的功能:$cfg['AllowArbitraryServer'] = false; 禁止任意服务器连接。

4. 验证安装

浏览器访问 https://example.com/pma_secure_x7k9/,应显示登录页。输入 pma_user 及密码,登录后检查:

  • 左侧数据库树正常展示。
  • 顶部菜单:数据库、SQL、状态、用户账户、导出、导入等功能可用。
  • 底部版本信息显示当前 phpMyAdmin 版本。

5. 常见问题

现象原因解决
报错 "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 数据库的全部权限
  1. 上一篇文章:
  2. 下一篇文章:
Copyright © 程式碼之家 All Rights Reserved