Centos8 Nginx环境下phpMyAdmin出现空白页面的排查流程和解决方案Error getCookie()

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(),却能正常访问,很奇葩。

排查流程

  1. config.inc.php 全部重置,不要有额外操作。
  2. nginx error.log 查看错误日志 /var/log/nginx/error.log 。
  3. php index.php 用命令行方式调用,查看返回。
  4. 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所有,转载请注明出处。)