Для тех, кто работает с базами данных в системах Debian, phpMyAdmin - один лучших из выборов для управления базами данных. В этой статье опишем как установить phpMyAdmin с применением LEMP на Debian 12 Bookworm, Debian 11 Bullseye или Debian 10 Buster. PhpMyAdmin - это инструмент, который помогает управлять базами данных MySQL и MariaDB с помощью простого веб-интерфейса.
Устанавливаем NGinx, MariaDB, PHP как описано в этой статье.
Для загрузки архива с 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
Создадим каталог для временных файлов, по умочанию он почему-то отсутствует
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 {} \;
Создадим файл конфигурации хоста
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 лучше создать пользователя с супер правами, что бы в дальнейшем не логинится от 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;
Набираем адрес в адресной строке брайзера и попадаем на страницу входа
Вводим заданные ранее имя пользователя и пароль, в нашем случае это pmauser и сложный пароль
Жмем кнопку Log in, попадаем в Dashboard