phpMyAdmin 安装与配置
📦 第一步:前期准备(更新系统与安装必要组件)
更新系统包列表:
sudo apt update
升级已安装的包:
sudo apt upgrade -y
确保已安装 LAMP 栈:
phpMyAdmin 需要 Web 服务器和 MySQL。如果你还没安装,请先安装:
- Apache:
sudo apt install apache2 -y - MySQL:
sudo apt install mysql-server -y - PHP:
sudo apt install php libapache2-mod-php php-mysql -y
🛠️ 第二步:安装 phpMyAdmin 软件包
直接使用 apt 安装:
sudo apt install phpmyadmin -y
安装过程中会弹出图形化配置向导,请按以下选择:
- 选择 Web 服务器:使用空格键选中
apache2,然后按回车。 - 配置数据库:选择 Yes,用
dbconfig-common来为 phpMyAdmin 设置数据库。 - 设置应用密码:为 phpMyAdmin 的数据库用户(
pma)设置一个强密码并牢记。这不是你的 MySQL root 密码。
⚙️ 第三步:核心配置(解决最常见问题)
安装后,必须手动完成一项关键配置。
编辑 phpMyAdmin 的主配置文件:
sudo nano /etc/phpmyadmin/config.inc.php
找到 $cfg['blowfish_secret'] 这一行(通常在文件靠前位置)。在单引号 '' 内填入一个长且复杂的随机字符串(至少32个字符),用于加密登录会话。例如:
$cfg['blowfish_secret'] = 'e5x7]k@L9sP$qB2)rY6#WgF%z^C&vU8mN+'; // 示例,请使用你自己的
这是避免“未设置 blowfish_secret”错误的关键。
🔐 第四步:配置 MySQL 权限(允许登录)
phpMyAdmin 网页本身只是一个客户端,你需要确保有合法的 MySQL 用户能通过它登录。
以 root 身份登录 MySQL:
sudo mysql
注意:在 Ubuntu 上,默认的 MySQL 安装可能允许 sudo mysql 直接免密登录。如果此命令失败,请使用 sudo mysql -u root -p 并输入你安装 MySQL 时设置的 root 密码。
在 MySQL 提示符下,强烈建议为 phpMyAdmin 创建一个专用的管理用户(而不是直接使用 root),例如:
CREATE USER 'pma_admin'@'localhost' IDENTIFIED BY '你的强密码';
GRANT ALL PRIVILEGES ON *.* TO 'pma_admin'@'localhost' WITH GRANT OPTION;
FLUSH PRIVILEGES;
EXIT;
将 '你的强密码' 替换为你想设置的密码。GRANT ALL PRIVILEGES ON *.* 赋予了该用户类似 root 的完整管理权限,你可以根据需要缩小权限范围。
🌐 第五步:访问与验证
重启 Apache 服务以加载所有配置:
sudo systemctl restart apache2
打开浏览器,访问:
http://你的服务器IP地址或域名/phpmyadmin
在登录页面,使用以下凭据:
- 用户名:你创建的 MySQL 用户(如
pma_admin) - 密码:该用户对应的密码
如果成功登录并看到数据库管理界面,则安装完成。
⚠️ 可选:故障排查与安全加固
“控制用户连接失败”警告:如果你在界面底部看到此警告,说明 phpMyAdmin 用于提供高级功能(书签、关系图等)的后台专用数据库未正确配置。你可以选择忽略它(不影响核心的数据库管理功能),或者按照上一轮对话中的方案手动创建
phpmyadmin数据库和pma用户。访问 404 错误:确保 Apache 配置正确启用了 phpMyAdmin。可以创建一个软链接:
sudo ln -s /usr/share/phpmyadmin /var/www/html/phpmyadmin基础安全建议:
- 考虑更改 phpMyAdmin 的默认路径,例如通过 Apache 别名将其设置为不易猜测的路径。
- 使用防火墙(如
ufw)限制访问来源:sudo ufw allow from 你的信任IP to any port 80,443 - 为你的域名设置 SSL 证书(通过 Let's Encrypt),始终通过 https:// 访问。
📋 流程总结
整个过程的关键在于:
- 通过
apt顺利安装。 - 手动设置
blowfish_secret。 - 确保 MySQL 中存在一个拥有适当权限的用户用于网页登录。