【发布时间】:2020-05-12 21:02:38
【问题描述】:
访问 www.hostname/phpmyadmin/ 页面时,我得到空白页面。尝试重新安装 PHP、HTTPD 和 MYSQL。 在 phpmyadmin 文件夹中运行 php index.php 后,出现以下错误:
[root@ansible1 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:
#0 /usr/share/phpmyadmin/libraries/classes/Url.php(171): PhpMyAdmin\Url::getCommonRaw(Array, '?')
#1 /usr/share/phpmyadmin/libraries/classes/Core.php(762): PhpMyAdmin\Url::getCommon(Array)
#2 /usr/share/phpmyadmin/libraries/classes/Core.php(338): PhpMyAdmin\Core::linkURL('https://secure....')
#3 /usr/share/phpmyadmin/libraries/classes/Core.php(364): PhpMyAdmin\Core::getPHPDocLink('book.json.php')
#4 /usr/share/phpmyadmin/libraries/classes/Core.php(1006): PhpMyAdmin\Core::warnMissingExtension('json', true)
#5 /usr/share/phpmyadmin/libraries/common.inc.php(110): PhpMyAdmin\Core::checkExtensions()
#6 /usr/share/phpmyadmin/index.php(23): require_once('/usr/share/phpm...')
#7 {main}
thrown in /usr/share/phpmyadmin/libraries/classes/Url.php on line 219
在相应文件的第 219 行:
public static function getCommonRaw($params = [], $divider = '?')
{
/** @var Config $PMA_Config */
global $PMA_Config;
$separator = Url::getArgSeparator();
// avoid overwriting when creating navi panel links to servers
if (isset($GLOBALS['server'])
&& $GLOBALS['server'] != $GLOBALS['cfg']['ServerDefault']
&& ! isset($params['server'])
&& ! $PMA_Config->get('is_setup')
) {
$params['server'] = $GLOBALS['server'];
}
if (empty($PMA_Config->getCookie('pma_lang')) && ! empty($GLOBALS['lang'])) {
$params['lang'] = $GLOBALS['lang'];
}
$query = http_build_query($params, '', $separator);
if ($divider != '?' || strlen($query) > 0) {
return $divider . $query;
}
不知道我做错了什么,但还没有在互联网上发现这个错误.... 河豚秘诀已定:
$cfg['blowfish_secret'] = 'H2OxcGXxflSd8JwrwVlh6KW6s2rER63i';
知道我会错过什么吗?即使是提示看什么方向也将不胜感激。
编辑1:
降级到版本 4.9.4 - 出现类似错误:
所以在降级到版本 4.9.4 后,我得到了非常相似的......
[root@ansible1 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:217
Stack trace:
#0 /usr/share/phpmyadmin/libraries/classes/Url.php(169): PhpMyAdmin\Url::getCommonRaw(Array, '?')
#1 /usr/share/phpmyadmin/libraries/classes/Core.php(749): PhpMyAdmin\Url::getCommon(Array)
#2 /usr/share/phpmyadmin/libraries/classes/Core.php(330): PhpMyAdmin\Core::linkURL('https://secure....')
#3 /usr/share/phpmyadmin/libraries/classes/Core.php(353): PhpMyAdmin\Core::getPHPDocLink('book.json.php')
#4 /usr/share/phpmyadmin/libraries/classes/Core.php(987): PhpMyAdmin\Core::warnMissingExtension('json', true)
#5 /usr/share/phpmyadmin/libraries/common.inc.php(106): PhpMyAdmin\Core::checkExtensions()
#6 /usr/share/phpmyadmin/index.php(27): require_once('/usr/share/phpm...')
#7 {main}
thrown in /usr/share/phpmyadmin/libraries/classes/Url.php on line 217
页面现在显示:拒绝访问 - 简单地写了,没有图片或任何东西。
我错过了什么? :/
[浏览器查看1
【问题讨论】:
-
在您的
getCommonRaw()函数中找不到此getCookie('pma_lang') -
也许你忘了
include some file? -
您似乎使用的是旧版本的 phpmyadmin。您应该下载最新版本,看看是否可以修复它。
-
等等,我刚刚意识到你是从命令行运行的 (
[root@ansible1 phpmyadmin]# php index.php)。为什么? phpmyadmin 旨在从浏览器运行。 -
你应该检查你的 php 错误日志,看看它们是否提供了更多关于被拒绝访问的详细信息。这可能是文件权限问题,也可能是 mysql 用户/密码问题,或者可能是其他问题。此外,它可能无济于事,但只是为了好玩,我会尝试使用完整路径
phpmyadmin/index.php而不是仅仅指向phpmyadmin/目录。
标签: php phpmyadmin