Centos8 Nginx环境下phpMyAdmin出现空白页面的排查流程和解决方案Error getCookie()
2022-01-28
Centos8 Nginx环境下安装phpMyAdmin非常简单,到官网下载一个资源压缩包,然后解压到服务器下即可。
如果用cookie方式进行身份验证,需要配置$cfg[‘blowfish_secret’],按照要求填写32个字符。复制一份config.sample.inc.php,重命名config.inc.php。
/**
* This is needed for cookie based authentication to encrypt password in
* cookie. Needs to be 32 chars long.
*/
$cfg['blowfish_secret'] = ''; /* YOU MUST FILL IN THIS FOR COOKIE AUTH! */
使用phpMyAdmin出现的问题大多都不在它自身,而是服务器环境!比如缺少mysql扩展、不支持PHP等。
笔者遇到的问题是访问首页时出现空白页面,没有任何返回信息,查看网络请求,报错:nginx 500 internal server error。单独写一个php文件,phpinfo(),却能正常访问,很奇葩。
排查流程
- config.inc.php 全部重置,不要有额外操作。
- nginx error.log 查看错误日志 /var/log/nginx/error.log 。
- php index.php 用命令行方式调用,查看返回。
- php-fpm php 相关配置。
解决方案
按排查流程一一验证。
笔者遇到的问题出现在第3步:
[phpmyadmin]# php index.php
PHP Fatal error: Uncaught Error: Call to a member function getCookie() on null in /usr/share/phpmyadmin/libraries/classes/Url.php:219
Stack trace:
无法调用成员函数getCookie,原因是”PhpMyAdmin\Core::warnMissingExtension(‘json’, true)”,缺少一个json扩展。
安装php-json包:
$ sudo yum install php-json
参考资料
https://stackoverflow.com/questions/59931951/phpmyadmin-blank-page-getcookie-error-when-php-index-php?rq=1
(版权归cpury.com所有,转载请注明出处。)