ubuntu 22.04 安装 phpmyadmin 后 404 是因 apache 未启用 alias 模块且未执行 a2enconf phpmyadmin;“mysqli 扩展缺失”需安装 php-mysqlnd 并重启 apache;登录失败主因是 mysql 默认 caching_sha2_password 插件不兼容,应创建 mysql_native_password 认证的专用用户。

直接装 phpmyadmin 包即可,Ubuntu 22.04 官方源自带的正是 5.2.x 版本(如 5.2.1+dfsg-1),无需手动下载或降级。
安装时 Apache 模块未启用导致访问 /phpmyadmin 404
这是最常卡住的第一步。Ubuntu 的 Apache 默认不启用 alias 模块,而 phpMyAdmin 依赖它把 /phpmyadmin 路径映射到实际文件位置。
- 运行
a2query -m alias,若无输出或显示alias (disabled),说明没启用 - 立即执行
a2enmod alias,再运行systemctl restart apache2 - 别跳过
a2enconf phpmyadmin—— 这步会生成/etc/apache2/conf-enabled/phpmyadmin.conf,里面含关键的Alias /phpmyadmin行 - 验证配置是否加载:
apache2ctl -t -D DUMP_INCLUDES | grep phpmyadmin,应有输出
登录页报 “The mysqli extension is missing”
这不是 phpMyAdmin 配置错,是 PHP 根本没加载 MySQLi 驱动。Ubuntu 22.04+ 已弃用 php-mysql,必须装 php-mysqlnd。
- 查当前 PHP 版本:
php -v(通常为 8.1 或 8.2) - 查已加载扩展:
php -m | grep -i mysql,若无mysqli或mysqlnd输出,就缺扩展 - 安装驱动:
sudo apt install php-mysqlnd - 必须重启 Apache:
sudo systemctl restart apache2(PHP-FPM 重启无效,Apache 加载的是自己的 PHP 模块) - 快速验证:
php -r "new mysqli('localhost', 'root', ''); echo 'OK';",不报错即生效
MySQL 用户登录失败:caching_sha2_password 不兼容
Ubuntu 22.04 默认 MariaDB/MySQL 使用 caching_sha2_password 插件,但 phpMyAdmin 5.2(尤其搭配旧 PHP)仍倾向用 mysql_native_password 认证。
- 不要用
root直连 —— 默认禁用密码登录,且插件不匹配 - 进 MariaDB:
sudo mariadb,执行: CREATE USER 'pmauser'@'localhost' IDENTIFIED WITH mysql_native_password BY 'your_strong_pass';GRANT ALL PRIVILEGES ON *.* TO 'pmauser'@'localhost';FLUSH PRIVILEGES;- 该用户密码需在
/etc/phpmyadmin/config.inc.php中对应填入($cfg['Servers'][$i]['password'])
nginx 环境下无法直接复用 apt 安装的 phpMyAdmin 配置
如果你用的是 nginx 而非 Apache,apt install phpmyadmin 时选了 apache2 会导致配置被忽略;即使选了 none,默认也不生成 nginx 兼容的 location 块。
- 确认你真在用 nginx:
systemctl is-active nginx - phpMyAdmin 文件实际路径是
/usr/share/phpmyadmin,需手动在 nginx server 块中加: location /phpmyadmin { alias /usr/share/phpmyadmin/; index index.php; }- 并确保
location ~ \.php$能正确转发到php-fpm(常见漏配点:fastcgi_param SCRIPT_FILENAME $request_filename;必须用$request_filename,不能写死路径) - 改完后
nginx -t && systemctl reload nginx
真正容易被忽略的是:Apache 下装完必须跑 a2enconf phpmyadmin,不是只 a2enmod alias 就够;nginx 下则根本没人帮你写路由规则——所有路径映射、PHP 解析、权限控制都得自己手写,错一个字符就 404 或 502。
php免费学习视频:立即使用
踏上前端学习之旅,开启通往精通之路!从前端基础到项目实战,循序渐进,一步一个脚印,迈向巅峰!











