Ошибки 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)».
Как это исправить?
2 ответа
Вручную обновить phpMyAdmin в Ubuntu
На момент написания этой статьи версия phpMyAdmin доступна в диспетчере пакетов Ubuntu (4.5.4) не полностью поддерживает php7.2, что приводит к раздражающему предупреждению count (). Решение состоит в том, чтобы обновить phpMyAdmin до последней версии , которая на момент написания - 4.7.9.
Пакет Ubuntu уже позади. Есть phpMyAdmin PPA, но он тоже отстает:
«Примечание: этот репозиторий в настоящее время немного отстает, так как я изо всех сил пытаюсь найти время, чтобы обновить его до версии 4.7».
К счастью, мы можем вручную обновить старую версию.
Основные шаги:
- Сделайте резервную копию текущей установки
- Загрузите и распакуйте последнюю версию phpMyAdmin
- Измените файл vendor_config.php в соответствующий каталог для Ubuntu
- Добавьте более длинную случайную строку, чтобы разрешить сообщения об ошибках 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 . Чтобы решить эту проблему, вы должны обновить определенный файл конфигурации:
- Открыть
vendor_config.php
в/usr/share/phpmyadmin/libraries/vendor_config.php
- В строке 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 .
- Откройте файл
/var/lib/phpmyadmin/blowfish_secret.inc.php
.
Тебе следует увидеть:
<?php
$cfg['blowfish_secret'] = 'Something Short';
- Добавьте дополнительную случайность к строке
$cfg['blowfish_secret']
, по крайней мере, 40 символов и даже больше может быть лучше (я использую строку длиной до 100 символов).
Например (не используйте это, просто пример):
$cfg['blowfish_secret'] = 'A much longer random string 7NfSjYezwmwGCfGDuDO7uWn4ESw2sCFCym1RatPjGCfGCym1RatPjGCfG';
- Сохраните файл.
На этом этапе обновите phpMyAdmin (в своем браузере) и войдите снова . Теперь все должно работать правильно.
При желании вы можете удалить резервную копию старой версии phpMyAdmin с помощью:
rm -rfv /usr/share/phpmyadmin_old
Дополнительная документация
Для справки ниже приведены выдержки из официального phpMyAdmin документация об обновлении до последней версии вручную ( не специфичной для Ubuntu):
Предупреждение
Никогда не извлекайте новую версию поверх существующей установки phpMyAdmin, всегда сначала удаляйте старые файлы, сохраняя только конфигурацию.
Таким образом, вы не оставите в каталоге старый, больше не работающий код, который может иметь серьезные последствия для безопасности или вызывать различные поломки.
А также:
Полное обновление можно выполнить в несколько простых шагов:
Загрузите последнюю версию phpMyAdmin с https://www.phpmyadmin.net/downloads/.
Переименуйте существующую папку phpMyAdmin (например, в phpmyadmin-old).
Распакуйте только что загруженный phpMyAdmin в желаемое место (например, phpmyadmin).
Скопируйте config.inc.php` из старого местоположения (phpmyadmin-old) в новое (phpmyadmin).
Убедитесь, что все работает правильно.
Удалить резервную копию предыдущей версии (phpmyadmin-old).
Другой способ исправить ошибки - временно понизить версию php до версии 7.1, пока ubuntu не догонит свою версию phpmyadmin. Инструкции здесь. Мне это показалось проще, и в любом случае у меня нет причин быть на переднем крае php.
Похожие вопросы
Связанные вопросы
Новые вопросы
count
Количество относится к числу объектов в коллекции. Это также широко используемая функция SQL, которая подсчитывает количество строк.