Ошибки phpMyAdmin после обновления php7.2

После обновления до php7.2 в Ubuntu 16.04 LTS phpMyAdmin показывает раздражающие всплывающие предупреждения, когда я просматриваю таблицы:

«На сервере обнаружены некоторые ошибки! Посмотрите на нижнюю часть этого окна. Игнорировать все. Игнорировать».

Внизу окна:

" Предупреждение в ./libraries/sql.lib.php#601

count (): Параметр должен быть массивом или объектом, реализующим Countable "

... за которым следует длинный список трассировки.

Эта проблема возникает в различных версиях phpMyAdmin 4.x, включая 4.5.4 и ниже.

Как это исправить?


Обновление - ошибка Blowfish

После обновления до последней версии phpMyAdmin (4.7.9) я теперь получаю новую ошибку, которая появляется внизу каждой страницы:

«Для файла конфигурации теперь требуется секретная кодовая фраза (blowfish_secret)».

Как это исправить?

7
Justin 13 Мар 2018 в 02:44

2 ответа

Лучший ответ

Вручную обновить phpMyAdmin в Ubuntu

На момент написания этой статьи версия phpMyAdmin доступна в диспетчере пакетов Ubuntu (4.5.4) не полностью поддерживает php7.2, что приводит к раздражающему предупреждению count (). Решение состоит в том, чтобы обновить phpMyAdmin до последней версии , которая на момент написания - 4.7.9.

Пакет Ubuntu уже позади. Есть phpMyAdmin PPA, но он тоже отстает:

«Примечание: этот репозиторий в настоящее время немного отстает, так как я изо всех сил пытаюсь найти время, чтобы обновить его до версии 4.7».

К счастью, мы можем вручную обновить старую версию.

Основные шаги:

  1. Сделайте резервную копию текущей установки
  2. Загрузите и распакуйте последнюю версию phpMyAdmin
  3. Измените файл vendor_config.php в соответствующий каталог для Ubuntu
  4. Добавьте более длинную случайную строку, чтобы разрешить сообщения об ошибках blowfish и обеспечить правильную аутентификацию файлов cookie.

Эти команды терминала должны выполнить свою работу (используйте sudo, если применимо):

mv /usr/share/phpmyadmin /usr/share/phpmyadmin_old
mkdir /usr/share/phpmyadmin
mkdir /var/downloads
cd /var/downloads
wget https://files.phpmyadmin.net/phpMyAdmin/4.7.9/phpMyAdmin-4.7.9-all-languages.tar.gz
tar -xf phpMyAdmin-4.7.9-all-languages.tar.gz -C /usr/share/phpmyadmin --strip-components=1

( Необязательно ) Замените строку wget последней версией или предпочтительным форматом по вашему выбору. Посетите https://www.phpmyadmin.net/downloads/.


Решите сообщение об ошибке blowfish

На этом этапе вы, вероятно, получите ошибку blowfish при использовании phpMyAdmin . Чтобы решить эту проблему, вы должны обновить определенный файл конфигурации:

  1. Открыть vendor_config.php в /usr/share/phpmyadmin/libraries/vendor_config.php
  2. В строке 38 или около нее замените define('CONFIG_DIR', ''); на define('CONFIG_DIR', '/etc/phpmyadmin/'); и сохраните файл.

Когда вы закончите, строки 33-38 vendor_config.php должны выглядеть примерно так:

/**
 * Directory where configuration files are stored.
 * It is not used directly in code, just a convenient
 * define used further in this file.
 */
define('CONFIG_DIR', '/etc/phpmyadmin/');

На этом этапе phpMyAdmin может работать без ошибок, но вам может потребоваться добавить дополнительную длину в строку конфигурации blowfish_secret .

  1. Откройте файл /var/lib/phpmyadmin/blowfish_secret.inc.php.

Тебе следует увидеть:

<?php
$cfg['blowfish_secret'] = 'Something Short';
  1. Добавьте дополнительную случайность к строке $cfg['blowfish_secret'], по крайней мере, 40 символов и даже больше может быть лучше (я использую строку длиной до 100 символов).

Например (не используйте это, просто пример):

$cfg['blowfish_secret'] = 'A much longer random string 7NfSjYezwmwGCfGDuDO7uWn4ESw2sCFCym1RatPjGCfGCym1RatPjGCfG';
  1. Сохраните файл.

На этом этапе обновите phpMyAdmin (в своем браузере) и войдите снова . Теперь все должно работать правильно.

При желании вы можете удалить резервную копию старой версии phpMyAdmin с помощью:

rm -rfv /usr/share/phpmyadmin_old

Дополнительная документация

Для справки ниже приведены выдержки из официального phpMyAdmin документация об обновлении до последней версии вручную ( не специфичной для Ubuntu):

Предупреждение

Никогда не извлекайте новую версию поверх существующей установки phpMyAdmin, всегда сначала удаляйте старые файлы, сохраняя только конфигурацию.

Таким образом, вы не оставите в каталоге старый, больше не работающий код, который может иметь серьезные последствия для безопасности или вызывать различные поломки.

А также:

Полное обновление можно выполнить в несколько простых шагов:

  1. Загрузите последнюю версию phpMyAdmin с https://www.phpmyadmin.net/downloads/.

  2. Переименуйте существующую папку phpMyAdmin (например, в phpmyadmin-old).

  3. Распакуйте только что загруженный phpMyAdmin в желаемое место (например, phpmyadmin).

  4. Скопируйте config.inc.php` из старого местоположения (phpmyadmin-old) в новое (phpmyadmin).

  5. Убедитесь, что все работает правильно.

  6. Удалить резервную копию предыдущей версии (phpmyadmin-old).

16
Justin 12 Мар 2018 в 23:44

Другой способ исправить ошибки - временно понизить версию php до версии 7.1, пока ubuntu не догонит свою версию phpmyadmin. Инструкции здесь. Мне это показалось проще, и в любом случае у меня нет причин быть на переднем крае php.

0
twowheeler 24 Май 2018 в 20:24