树莓派Apache2环境下phpMyAdmin报500错误求助
解决树莓派Apache2环境下phpMyAdmin 500错误(__()函数未定义)
这个问题我之前帮不少树莓派用户解决过,核心原因很明确:__()是PHP gettext扩展提供的翻译函数,服务器找不到这个函数,直接触发了致命错误。给你几个一步步排查的方案,从简单到复杂:
第一步:检查并启用PHP的gettext扩展
这是最常见的诱因,树莓派默认往往没安装这个扩展:
- 先确认你的PHP版本:
php -v,比如输出是PHP 7.4.x - 安装对应版本的gettext扩展:
sudo apt-get install php7.4-gettext(把7.4替换成你的实际PHP版本) - 重启Apache让配置生效:
sudo systemctl restart apache2
第二步:验证phpMyAdmin的语言配置
如果扩展装了还是报错,可能是语言设置不兼容或者缺少语言包:
- 打开phpMyAdmin的配置文件:
sudo nano /etc/phpmyadmin/config.inc.php - 找到
$cfg['Lang']这一行,确保它设置的是系统支持的语言(比如中文设为$cfg['Lang'] = 'zh_CN';),如果注释掉则会自动检测浏览器语言 - 如果缺少对应语言包,安装官方语言包:
sudo apt-get install phpmyadmin-languages
第三步:修复文件权限问题
有时候Apache用户(www-data)没有读取phpMyAdmin文件的权限也会触发这类隐性错误:
- 设置正确的文件所有者:
sudo chown -R www-data:www-data /usr/share/phpmyadmin - 设置合理的文件权限:
sudo chmod -R 755 /usr/share/phpmyadmin
第四步:重新安装phpMyAdmin(终极方案)
如果上面的方法都无效,大概率是phpMyAdmin的核心文件损坏了:
- 先彻底卸载:
sudo apt-get purge phpmyadmin - 重新安装:
sudo apt-get install phpmyadmin,安装过程中记得选择Apache2作为Web服务器,并完成数据库连接配置
附你提供的错误日志:
[Sat May 05 15:54:22.843993 2018] [:error] [pid 23131] [client 37.138.229.55:50419] PHP Fatal error: Uncaught Error: Call to undefined function __() in /usr/share/phpmyadmin/libraries/core.lib.php:235
Stack trace:
#0 /usr/share/phpmyadmin/libraries/core.lib.php(308): PMA_fatalError('The [a@./url.ph...')
#1 /usr/share/phpmyadmin...
内容的提问来源于stack exchange,提问作者Cedric Tegenkamp
相关产品推荐
相关产品推荐

