phpmyadmin 404 根因是 apache 未启用 alias 模块且未执行 a2enconf phpmyadmin;mysqli 缺失需装 php-mysqlnd 并重启 apache;登录失败多因 mysql 认证插件不兼容,应创建 mysql_native_password 用户。
访问 phpmyadmin 时返回 404
根本原因不是没装,而是 apache 没加载 alias 模块,也没启用 phpmyadmin 的配置文件。ubuntu 24.04 的 apache 默认不启用 alias,而 phpmyadmin 靠它把 /phpmyadmin 映射到实际路径。
- 先检查模块是否启用:
a2query -m alias,输出alias (enabled)才对 - 没启用就运行:
a2enmod alias,再systemctl restart apache2 - 必须执行:
a2enconf phpmyadmin(不是a2enconf phpmyadmin.conf),这步会软链/etc/apache2/conf-available/phpmyadmin.conf到conf-enabled/目录 - 验证配置是否加载:
apache2ctl -t -D DUMP_INCLUDES | grep phpmyadmin,应看到该 conf 文件路径
登录页报 “The mysqli extension is missing”
这不是 phpMyAdmin 配置问题,是 PHP 缺 MySQLi 支持。Ubuntu 24.04 中 php-mysql 已废弃,必须用 php-mysqlnd。
- 查当前 PHP 版本:
php -v(通常是 8.3) - 查已启用扩展:
php -m | grep -i mysql,若无mysqli或mysqlnd输出,说明缺失 - 安装扩展:
apt install php-mysqlnd - 装完必须重启 Apache:
systemctl restart apache2(PHP-FPM 不影响 Apache 加载模块) - 快速验证:
php -r "new mysqli('localhost', 'root', ''); echo 'OK';",无报错即生效
能打开登录页但输密码后跳回登录页或报认证失败
MySQL 默认用 caching_sha2_password 插件,而 phpMyAdmin(尤其 apt 安装的稳定版)只支持 mysql_native_password。直接用 root 登录基本会失败。
- 别改 root 用户插件——系统服务可能依赖原插件
- 建专用用户并指定认证方式:
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]['auth_type'] = 'cookie';$cfg['Servers'][$i]['host'] = 'localhost';$cfg['Servers'][$i]['user'] = 'pmauser';$cfg['Servers'][$i]['password'] = 'your_strong_pass'; - 如果不想明文存密码,就保持
auth_type = 'cookie',登录时手动输,更安全
页面空白、报 mbstring 或 gettext 缺失
Ubuntu 24.04 的 phpMyAdmin 依赖 php-mbstring 和 php-gettext,缺一不可。少一个就白屏或提示找不到 gettext.inc。
- 一次性装全:
apt install php-mbstring php-gettext php-zip php-gd php-json - 装完同样要重启 Apache:
systemctl restart apache2 - 验证 mbstring 是否加载:
php -m | grep mbstring;gettext 不会单独列在php -m里,但装了php-gettext包后一般就正常 - 如果仍报错,检查
/usr/share/php/php-gettext/是否存在,不存在说明包没装成功,重试安装
所有步骤里最容易被跳过的是 a2enconf phpmyadmin 和 systemctl restart apache2 —— 每次改完配置或装完扩展,Apache 不重启,改动就不生效。
php免费学习视频:立即使用
踏上前端学习之旅,开启通往精通之路!从前端基础到项目实战,循序渐进,一步一个脚印,迈向巅峰!











