DT Wiki

Для тех, кто работает с базами данных в системах Debian, phpMyAdmin - один лучших из выборов для управления базами данных. В этой статье опишем как установить phpMyAdmin с применением LEMP на Debian 12 Bookworm, Debian 11 Bullseye или Debian 10 Buster. PhpMyAdmin - это инструмент, который помогает управлять базами данных MySQL и MariaDB с помощью простого веб-интерфейса.

Подготовка

Устанавливаем NGinx, MariaDB, PHP как описано в этой статье.

Загрузка и установка phpMyAdmin

Для загрузки архива с phpMyAdmin, выполним следующюю команду в консоли:

DATA="$(wget https://www.phpmyadmin.net/home_page/version.txt -q -O-)"
URL="$(echo $DATA | cut -d ' ' -f 3)"
VERSION="$(echo $DATA | cut -d ' ' -f 1)"
wget https://files.phpmyadmin.net/phpMyAdmin/${VERSION}/phpMyAdmin-${VERSION}-all-languages.tar.gz

Распакуем архив

tar xvf phpMyAdmin-${VERSION}-all-languages.tar.gz

Переместим распакованные файлы в каталог хостов WEB сервера

sudo mv phpMyAdmin-*/ /var/www/phpmyadmin

Конфигурация phpMyAdmin

Создадим каталог для временных файлов, по умочанию он почему-то отсутствует

sudo mkdir /var/www/phpmyadmin/tmp

Создадим файл настроек из файла по умолчанию

sudo cp /var/www/phpmyadmin/config.sample.inc.php /var/www/phpmyadmin/config.inc.php

Отредактируем его

sudo nano /var/www/phpmyadmin/config.inc.php

В строке, которая начинается на $cfg‘blowfish_secret’

$cfg['blowfish_secret'] = ''; /* YOU MUST FILL IN THIS FOR COOKIE AUTH! */

Между двух апострофоф, после знака равенства, необходимо ввести хаотичный набор из 32 символов, состоящий из цифр, а так-же больших и маленьких букв, например:

$cfg['blowfish_secret'] = 'UvqAlsvTxRdYIyO8TnlkJsVQaWs2LfgL'; /* YOU MUST FILL IN THIS FOR COOKIE AUTH! */

Настройка прав

Для папки с phpMyAdmin необходимо назначить права, что-бы NGinx мог с ней работать.

sudo chown -R www-data:www-data /var/www/phpmyadmin/
sudo find /var/www/phpmyadmin/ -type d -exec chmod 755 {} \;
sudo find /var/www/phpmyadmin/ -type f -exec chmod 644 {} \;

Настройка хоста для Nginx

Создадим файл конфигурации хоста

sudo nano /etc/nginx/sites-available/phpmyadmin.conf

добавим в него следующее содержимое:

server {
  listen 80;
  listen [::]:80;
  server_name pma.example.com; # Здесь необходимо ввести имя вашего домена или IP адрес
  root /var/www/phpmyadmin/;
  index index.php index.html index.htm index.nginx-debian.html;

  access_log /var/log/nginx/phpmyadmin_access.log;
  error_log /var/log/nginx/phpmyadmin_error.log;

  location / {
    try_files $uri $uri/ /index.php;
  }

  location ~ ^/(doc|sql|setup)/ {
    deny all;
  }

  location ~ \.php$ {
    fastcgi_pass unix:/run/php/php8.2-fpm.sock; ## Указать правильную версию php-fpm
    fastcgi_param SCRIPT_FILENAME $document_root$fastcgi_script_name;
    include fastcgi_params;
    include snippets/fastcgi-php.conf;
  }

  location ~ /\.ht {
    deny all;
  }
}

ВАЖНО!
server_name pma.example.com; - Здесь необходимо ввести имя вашего домена или IP адрес
root /var/www/phpmyadmin/; - Путь к папке куда копировали файлы phpmyadmin
fastcgi_pass unix:/run/php/php8.2-fpm.sock; - Указать правильную версию php-fpm

Создадим симлинк к этому файлу

sudo ln -s /etc/nginx/sites-available/phpmyadmin.conf /etc/nginx/sites-enabled/

Проверим конфигурацию

sudo nginx -t

nginx: the configuration file /etc/nginx/nginx.conf syntax is ok
nginx: configuration file /etc/nginx/nginx.conf test is successful

Содание пользователя для phpMyAdmin

Для работы с phpMyAdmin лучше создать пользователя с супер правами, что бы в дальнейшем не логинится от root пользователя

sudo mariadb -u root -p

Поочерёдно выполним команды

CREATE USER pmauser IDENTIFIED BY 'сложный пароль';
GRANT ALL PRIVILEGES ON *.* TO 'pmauser'@'localhost' IDENTIFIED BY 'сложный пароль' WITH GRANT OPTION;
FLUSH PRIVILEGES;
QUIT;

Вход в Web интерфейс

Набираем адрес в адресной строке брайзера и попадаем на страницу входа

pma-login-screen.png

Вводим заданные ранее имя пользователя и пароль, в нашем случае это pmauser и сложный пароль
Жмем кнопку Log in, попадаем в Dashboard

pma-dashboard.png