phpMyAdmin报错及最终解决方案

问题
近日,服务器上的 phpMyAdmin 突然出现持续报错。起初未予处理,但随着陆续有用户反馈网站访问异常,决定对服务器环境进行一次彻底排查。
秉承“重装能解决大部分问题”的思路,我首先尝试重装了phpMyAdmin和PHP服务。当时的 PHP 版本为7.4,phpMyAdmin版本为5.1,但重装后问题依旧。随后,我升级了环境,将PHP切换至8.1并搭配 phpMyAdmin 5.2,刷新后发现错误仍然存在。
我使用的是宝塔面板,运行在Nginx之上。在宝塔的默认环境中,PHP-FPM进程通常以www 用户身份运行,这可能是问题的关键。于是,我通过以下命令检查了PHP8.1的session保存路径:
cat /www/server/php/81/etc/php.ini | grep session.save_path
确认其session目录位于/www/tmp 。接着,我排查了该目录,发现其中生成的文件权限存在异常,显示为000 ,且所有者为www 。
问题定位后,修复便清晰了。我通过终端执行了以下命令来修正目录的所有权与权限:
sudo chown -R www:www /www/tmp
sudo chmod 755 /www/tmp
完成修改后,依次重启了相关服务以应用更改:
# 重启PHP-FPM 8.1
sudo systemctl restart php-fpm-81
# 重启Nginx
sudo systemctl restart nginx
最后,通过ls -ld /www/tmp 命令确认目录权限已正确更新为drwxr-xr-x ,所有者为www:www 。
再次刷新phpMyAdmin页面,久违的登录界面终于正常显示,尝试登录及后续操作均无误,问题得以圆满解决。
总结
本次 phpMyAdmin 的异常报错,根源在于其使用的 session 目录 (/www/tmp ) 权限设置不当,导致 PHP-FPM 进程无法正常读写 session 文件。在类似环境下遇到 persistent 的登录或 session 相关错误时,不妨优先检查session.save_path 所配置目录的所有权(是否属于 PHP-FPM 运行用户)及其读写权限。

