目录
- 【准备工作】 - 安装前的必要条件
- 【方法一:Linux (Ubuntu/Debian) - 最推荐】
- 使用 APT 包管理器安装(最简单)
- 手动安装(更灵活,推荐生产环境)
- 【方法二:Windows - XAMPP/WAMP 环境】
使用 XAMPP 集成环境安装
(图片来源网络,侵删) - 【方法三:Docker - 最现代、最隔离的方式】
- 【安装后配置与安全加固】 - 非常重要!
- 【常见问题与解决方案】
【准备工作】 - 安装前的必要条件
在安装 phpMyAdmin 之前,请确保你的系统已经满足以下条件:
- Web 服务器:已安装并运行,常见的选择有:
- Apache (推荐,与 phpMyAdmin 兼容性最好)
- Nginx (需要额外配置
php-fpm)
- PHP:已安装并运行,phpMyAdmin 需要 PHP 7.2 或更高版本,你可以通过以下命令检查 PHP 版本:
php -v
你需要安装一些 PHP 扩展,在 Debian/Ubuntu 系统上,可以使用以下命令安装:
sudo apt update sudo apt install php php-mysql php-gd php-mbstring php-xml php-zip php-json php-curl
- MySQL/MariaDB 数据库:已安装并运行,并且你知道一个拥有管理员权限的用户(如
root)及其密码。
【方法一:Linux (Ubuntu/Debian) - 最推荐】
对于 Linux 服务器,这是最主流的安装方式。
方案 A:使用 APT 包管理器安装(最简单)
这种方法最省心,适合快速部署和测试。

-
更新软件包列表
sudo apt update
-
安装 phpMyAdmin
sudo apt install phpmyadmin
安装过程中会弹出一个图形化配置界面(如果终端支持):
- Web server to reconfigure automatically:选择你的 Web 服务器,
apache2,按空格键选中,然后按Tab键选择OK。 - Configure database for phpmyadmin with dbconfig-common?:选择
<Yes>来让系统自动为 phpMyAdmin 创建数据库和用户。 - MySQL application password for phpmyadmin:在这里为 phpMyAdmin 的数据库用户设置一个密码,请务必记住这个密码,或者留空让系统自动生成一个安全的密码。
- Web server to reconfigure automatically:选择你的 Web 服务器,
-
启用 Apache 的
rewrite模块 这是为了让 phpMyAdmin 的 URL 重写功能正常工作。
(图片来源网络,侵删)sudo a2enmod rewrite
-
重启 Apache 服务
sudo systemctl restart apache2
-
访问 phpMyAdmin 你可以在浏览器中访问
http://你的服务器IP/phpmyadmin或http://localhost/phpmyadmin。
方案 B:手动安装(更灵活,推荐生产环境)
手动安装可以让你更好地控制文件位置和权限,并且总是能安装到最新的稳定版本。
-
下载 phpMyAdmin 访问 phpMyAdmin 官方下载页面,获取最新的稳定版(如
phpMyAdmin-x.x.x-all-languages.tar.gz)的下载链接,然后使用wget下载。# 请将下面的 URL 替换为最新的下载链接 wget https://files.phpmyadmin.net/phpMyAdmin/5.2.1/phpMyAdmin-5.2.1-all-languages.tar.gz
-
解压文件
tar -xvzf phpMyAdmin-5.2.1-all-languages.tar.gz
-
移动文件到 Web 服务器根目录 我们通常把它放在
/var/www/目录下,并重命名为一个简单的名字,如pma。sudo mv phpMyAdmin-5.2.1-all-languages /var/www/pma
-
设置权限 确保Web服务器(如
www-data用户)有权限读取这些文件。sudo chown -R www-data:www-data /var/www/pma sudo chmod -R 755 /var/www/pma
-
创建配置文件 进入
pma目录,复制并重命名config.sample.inc.php为config.inc.php。cd /var/www/pma sudo cp config.sample.inc.php config.inc.php
-
编辑配置文件 使用
nano或vim编辑器打开config.inc.php文件。sudo nano config.inc.php
找到以下配置项并进行修改:
-
$cfg['blowfish_secret']:这是一个用于 Cookie 认证的密钥。必须修改为一个随机的、复杂的字符串(至少32位字符)。$cfg['blowfish_secret'] = 'qwerasdfzxcv1234!@#$qwer'; // 修改成你自己的随机字符串
-
$cfg['Servers'][$i]['auth_type']:认证方式,可以设置为:'config':直接在配置文件中写用户名和密码(不安全,仅用于测试)。'cookie':使用用户名和密码登录(推荐)。'http':使用 HTTP 认证。'host':允许你输入主机名进行连接。 我们推荐使用'cookie'。
-
$cfg['Servers'][$i]['host']:数据库主机,默认是'localhost',通常无需修改。 -
$cfg['Servers'][$i]['port']:数据库端口,默认是3306,如果数据库使用其他端口,请修改。 -
$cfg['Servers'][$i]['controluser']和$cfg['Servers'][$i]['controlpass']:这是推荐的最佳实践,创建一个专门用于 phpMyAdmin 连接的数据库用户,而不是使用root,具体步骤见下文的【安全加固】部分。
-
-
配置 Web 服务器 你需要告诉 Apache 如何处理这个新的目录。
- 对于 Apache,创建一个新的虚拟主机配置文件或修改默认配置。
在
/etc/apache2/sites-available/目录下创建一个新文件,pma.conf:<Directory /var/www/pma> Options FollowSymLinks DirectoryIndex index.php AllowOverride All Require all granted </Directory>然后启用这个配置:
sudo a2ensite pma.conf sudo a2enmod rewrite # 如果还没启用 sudo systemctl reload apache2
- 对于 Apache,创建一个新的虚拟主机配置文件或修改默认配置。
在
-
访问 phpMyAdmin 在浏览器中访问
http://你的服务器IP/pma。
【方法二:Windows - XAMPP/WAMP 环境】
如果你在 Windows 上使用 XAMPP 或 WAMP 这样的集成环境,安装非常简单。
-
下载 phpMyAdmin 从 phpMyAdmin 官方下载页面 下载最新版本的
.zip压缩包。 -
解压文件 将下载的
.zip文件解压到你的 XAMPP 安装目录下的htdocs文件夹中。C:\xampp\htdocs\。 为了方便,可以将解压后的文件夹重命名,pma。 -
重命名配置文件 进入
pma文件夹,找到config.sample.inc.php文件,将其重命名为config.inc.php。 -
编辑配置文件 用记事本或代码编辑器(如 VS Code)打开
config.inc.php。- 找到
$cfg['blowfish_secret'],将其值修改为一个随机的字符串。 - 确保
$cfg['Servers'][$i]['host']的值是'localhost'。
- 找到
-
访问 phpMyAdmin 启动 XAMPP Control Panel 中的 Apache 和 MySQL 服务,然后在浏览器中访问
http://localhost/pma。
【方法三:Docker - 最现代、最隔离的方式】
使用 Docker 可以完美隔离 phpMyAdmin 环境,非常适合开发和测试。
-
确保已安装 Docker 和 Docker Compose
-
创建
docker-compose.yml文件 在你的项目目录下,创建一个名为docker-compose.yml的文件,内容如下:version: '3.7' services: # MySQL/MariaDB 服务 db: image: mysql:8.0 restart: always environment: MYSQL_ROOT_PASSWORD: your_strong_root_password # 请务必修改 MYSQL_DATABASE: phpmyadmin MYSQL_USER: pma_user MYSQL_PASSWORD: your_strong_pma_password # 请务必修改 volumes: - db_data:/var/lib/mysql # phpMyAdmin 服务 pma: image: phpmyadmin/phpmyadmin restart: always depends_on: - db ports: - "8080:80" # 将主机的 8080 端口映射到容器的 80 端口 environment: PMA_HOST: db # 连接到 db 服务的名称 PMA_USER: pma_user # 上面创建的用户 PMA_PASSWORD: your_strong_pma_password # 上面设置的密码 PMA_ARBITRARY: 1 # 允许连接到任意 MySQL 服务器 volumes: db_data: -
启动服务 在
docker-compose.yml文件所在的目录下,运行以下命令:docker-compose up -d
-
访问 phpMyAdmin 等待几秒钟,让容器启动完成,然后在浏览器中访问
http://localhost:8080。 你可以使用root/your_strong_root_password或pma_user/your_strong_pma_password登录。
【安装后配置与安全加固】 - 非常重要!
默认安装的 phpMyAdmin 存在安全风险,请务必进行以下加固操作。
-
修改或禁用
root用户登录- 最佳实践:不要使用
root用户通过 phpMyAdmin 登录,创建一个专门的管理员用户,并授予其SELECT,INSERT,UPDATE,DELETE,CREATE,ALTER,DROP,INDEX等权限。 - 修改配置:在
config.inc.php中,你可以禁用root用户登录:$cfg['Servers'][$i]['AllowRoot'] = false; // 禁止 root 用户登录
- 最佳实践:不要使用
-
设置控制用户(推荐) 在 MySQL/MariaDB 中创建一个只用于 phpMyAdmin 连接的低权限用户。
-- 登录到 MySQL mysql -u root -p -- 创建数据库(如果手动安装时没有创建) CREATE DATABASE phpmyadmin; -- 创建用户 CREATE USER 'pma_user'@'localhost' IDENTIFIED BY '一个强密码'; -- 授予该用户对 phpmyadmin 数据库的所有权限 GRANT ALL PRIVILEGES ON phpmyadmin.* TO 'pma_user'@'localhost'; -- 刷新权限 FLUSH PRIVILEGES;
然后在
config.inc.php中配置这个用户:$cfg['Servers'][$i]['controluser'] = 'pma_user'; $cfg['Servers'][$i]['controlpass'] = '一个强密码';
-
限制访问 IP 地址 这是防止公网访问的最有效方法之一,只允许你的本地 IP 或办公网络 IP 访问。
- 在 Apache 中:修改
.htaccess文件(需要启用AllowOverride All)或在虚拟主机配置中添加:<Directory /var/www/pma> Order deny,allow Deny from all Allow from 127.0.0.1 Allow from 192.168.1.0/24 # 允许你的局域网 </Directory> - 在 Nginx 中:在 server 块中添加:
location /pma { allow 127.0.0.1; allow 192.168.1.0/24; deny all; }
- 在 Apache 中:修改
-
隐藏版本信息 在
config.inc.php中添加以下配置,防止攻击者获取你的 phpMyAdmin 版本信息。$cfg['VersionCheck'] = false;
-
使用
.htaccess密码保护(Apache) 即使设置了 IP 限制,也可以再加一层密码保护。sudo htpasswd -c /etc/apache2/.htpasswd 你的用户名
然后在 phpMyAdmin 目录下的
.htaccess文件中添加:AuthType Basic AuthName "Restricted Area" AuthUserFile /etc/apache2/.htpasswd Require valid-user
【常见问题与解决方案】
-
问题 1:登录后出现 "Cannot log in to the MySQL server" 错误。
- 原因:数据库连接信息错误(主机、端口、用户名、密码)。
- 解决:检查
config.inc.php中的$cfg['Servers'][$i]['host'],$cfg['Servers'][$i]['port']是否正确,确认你使用的用户名和密码是否正确,并且该用户有访问 phpMyAdmin 的权限。
-
问题 2:页面样式错乱,显示大量代码或 CSS 文件加载失败。
- 原因:PHP 的
mbstring扩展未安装,或 Web 服务器配置不正确(如 URL 重写)。 - 解决:确保已安装
php-mbstring扩展并重启 Web 服务器,如果是手动安装,检查 Apache 的rewrite模块是否已启用。
- 原因:PHP 的
-
问题 3:出现 "The $cfg['PmaAbsoluteUri'] directive MUST be set in your configuration file." 错误。
- 原因:phpMyAdmin 不知道它自己的 URL 是什么。
- 解决:在
config.inc.php中添加或修改$cfg['PmaAbsoluteUri'],设置为你的 phpMyAdmin 的完整访问地址。$cfg['PmaAbsoluteUri'] = 'http://localhost/pma/'; // 注意末尾的斜杠
-
问题 4:在 Docker 中无法连接到数据库。
- 原因:服务名或环境变量配置错误。
- 解决:检查
docker-compose.yml文件中pma服务的PMA_HOST是否与db服务的service name一致,检查PMA_USER和PMA_PASSWORD是否与 MySQL 服务中创建的用户信息完全匹配。
