LNMP环境下phpMyAdmin空白页主因是PHP运行时静默终止:mysqli扩展未在FPM的php.ini中启用、memory_limit被phpMyAdmin二次设低(需在config.inc.php顶部用ini_set提升并避开php_admin_value覆盖)、output_buffering关闭或ob函数被禁用;务必开启错误日志定位真实报错。

LNMP环境下phpMyAdmin显示空白页面,**基本可以断定不是网络或权限问题,而是PHP运行时在关键环节静默终止——最常见的是mysqli扩展未加载、memory_limit耗尽,或output_buffering被禁用导致响应中断。**
mysqli扩展根本没在Web SAPI中加载
命令行php -m | grep mysqli有输出 ≠ Web环境能用。LNMP里Nginx用PHP-FPM,它加载的是独立的php.ini(通常在/etc/php/{ver}/fpm/php.ini),和CLI的配置完全隔离。
- 先访问
phpinfo()页面,搜Loaded Configuration File确认FPM实际读的是哪个php.ini - 检查该文件里
extension=mysqli是否已取消注释;若用php-mysqlnd包,还要确保mysqlnd本身没被禁用 - Linux下装错包很常见:比如PHP 8.1应装
php8.1-mysqli,而不是过时的php-mysql - Docker用户必须在构建阶段执行
docker-php-ext-install mysqli gettext,只装mysqli会导致Designer模块因缺gettext崩溃
memory_limit被phpMyAdmin自身逻辑二次覆盖
LNMP默认的memory_limit=128M对phpMyAdmin Designer这种要一次性读取全部表结构、外键、索引的模块远远不够。更麻烦的是,phpMyAdmin从4.9起会在启动时主动调用ini_set('memory_limit', '512M')——这个值可能比你php.ini里设的还低。
- 查
phpmyadmin/libraries/classes/Util.php或vendor_config.php,搜索memory_limit确认它设了多少 - 在
config.inc.php最顶部加ini_set('memory_limit', '1024M');,且必须放在require任何phpMyAdmin核心文件之前 - 别忘了PHP-FPM池配置(如
www.conf)里的php_admin_value[memory_limit],它会强制覆盖所有ini_set和php.ini设置
output_buffering关闭或ob_gzhandler冲突
空白页但源码能看到HTML开头?说明PHP执行到一半就停了,常是output_buffering被关掉后,大响应直接冲垮连接,或者ob_gzhandler被禁用但phpMyAdmin仍尝试启用压缩。
立即学习“PHP免费学习笔记(深入)”;
- 在
php.ini中确认output_buffering = 4096(即4MB)或On,不要设Off - 检查
disable_functions是否列了ob_start,ob_end_flush,ob_gzhandler——LNMP一键包有时会默认禁用这些 - 若确定不需要GZIP压缩,在
config.inc.php里显式写$cfg['OBGzip'] = false;
LNMP部署里最容易被忽略的一点:PHP-FPM池配置和phpMyAdmin源码里的ini_set会形成双重覆盖,而错误日志默认常被关掉。白屏时第一件事不是改代码,是打开php.ini里的log_errors = On和error_log = /var/log/php_errors.log,再刷新页面看真实报错——绝大多数情况,日志第一行就写着Allowed memory size exhausted或Call to undefined function mysqli_connect()。



















