Как установить phpMyAdmin в Debian 12

phpMyAdmin – веб-интерфейс, написанный на PHP, который предназначен для управления СУБД MySQL. Если в вашей системе установлен LAMP – стек Linux, Apache, MySQL и PHP, то phpMyAdmin можно использовать для упрощённого управления базами данных через веб-интерфейс. Он позволяет создавать, редактировать и удалять базы данных, таблицы, пользователей, а также выполнять SQL-запросы без использования консоли. Это выглядит особенно удобно для тех, кто не хочет работать с MySQL через терминал. Кроме того, при помощи графического интерфейса phpMyAdmin администратор СУБД имеет возможность производить резервное копирование и восстановление данных, что во многом упрощает обслуживание базы данных.

В данной статье разберём, как установить актуальную версию phpMyAdmin на виртуальный сервер, работающий под управлением Debian 12, на котором уже установлен стек LAMP.

Как установить phpMyAdmin в Debian 12

Поскольку репозитории Debian как правило содержат устаревшую версию phpMyAdmin, здесь мы рассмотрим установку данного софта из файла архива, который можно загрузить с официальной страницы phpMyAdmin.

На загрузочной странице phpMyAdmin вы можете выбрать различные варианты архивов для требуемой версии дистрибутива. В нашем примере мы установим версию 5.2.2 из архива tar.gz. Для того, чтобы загрузить на сервер нужный файл, кликните на нём правую кнопку мыши и выберите строку Копировать ссылку.

Страница загрузки дистрибутива phpMyAdmin - Как установить phpMyAdmin в Debian

Затем подключитесь к своему серверу, перейдите в домашний каталог командой cd ~, после чего при помощи утилиты wget и скопированной ранее ссылки загрузите файл дистрибутива:

$ wget https://files.phpmyadmin.net/phpMyAdmin/5.2.2/phpMyAdmin-5.2.2-all-languages.tar.gz

Далее скопируйте загруженный архив в корневой каталог веб-сервера Apache:

$ sudo cp phpMyAdmin-5.2.2-all-languages.tar.gz /var/www/html/

После чего перейдите в данный каталог:

$ cd /var/www/html/

И распакуйте архив с использованием утилиты tar:

$ sudo tar -xvzf phpMyAdmin-5.2.2-all-languages.tar.gz

В результате в каталоге /var/www/html/ появится директория phpMyAdmin-5.2.2-all-languages, которую нужно переименовать в phpmyadmin:

$ sudo mv phpMyAdmin-5.2.2-all-languages phpmyadmin

Файл архива при этом можно удалить:

$ sudo rm phpMyAdmin-5.2.2-all-languages.tar.gz

Настройка конфигурации phpMyAdmin

После распаковки архива перейдите в директорию phpmyadmin, чтобы произвести первоначальную настройку конфигурации:

$ cd /var/www/html/phpmyadmin

Здесь создайте файл настроек phpMyAdmin из файла config.sample.inc.php, который служит для этого образцом:

$ sudo cp config.sample.inc.php config.inc.php

В своей работе phpMyAdmin использует cookie-аутентификацию. За шифрование паролей пользователей в cookies отвечает соответствующая настройка в файле config.inc.php. Данная настройка должна содержать секретный ключ для шифрования паролей. Ключ должен состоять не менее чем из 32 символов, из букв, цифр и специальных символов, а также должен быть случайным, то есть не должен содержать какое-либо слово или фразу. Поэтому сначала необходимо сгенерировать секретный ключ, например, при помощи следующей команды:

$ tr -dc 'A-Za-z0-9!@#$%^&*()-_=+' < /dev/urandom | head -c 32

В данном случае:

  • /dev/urandom – специальное устройство, которое генерирует псевдослучайные данные;
  • tr – фильтрует входные данные;
  • -d – удаляет все символы, кроме указанных: A-Za-z0-9!@#$%^&*()-_=+;
  • -c – инвертирует список, то есть оставляет только указанные символы;
  • head -c 32 – выбирает только первые 32 символа из потока данных.

Скопируйте сгенерированный ключ в буфер обмена и откройте файл config.inc.php, чтобы внести в него изменения:

$ sudo nano config.inc.php

В файле найдите следующую строку:

$cfg['blowfish_secret'] = '';

После чего вставьте в неё скопированный ключ:

$cfg['blowfish_secret'] = 'сгенерированный_ключ';

Закройте файл с сохранением внесённых изменений. Затем измените владельца и группу для каталога phpmyadmin и всех его файлов на пользователя www-data и группу www-data:

$ sudo chown -R www-data:www-data /var/www/html/phpmyadmin

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

$ sudo chmod -R 755 /var/www/html/phpmyadmin

Далее перейдите в каталог, который содержит дополнительные конфигурационные файлы для Apache:

$ cd /etc/apache2/conf-available/

Находясь в данном каталоге, создайте файл конфигурации phpmyadmin.conf:

$ sudo nano phpmyadmin.conf

В него добавьте следующие строки:

Alias /phpmyadmin /var/www/html/phpmyadmin

<Directory /var/www/html/phpmyadmin>
    Options Indexes FollowSymLinks
    DirectoryIndex index.php
    AllowOverride All
    Require all granted
</Directory>

Затем закройте его, сохранив внесённые изменения, после чего активируйте использование настроек phpMyAdmin в Apache:

$ sudo a2enconf phpmyadmin

Чтобы новые настройки начал использовать веб-сервер, перезапустите Apache:

$ sudo systemctl restart apache2

Чтобы проверить работоспособность веб-интерфейса phpMyAdmin, откройте браузер и перейдите на http://X.X.X.X/phpmysql, где вместо X.X.X.X используйте IP-адрес вашего виртуального сервера. Для подключения к веб-интерфейсу phpMyAdmin используйте учётную запись root, которая является администратором СУБД MySQL.

Подключение к веб-интерфейсу phpMyAdmin  под учётной записью root

После чего можно будет удалить файл дефолтной страницы Apache:

$ sudo rm /var/www/html/index.html

Отключение root-доступа (опционально)

Поскольку root имеет полный контроль над MySQL, а phpMyAdmin доступен через веб-интерфейс, что делает его целью возможных атак, важно запретить root-доступ к phpMyAdmin. Чтобы сделать это, рекомендуется удалить из MySQL учётную запись root, но перед этим следует создать в СУБД нового пользователя и наделить его полномочиями администратора.

Поэтому сначала подключитесь к интерфейсу командной строки MySQL:

$ mysql -u root -p

Где создайте новую учётную запись:

mysql> CREATE USER 'your-mysql-admin'@'localhost' IDENTIFIED BY 'your-mysql-admin-password';

Здесь:

  • your-mysql-admin – имя создаваемой учётной записи;
  • your-mysql-admin-password – пароль для создаваемой учётной записи.

Затем выдайте пользователю your-mysql-admin полные привилегии для всех баз данных и таблиц в MySQL:

mysql> GRANT ALL PRIVILEGES ON *.* TO 'your-mysql-admin'@'localhost' WITH GRANT OPTION;

Теперь, когда новый администратор создан, учётную запись root можно удалить:

mysql> DROP USER 'root'@'localhost';

После чего примените изменения, внесённые в таблицы MySQL:

mysql> FLUSH PRIVILEGES;

Теперь для входа в веб-интерфейс phpMyAdmin, а также для подключения к командной строке MySQL, следует использовать учётную запись нового администратора.

Подключение к веб-интерфейсу phpMyAdmin  под созданной учётной записью администратора

Вам также может понравиться