PHP 5824 ~ 3 мин.

Как вручную обновить phpMyAdmin

Как вручную обновить phpMyAdmin

Со времени выпуска Ubuntu 18.04 и других дистрибутивов Linux у многих людей возникли проблемы с совместимостью PHP 7.2 и phpMyAdmin 4.6. В посте мы разберем как решить эту проблему и что делать дальше

Когда у вас стоит phpMyAdmin и в репозитории не обновляют последнюю версию, а warning'ы типа 

“Warning in ./libraries/sql.lib.php#613 count(): Parameter must be an array or an object that implements Countable”

уже начинают доставать, то тут либо заходить в каждый файл и заменять строчки кода; 

count($analyzed_sql_results['select_expr'] == 1

на

((count($analyzed_sql_results['select_expr']) == 1)

либо же, что логичнее всего, обновить версию phpMyAdmin до последней версии, вручную.

Обновление phpMyAdmin до последней версии

1. Сделайте резервную копию

На всякий пожарный случай, можно сделать резервную копию текущей папки phpMyAdmin, переместив ее с добавлением к имени, что-нибудь типа bak:

sudo mv /usr/share/phpmyadmin/ /usr/share/phpmyadmin.bak


2. Загрузите и распакуйте phpMyAdmin

Зайдите в папку phpMyAdmin, скорее всего это будет:

cd /usr/share/phpmyadmin

Далее, зайдите на страницу загрузок phpMyadmin, скопируйте ссылку на последнюю версию, и загрузите zip архив с помощью wget:

sudo wget -P https://files.phpmyadmin.net/phpMyAdmin/4.9.2/phpMyAdmin-4.9.2-all-languages.zip

На сегодняшний день, последняя стабильная версия 4.9.2. Если теперь доступна более поздняя версия, не забудьте изменить версию в ссылке.

Далее распакуем архив с помощью unzip, если нет данной утилиты, то установите ее sudo apt-get install unzip:

sudo unzip phpMyAdmin-4.9.2-all-languages.zip

3. Скопируйте и удалите папку и архив

Для надежности используем команду cp (копировать), чтобы скопировать распакованную папку! Обратите внимание, что необходим -r аргумент, так как это папка:

sudo cp -r phpMyAdmin-4.9.2-all-languages phpmyadmin

Если все прошло успешно можно удалить ненужные папку и архивы:

sudo rm -rf phpMyAdmin-4.9.2-all-languages
sudo rm phpMyAdmin-4.9.2-all-languages.zip
sudo rm -rf phpmyadmin.bak

Теперь же зайдя по адресу /phpmyadmin мы уже можем увидеть обновленную версию PMA, но внизу будут предупреждения об отсутствии временной папки tmp и пустой парольной фразе blowfish_secret:


 

4. Отредактируйте конфигурационные файлы

Чтобы исправить данную проблему, можно пойти двумя путями:

Первый вариант - это замена в файле "/usr/share/phpmyadmin/libraries/vendor_config.php" параметры TEMP_DIR и CONFIG_DIR на значения ниже:

sudo nano /usr/share/phpmyadmin/libraries/vendor_config.php
define('TEMP_DIR', '/var/lib/phpmyadmin/tmp/');

и

define('CONFIG_DIR', '/etc/phpmyadmin/');

phpMyAdmin теперь будет генерировать собственный blowfish_secret на основе каталога установки.


Второй вариант - создать временную папку в корне /usr/share/phpmyadmin, как ссылается параметр конфига TEMP_DIR и назначить ей владельца пользователя www-data:

cd /usr/share/phpmyadmin
sudo mkdir tmp
sudo chown -R www-data:www-data /usr/share/phpmyadmin/tmp

Предупреждение о папке tmp должно исчезнуть в phpMyAdmin.

Далее нужно скопировать  сэмпл конфигурационного файла config.sample.inc.php в config.inc.php, найти параметр blowfish_secret и вставить вместо пустой строки свой хэш:

cd /usr/share/phpmyadmin
sudo cp config.sample.inc.php config.inc.php
sudo nano config.inc.php

Сгенерируйте произвольный хеш и вставьте в параметр конфига blowfish_secret:

/*
 * This is needed for cookie based authentication to encrypt password in
 * cookie
 */
$cfg['blowfish_secret'] = Fsdf34fSDFsegasg4ge4gw34Gg4g4$6%645gd'; 
/* YOU MUST FILL IN THIS FOR COOKIE AUTH! */

сохраните файл. Предупреждение об blowfish_secret так же должно исчезнуть.

Второй вариант прост в использовании, но лучше все же изменять vendor_config, что даст некоторые преимущества в работе с phpMyadmin в будущем.

Скрипт PMA Updater

Чтобы процесс обновления проходил более удобнее и быстрее я написал bash скрипт, который доступен по адресу https://github.com/sinbadxiii/pma-updater , достаточно будет склонировать себе репозиторий и запустить скрипт обновления phpMyAdmin до последней версии командой:

sudo ./update.sh

Что думаешь?

Категории
  • PHP 68
  • Заметки 18
  • Безопасность 4
  • Флуд 2
  • Nginx 2
  • ИТ новости 2
  • Видео 1
  • Docker 1
  • Roadmap 1
  • Архитектура 0

Хочешь поддержать сайт?

Делаем из мухи слона

sergeymukhin.com

персональный блог о веб-разработке от Сергея Мухина. Блог был основан в 2018 году, и собирался уделять основное внимание последним тенденциям, учебным пособиям, а также советам и рекомендациям, позволяющим начинающим девелоперам встать быстрее на правильную дорогу веб разработки, но что-то пошло не так 😃

Релизы PHP 8.4

Дата Релиз
4 Июля 2024 Альфа 1
18 Июля 2024 Альфа 2
1 Августа 2024 Альфа 3
13 Августа 2024 Feature freeze
15 Августа 2024 Бета 1
29 Августа 2024 Бета 2
12 Сентября 2024 Бета 3
26 Сентября 2024 RC 1
10 Октября 2024 RC 2
24 Октября 2024 RC 3
7 Ноября 2024 RC 4
21 Ноября 2024 GA

Что нового?