При установке phpMyAdmin на сервер с Debian 9 с установленной версией php7.3 может появиться ошибка count(): Parameter must be an array or an object that implements Countable
. Возможно, в ближайшем будущем разработчики устранят эту ошибку, внеся исправления в официальный дистрибутив, но до сих пор для того, чтобы она не мешала работе, приходится устранять её ручками. Делать это достаточно просто. Как? Рассмотрим ниже.
Код ошибки count(): Parameter must be an array or an object that implements Countable
Данная ошибка выдаётся в виде предупреждения, которое перекрывает весь экран:
Жалобы на работу скрипта plugin_interface.lib.php
:
Warning in ./libraries/sql.lib.php#551
count(): Parameter must be an array or an object that implements Countable
Номер строки может варьироваться от версии phpMyAdmin.
Для того, чтобы продолжить работу, можно просто нажать на кнопку «Игнорировать всё» или «Игнорировать», но это не иправит ситуации и диалоговое окно:
На сервере обнаружены некоторые ошибки!
Пожалуйста, посмотрите вниз текущего окна.
всё равно будет появляться. Для того, чтобы данное сообщение не возникало, нужно внести небольшие правки в два файла phpMyAdmin в исходный код на сервере.
Исправления в файле sql.lib.php
Первое исправление нужно внести в файл /usr/share/phpmyadmin/libraries/sql.lib.php
:
Находим в коде строку
|| (count($analyzed_sql_results['select_expr'] == 1)
и вместо неё вставляем строку
|| ((count($analyzed_sql_results['select_expr']) == 1)
Исправления в файле plugin_interface.lib.php
Второе исправление нужно внести в файл /usr/share/phpmyadmin/libraries/plugin_interface.lib.php
:
Находим в коде строку
if ($options != null && count($options) > 0) {
и вместо неё вставляем строку
if ($options != null && count((array) $options) > 0) {
Резюме
После внесённых правок phpMyAdmin продолжает работать без ошибок:
Заберите ссылку на статью к себе, чтобы потом легко её найти!
Раз уж досюда дочитали, то может может есть желание рассказать об этом месте своим друзьям, знакомым и просто мимо проходящим?
Не надо себя сдерживать! ;)