1 (изменено: SRDB, 2022-01-04 21:14:42)

Тема: Ошибки после конфигурирования phpmyadmin 5.1.1+PHP8 (решено!)

(Решено!)
Здравствуйте, уважаемые форумчане. Пользуясь случаем поздравляю всех с наступившим Новым 2022 Годом.
История такова: Выполнял установку по инструкции авторитетного ресурса. Успешно установил сервер Apache, PHP, MySQL, и приступил к установке phpmyadmin (phpMyAdmin-5.1.1-all-languages).

  • Закинул всё, что нужно-куда нужно, создал config.inc.php:

<?php
 
/* Servers configuration */
$i = 0;
 
/* Server: localhost [1] */
$i++;
$cfg['Servers'][$i]['verbose'] = '';
$cfg['Servers'][$i]['host'] = 'localhost';
$cfg['Servers'][$i]['port'] = '';
$cfg['Servers'][$i]['socket'] = '';
$cfg['Servers'][$i]['connect_type'] = 'tcp';
$cfg['Servers'][$i]['auth_type'] = 'cookie';
$cfg['Servers'][$i]['user'] = 'root';
$cfg['Servers'][$i]['password'] = '';
$cfg['Servers'][$i]['nopassword'] = true;
$cfg['Servers'][$i]['AllowNoPassword'] = true;
 
/* End of servers configuration */
 
$cfg['blowfish_secret'] = 'kjLGJ8g;Hj3mlHy+Gd~FE3mN{gIATs^1lX+T=KVYv{ubK*U0V';
$cfg['DefaultLang'] = 'ru';
$cfg['ServerDefault'] = 1;
$cfg['UploadDir'] = '';
$cfg['SaveDir'] = '';
 
?>

Судя по заверениям многих ресурсов (в т.ч. и "примерного") всё проходит без ошибок в панели управления phpmyadmin.

Заходя в панель управления, она сразу осыпает меня мишурой всяческих предупреждений, как из хлопушки:

Deprecation Notice in .\vendor\twig\twig\src\Loader\FilesystemLoader.php#40
 realpath(): Passing null to parameter #1 ($path) of type string is deprecated

Backtrace

FilesystemLoader.php#40: realpath(NULL)
Template.php#57: Twig\Loader\FilesystemLoader->__construct(string 'C:\\Server\\data\\htdocs\\phpmyadmin\\\\templates\\')
Theme.php#101: PhpMyAdmin\Template->__construct()
Theme.php#174: PhpMyAdmin\Theme->__construct()
ThemeManager.php#307: PhpMyAdmin\Theme::load(
string './themes/metro',
string 'C:\\Server\\data\\htdocs\\phpmyadmin\\./themes/metro/',
)
ThemeManager.php#79: PhpMyAdmin\ThemeManager->loadThemes()
ThemeManager.php#121: PhpMyAdmin\ThemeManager->__construct()
ThemeManager.php#385: PhpMyAdmin\ThemeManager::getInstance()
common.inc.php#240: PhpMyAdmin\ThemeManager::initializeTheme()
index.php#15: require_once(.\libraries\common.inc.php)
=================================================================================
Deprecation Notice in .\vendor\twig\twig\src\Markup.php#35
 Return type of Twig\Markup::count() should either be compatible with Countable::count(): int, or the #[\ReturnTypeWillChange] attribute should be used to temporarily suppress the notice

Backtrace

ClassLoader.php#444: include(.\vendor\twig\twig\src\Markup.php)
ClassLoader.php#322: Composer\Autoload\includeFile(string 'C:\\Server\\data\\htdocs\\phpmyadmin\\vendor\\composer/../twig/twig/src/Markup.php')
46f1bfbf4328d3d22fddffb9178fdeb9868d0740e4cc8b5bbd6f2fcfb8e4523e.php#59: Composer\Autoload\ClassLoader->loadClass(string 'Twig\\Markup')
Template.php#405: __TwigTemplate_034511bee5325c368ee003e3d97d6cb47c3e1c94ebb527bcf0b76ba7818d1ac6->doDisplay(
array,
array,
)
Template.php#378: Twig\Template->displayWithErrorHandling(
array,
array,
)
Template.php#390: Twig\Template->display(array)
TemplateWrapper.php#45: Twig\Template->render(
array,
array,
)
Template.php#132: Twig\TemplateWrapper->render(array)
Header.php#714: PhpMyAdmin\Template->render(
string 'javascript/variables',
array,
)
Header.php#193: PhpMyAdmin\Header->getVariablesForJavaScript()
Header.php#142: PhpMyAdmin\Header->addDefaultScripts()
Response.php#184: PhpMyAdmin\Header->__construct()
Response.php#215: PhpMyAdmin\Response->__construct()
common.inc.php#296: PhpMyAdmin\Response::getInstance()
index.php#15: require_once(.\libraries\common.inc.php)
=================================================================================
Deprecation Notice in .\vendor\twig\twig\src\Markup.php#40
 Return type of Twig\Markup::jsonSerialize() should either be compatible with JsonSerializable::jsonSerialize(): mixed, or the #[\ReturnTypeWillChange] attribute should be used to temporarily suppress the notice

Backtrace

ClassLoader.php#444: include(.\vendor\twig\twig\src\Markup.php)
ClassLoader.php#322: Composer\Autoload\includeFile(string 'C:\\Server\\data\\htdocs\\phpmyadmin\\vendor\\composer/../twig/twig/src/Markup.php')
46f1bfbf4328d3d22fddffb9178fdeb9868d0740e4cc8b5bbd6f2fcfb8e4523e.php#59: Composer\Autoload\ClassLoader->loadClass(string 'Twig\\Markup')
Template.php#405: __TwigTemplate_034511bee5325c368ee003e3d97d6cb47c3e1c94ebb527bcf0b76ba7818d1ac6->doDisplay(
array,
array,
)
Template.php#378: Twig\Template->displayWithErrorHandling(
array,
array,
)
Template.php#390: Twig\Template->display(array)
TemplateWrapper.php#45: Twig\Template->render(
array,
array,
)
Template.php#132: Twig\TemplateWrapper->render(array)
Header.php#714: PhpMyAdmin\Template->render(
string 'javascript/variables',
array,
)
Header.php#193: PhpMyAdmin\Header->getVariablesForJavaScript()
Header.php#142: PhpMyAdmin\Header->addDefaultScripts()
Response.php#184: PhpMyAdmin\Header->__construct()
Response.php#215: PhpMyAdmin\Response->__construct()
common.inc.php#296: PhpMyAdmin\Response::getInstance()
index.php#15: require_once(.\libraries\common.inc.php)
=================================================================================
Deprecation Notice in .\vendor\phpmyadmin\sql-parser\src\TokensList.php#184
 Return type of PhpMyAdmin\SqlParser\TokensList::offsetExists($offset) should either be compatible with ArrayAccess::offsetExists(mixed $offset): bool, or the #[\ReturnTypeWillChange] attribute should be used to temporarily suppress the notice

Backtrace

ClassLoader.php#444: include(.\vendor\phpmyadmin\sql-parser\src\TokensList.php)
ClassLoader.php#322: Composer\Autoload\includeFile(string 'C:\\Server\\data\\htdocs\\phpmyadmin\\vendor\\composer/../phpmyadmin/sql-parser/src/TokensList.php')
Lexer.php#220: Composer\Autoload\ClassLoader->loadClass(string 'PhpMyAdmin\\SqlParser\\TokensList')
Lexer.php#192: PhpMyAdmin\SqlParser\Lexer->lex()
Parser.php#364: PhpMyAdmin\SqlParser\Lexer->__construct(
string 'SELECT 1 FROM mysql.user LIMIT 1; ',
boolean false,
)
Tracker.php#717: PhpMyAdmin\SqlParser\Parser->__construct(string 'SELECT 1 FROM mysql.user LIMIT 1; ')
Tracker.php#861: PhpMyAdmin\Tracker::parseQuery(string 'SELECT 1 FROM mysql.user LIMIT 1; ')
DatabaseInterface.php#256: PhpMyAdmin\Tracker::handleQuery(string 'SELECT 1 FROM mysql.user LIMIT 1; ')
DatabaseInterface.php#1773: PhpMyAdmin\DatabaseInterface->tryQuery(
string 'SELECT 1 FROM mysql.user LIMIT 1',
integer 256,
integer 1,
)
HomeController.php#79: PhpMyAdmin\DatabaseInterface->isSuperUser()
Routing.php#187: PhpMyAdmin\Controllers\HomeController->index(array)
index.php#18: PhpMyAdmin\Routing::callControllerForRoute(
string '/',
,
,
)
=================================================================================
Deprecation Notice in .\vendor\phpmyadmin\sql-parser\src\TokensList.php#172
 Return type of PhpMyAdmin\SqlParser\TokensList::offsetGet($offset) should either be compatible with ArrayAccess::offsetGet(mixed $offset): mixed, or the #[\ReturnTypeWillChange] attribute should be used to temporarily suppress the notice

Backtrace

ClassLoader.php#444: include(.\vendor\phpmyadmin\sql-parser\src\TokensList.php)
ClassLoader.php#322: Composer\Autoload\includeFile(string 'C:\\Server\\data\\htdocs\\phpmyadmin\\vendor\\composer/../phpmyadmin/sql-parser/src/TokensList.php')
Lexer.php#220: Composer\Autoload\ClassLoader->loadClass(string 'PhpMyAdmin\\SqlParser\\TokensList')
Lexer.php#192: PhpMyAdmin\SqlParser\Lexer->lex()
Parser.php#364: PhpMyAdmin\SqlParser\Lexer->__construct(
string 'SELECT 1 FROM mysql.user LIMIT 1; ',
boolean false,
)
Tracker.php#717: PhpMyAdmin\SqlParser\Parser->__construct(string 'SELECT 1 FROM mysql.user LIMIT 1; ')
Tracker.php#861: PhpMyAdmin\Tracker::parseQuery(string 'SELECT 1 FROM mysql.user LIMIT 1; ')
DatabaseInterface.php#256: PhpMyAdmin\Tracker::handleQuery(string 'SELECT 1 FROM mysql.user LIMIT 1; ')
DatabaseInterface.php#1773: PhpMyAdmin\DatabaseInterface->tryQuery(
string 'SELECT 1 FROM mysql.user LIMIT 1',
integer 256,
integer 1,
)
HomeController.php#79: PhpMyAdmin\DatabaseInterface->isSuperUser()
Routing.php#187: PhpMyAdmin\Controllers\HomeController->index(array)
index.php#18: PhpMyAdmin\Routing::callControllerForRoute(
string '/',
,
,
)
=================================================================================
Deprecation Notice in .\vendor\phpmyadmin\sql-parser\src\TokensList.php#156
 Return type of PhpMyAdmin\SqlParser\TokensList::offsetSet($offset, $value) should either be compatible with ArrayAccess::offsetSet(mixed $offset, mixed $value): void, or the #[\ReturnTypeWillChange] attribute should be used to temporarily suppress the notice

Backtrace

ClassLoader.php#444: include(.\vendor\phpmyadmin\sql-parser\src\TokensList.php)
ClassLoader.php#322: Composer\Autoload\includeFile(string 'C:\\Server\\data\\htdocs\\phpmyadmin\\vendor\\composer/../phpmyadmin/sql-parser/src/TokensList.php')
Lexer.php#220: Composer\Autoload\ClassLoader->loadClass(string 'PhpMyAdmin\\SqlParser\\TokensList')
Lexer.php#192: PhpMyAdmin\SqlParser\Lexer->lex()
Parser.php#364: PhpMyAdmin\SqlParser\Lexer->__construct(
string 'SELECT 1 FROM mysql.user LIMIT 1; ',
boolean false,
)
Tracker.php#717: PhpMyAdmin\SqlParser\Parser->__construct(string 'SELECT 1 FROM mysql.user LIMIT 1; ')
Tracker.php#861: PhpMyAdmin\Tracker::parseQuery(string 'SELECT 1 FROM mysql.user LIMIT 1; ')
DatabaseInterface.php#256: PhpMyAdmin\Tracker::handleQuery(string 'SELECT 1 FROM mysql.user LIMIT 1; ')
DatabaseInterface.php#1773: PhpMyAdmin\DatabaseInterface->tryQuery(
string 'SELECT 1 FROM mysql.user LIMIT 1',
integer 256,
integer 1,
)
HomeController.php#79: PhpMyAdmin\DatabaseInterface->isSuperUser()
Routing.php#187: PhpMyAdmin\Controllers\HomeController->index(array)
index.php#18: PhpMyAdmin\Routing::callControllerForRoute(
string '/',
,
,
)
=================================================================================
Deprecation Notice in .\vendor\phpmyadmin\sql-parser\src\TokensList.php#194
 Return type of PhpMyAdmin\SqlParser\TokensList::offsetUnset($offset) should either be compatible with ArrayAccess::offsetUnset(mixed $offset): void, or the #[\ReturnTypeWillChange] attribute should be used to temporarily suppress the notice

Backtrace

ClassLoader.php#444: include(.\vendor\phpmyadmin\sql-parser\src\TokensList.php)
ClassLoader.php#322: Composer\Autoload\includeFile(string 'C:\\Server\\data\\htdocs\\phpmyadmin\\vendor\\composer/../phpmyadmin/sql-parser/src/TokensList.php')
Lexer.php#220: Composer\Autoload\ClassLoader->loadClass(string 'PhpMyAdmin\\SqlParser\\TokensList')
Lexer.php#192: PhpMyAdmin\SqlParser\Lexer->lex()
Parser.php#364: PhpMyAdmin\SqlParser\Lexer->__construct(
string 'SELECT 1 FROM mysql.user LIMIT 1; ',
boolean false,
)
Tracker.php#717: PhpMyAdmin\SqlParser\Parser->__construct(string 'SELECT 1 FROM mysql.user LIMIT 1; ')
Tracker.php#861: PhpMyAdmin\Tracker::parseQuery(string 'SELECT 1 FROM mysql.user LIMIT 1; ')
DatabaseInterface.php#256: PhpMyAdmin\Tracker::handleQuery(string 'SELECT 1 FROM mysql.user LIMIT 1; ')
DatabaseInterface.php#1773: PhpMyAdmin\DatabaseInterface->tryQuery(
string 'SELECT 1 FROM mysql.user LIMIT 1',
integer 256,
integer 1,
)
HomeController.php#79: PhpMyAdmin\DatabaseInterface->isSuperUser()
Routing.php#187: PhpMyAdmin\Controllers\HomeController->index(array)
index.php#18: PhpMyAdmin\Routing::callControllerForRoute(
string '/',
,
,
)
=================================================================================
Deprecation Notice in .\vendor\twig\twig\src\Node\Node.php#161
 Return type of Twig\Node\Node::count() should either be compatible with Countable::count(): int, or the #[\ReturnTypeWillChange] attribute should be used to temporarily suppress the notice

Backtrace

ClassLoader.php#444: include(.\vendor\twig\twig\src\Node\Node.php)
ClassLoader.php#322: Composer\Autoload\includeFile(string 'C:\\Server\\data\\htdocs\\phpmyadmin\\vendor\\composer/../twig/twig/src/Node/Node.php')
Composer\Autoload\ClassLoader->loadClass(string 'Twig\\Node\\Node')
TwigFilter.php#150: class_exists(string 'Twig\\Node\\Node')
ClassLoader.php#444: include(.\vendor\twig\twig\src\TwigFilter.php)
ClassLoader.php#322: Composer\Autoload\includeFile(string 'C:\\Server\\data\\htdocs\\phpmyadmin\\vendor\\composer/../twig/twig/src/TwigFilter.php')
CoreExtension.php#214: Composer\Autoload\ClassLoader->loadClass(string 'Twig\\TwigFilter')
ExtensionSet.php#433: Twig\Extension\CoreExtension->getFilters()
ExtensionSet.php#423: Twig\ExtensionSet->initExtension()
ExtensionSet.php#397: Twig\ExtensionSet->initExtensions()
Environment.php#966: Twig\ExtensionSet->getUnaryOperators()
Lexer.php#459: Twig\Environment->getUnaryOperators()
Lexer.php#110: Twig\Lexer->getOperatorRegex()
Environment.php#539: Twig\Lexer->__construct()
Environment.php#595: Twig\Environment->tokenize()
Environment.php#408: Twig\Environment->compileSource()
Environment.php#381: Twig\Environment->loadClass(
string '__TwigTemplate_e5eede12e45c1aad02a2d26a1f8fc775ccf9bc81126150d87303842d4ed7e41f',
string 'home/index.twig',
NULL,
)
Environment.php#359: Twig\Environment->loadTemplate(string 'home/index.twig')
Template.php#99: Twig\Environment->load(string 'home/index.twig')
Template.php#132: PhpMyAdmin\Template->load(string 'home/index')
AbstractController.php#36: PhpMyAdmin\Template->render(
string 'home/index',
array,
)
HomeController.php#246: PhpMyAdmin\Controllers\AbstractController->render(
string 'home/index',
array,
)
Routing.php#187: PhpMyAdmin\Controllers\HomeController->index(array)
index.php#18: PhpMyAdmin\Routing::callControllerForRoute(
string '/',
,
,
)
=================================================================================
Deprecation Notice in .\vendor\twig\twig\src\Node\Node.php#166
 Return type of Twig\Node\Node::getIterator() should either be compatible with IteratorAggregate::getIterator(): Traversable, or the #[\ReturnTypeWillChange] attribute should be used to temporarily suppress the notice

Backtrace

ClassLoader.php#444: include(.\vendor\twig\twig\src\Node\Node.php)
ClassLoader.php#322: Composer\Autoload\includeFile(string 'C:\\Server\\data\\htdocs\\phpmyadmin\\vendor\\composer/../twig/twig/src/Node/Node.php')
Composer\Autoload\ClassLoader->loadClass(string 'Twig\\Node\\Node')
TwigFilter.php#150: class_exists(string 'Twig\\Node\\Node')
ClassLoader.php#444: include(.\vendor\twig\twig\src\TwigFilter.php)
ClassLoader.php#322: Composer\Autoload\includeFile(string 'C:\\Server\\data\\htdocs\\phpmyadmin\\vendor\\composer/../twig/twig/src/TwigFilter.php')
CoreExtension.php#214: Composer\Autoload\ClassLoader->loadClass(string 'Twig\\TwigFilter')
ExtensionSet.php#433: Twig\Extension\CoreExtension->getFilters()
ExtensionSet.php#423: Twig\ExtensionSet->initExtension()
ExtensionSet.php#397: Twig\ExtensionSet->initExtensions()
Environment.php#966: Twig\ExtensionSet->getUnaryOperators()
Lexer.php#459: Twig\Environment->getUnaryOperators()
Lexer.php#110: Twig\Lexer->getOperatorRegex()
Environment.php#539: Twig\Lexer->__construct()
Environment.php#595: Twig\Environment->tokenize()
Environment.php#408: Twig\Environment->compileSource()
Environment.php#381: Twig\Environment->loadClass(
string '__TwigTemplate_e5eede12e45c1aad02a2d26a1f8fc775ccf9bc81126150d87303842d4ed7e41f',
string 'home/index.twig',
NULL,
)
Environment.php#359: Twig\Environment->loadTemplate(string 'home/index.twig')
Template.php#99: Twig\Environment->load(string 'home/index.twig')
Template.php#132: PhpMyAdmin\Template->load(string 'home/index')
AbstractController.php#36: PhpMyAdmin\Template->render(
string 'home/index',
array,
)
HomeController.php#246: PhpMyAdmin\Controllers\AbstractController->render(
string 'home/index',
array,
)
Routing.php#187: PhpMyAdmin\Controllers\HomeController->index(array)
index.php#18: PhpMyAdmin\Routing::callControllerForRoute(
string '/',
,
,
)
=================================================================================
Deprecation Notice in .\libraries\classes\Util.php#1936
 Function strftime() is deprecated

Backtrace

Header.php#582: PhpMyAdmin\Util::expandUserString(string '@HTTP_HOST@ / @VSERVER@ | @PHPMYADMIN@')
Header.php#459: PhpMyAdmin\Header->getPageTitle()
Response.php#331: PhpMyAdmin\Header->getDisplay()
Response.php#345: PhpMyAdmin\Response->getDisplay()
Response.php#507: PhpMyAdmin\Response->htmlResponse()
PhpMyAdmin\Response->response()

Жаль, что спойлер не работает на форуме. Был бы очень полезен тут.
Как с этим всем бороться? Не ожидал я, что чистая установка меня так огорчит. Искал в поисковике ответы на подобные вопросы, но глобально на англоязычных форумах никто не пишет. Мешает ли это корректно работать системе?  Я новичёк, спасибо за содержательные ответы и любую помощь.
https://prnt.sc/25ycfl6

2

Re: Ошибки после конфигурирования phpmyadmin 5.1.1+PHP8 (решено!)

Если ставили PHP 8, то попробуйте заменить на PHP 7. Используются устаревшие функции.

3 (изменено: SRDB, 2022-01-04 21:11:01)

Re: Ошибки после конфигурирования phpmyadmin 5.1.1+PHP8 (решено!)

Hanut сказал:

Если ставили PHP 8, то попробуйте заменить на PHP 7. Используются устаревшие функции.

Спасибо большое за оперативность и желание помочь. Курил ваш форум в целях решения данного вопроса (https://forum.php-myadmin.ru/viewtopic.php?id=2311).
Попробую поставить версию 7, но мне так видится, что версия не должна вызывать подобных конфликтов, иначе это будет конкретная недоработка разработчиков, тем более в релизной версии.

Как понять то, что используются устаревшие функции?

UPD. Вот же самка собаки....С php-7.4.27-Win32-vc15-x64 всё проходит идеально. Ни одного предупреждения.

UPD2. Разработчикам phpMyAdmin уже известно об этих ошибках и внесены исправления в версию 5.2.
С версией 5.2 РАБОТАЕТ БЕЗ ЗАМЕЧАНИЙ!(без единой ошибки)
Скачать можно с официального сайта: https://www.phpmyadmin.net/downloads/
На сегодняшний день версия 5.2 является версией для разработчиков (Development Version).
Результаты без ошибок на скрине: https://prnt.sc/2608ac2