Ошибки phpMyAdmin (count, blowfish и т. д.) после обновления php7.2 на Ubuntu 16

Ошибки 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).

Как я могу это исправить?


person Justin    schedule 12.03.2018    source источник


Ответы (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).

person Justin    schedule 12.03.2018
comment
+1 невероятно тщательно и отлично поработал, хотел бы я дать еще +1 для ярлыков командной строки! У меня не было ошибки Blowfish, так что это было еще проще ???????? (я использую Laravel Homestead, поэтому мне пришлось изменить / usr / share / на / Code /) - person Andrew Fox; 03.09.2018
comment
В Debian 9.6 + Nginx мне пришлось выбрать: chown -R nginx:nginx /var/lib/phpmyadmin - person Slavik; 21.12.2018

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

person twowheeler    schedule 24.05.2018