树莓派 apt install phpMyAdmin 失败是因依赖 php-mysql(已废弃),应改用 php-mysqlnd 并手动部署:下载官方 tar.gz、配置 config.inc.php、启用 mysqli 扩展、调整 Apache 权限与配置,优先选用 phpMyAdmin 5.2+ ARM 兼容版。
树莓派装 phpMyAdmin 为什么直接 apt install 不行
因为树莓派(arm 架构)的官方源里 phpmyadmin 包默认依赖 php-mysql,而较新版本的 debian/ubuntu(如 raspberry pi os bookworm)已废弃该扩展,改用 php-mysqlnd —— 但旧版 phpmyadmin 的控制脚本没适配,安装时会卡在数据库配置环节,报错:dbconfig-common: unable to install phpmyadmin。
这不是权限或网络问题,是包依赖链断裂。绕过它的核心思路是:不走 dbconfig-common 自动配置,手动部署 + 手动配置数据库连接。
- 先装好
apache2、php(≥8.1)、php-mysqlnd、php-gd、php-mbstring - 用
wget下载官方 .tar.gz 包(别用 GitHub release,有些带 build artifacts,体积大且含冗余文件) - 解压到
/var/www/html/phpmyadmin,确保www-data有读取权限 - 复制
config.sample.inc.php为config.inc.php,重点改三处:$cfg['Servers'][$i]['host'] = 'localhost';、$cfg['Servers'][$i]['auth_type'] = 'cookie';、$cfg['blowfish_secret']必须设为 32 字符随机字符串(可用openssl rand -base64 24生成)
phpMyAdmin 登录报 “mysqli extension is missing”
这说明 PHP 没加载 MySQL 驱动,不是 phpMyAdmin 本身的问题。ARM 上常见两个坑:
-
php-mysqlnd装了但没启用:检查/etc/php/*/apache2/conf.d/下是否有20-mysqli.ini或类似文件,内容是否为extension=mysqli;若没有,手动加一个 - PHP 版本多共存时(比如同时装了 php8.1 和 php8.2),Apache 默认用的是哪个?运行
a2query -m php和php -v对比版本,再确认对应目录下的conf.d是否生效(例如用了 php8.2,就得去/etc/php/8.2/apache2/conf.d/下配) - 重启服务顺序必须是:
sudo systemctl restart apache2,不能只 reload;否则 PHP 模块不会重载
访问 /phpmyadmin 显示 403 Forbidden 或空白页
这是权限和 Apache 配置双因素问题。ARM 系统默认严格限制符号链接和目录遍历,而 phpMyAdmin 的 libraries 和 vendor 目录常含软链或需 .htaccess 支持。
- 确认
/var/www/html/phpmyadmin所属用户组是www-data:www-data,且至少有755目录权限、644文件权限 - 编辑
/etc/apache2/sites-available/000-default.conf,在<directory></directory>块内加入:AllowOverride All和Require all granted(Bookworm 后默认用Require语法,别写Order allow,deny) - 如果用了
sudo apt install phpmyadmin半途失败,残留的/etc/phpmyadmin配置可能干扰手动部署,建议删掉:sudo rm -rf /etc/phpmyadmin
登录后操作慢、导出卡住、或提示 “The mcrypt extension is not available”
mcrypt 在 PHP 7.2+ 已彻底移除,但旧版 phpMyAdmin(≤4.9.x)某些加密功能仍硬依赖它。ARM 设备资源有限,这类问题更明显。
- 优先升级到 phpMyAdmin 5.2.x 或更高(官网下载页明确标 ARM 兼容),它用
sodium替代 mcrypt,且默认关闭非必要功能(如实时服务器监控) - 在
config.inc.php中禁用耗资源项:$cfg['EnableBLOBUpload'] = false;、$cfg['Servers'][$i]['DisableIS'] = true;、$cfg['MaxRows'] = 500; - 导出大表时别选 “自动生成 SQL”,改用 “CSV” 或 “JSON”,并勾选 “仅数据”,避免生成大量
INSERT语句拖垮内存
真正麻烦的不是安装步骤,而是 phpMyAdmin 的配置文件里那些带下划线的变量名——比如 $cfg['Servers'][$i]['verbose'] 和 $cfg['Servers'][$i]['auth_type'],少一个单引号或拼错字母,页面就静默失败,连错误日志都不打。调试时记得开 error_log = /var/log/php_errors.log 并在 php.ini 里设 display_errors = On(上线前关掉)。
php免费学习视频:立即使用
踏上前端学习之旅,开启通往精通之路!从前端基础到项目实战,循序渐进,一步一个脚印,迈向巅峰!











