Установка phpMyAdmin на любой Linux сервер

Обновлено: 22.06.2021

PhpMyAdmin — это удобная панель управления сервером баз данных через вэб-интерфейс. В данной инструкции по ее установке мы не будем привязываться к какому-либо конкретному дистрибутиву. Я просто расскажу универсальный метод ее установки на любой, будь то Ubuntu, CentOS или же Debian. И не важно, какое серверное ПО у тебя установлено — Nginx, Apache или OpenLiteSpeed, следовать данной инструкции можно имея любое.

Разумеется, что у тебя уже должен быть установлен WEB-сервер и сервер баз данных MySQL или MariaDB. Я буду рассказывать все по шагам, но для наглядности приведения примеров в данной статье я использую web сервер OpenLiteSpeed установленный на ОС Ubuntu Server. В тех местах, где возможны некоторые различия, например в путях разных серверов, я обращу на это внимание.

 

Загрузка phpMyAdmin

Скачать саму панель управления БД можно на официальном сайте — https://www.phpmyadmin.net. Далее ее можно загрузить на свой сервер посредством SSHFS или FTP или же через файл менеджер панели управления VPS/VDS. Такой метод я оставляю на усмотрения читателя, а в статье приведу пример загрузки непосредственно на сервер с использованием программы wget.

Подключаемся к серверу любым удобным методом, например по SSH, если ты установил свой WEB-сервер и сервер базы данных, то SSH у тебя скорее всего уже настроен и ты умеешь им пользоваться.

ssh USER@HOST.RU -p PORT

 

Переходим в корневой каталог сервера — это тот каталог (папка) в котором расположен корень сайта (index.php или index.html). Сделать это можно с помощью команды cd в терминале (я буду показывать установку на примере OpenLiteSpeed из моей предыдущей статьи — Как установить LOMP (OpenLiteSpeed, MariaDB, PHP8) на Ubuntu Server ) поэтому каталоги (папки) из моих примеров будут указаны относительно хоста по умолчанию именно для этого WEB-сервера. У тебя корневые каталоги будут отличаться, поэтому не забывай изменять в приведенных командах пути на свои. Например, для NGINX Как установить LEMP в Ubuntu 20.04 ) путь по умолчанию будет /usr/share/nginx/html/, а для APACHE/var/www/html/

cd /usr/local/lsws/Example/html

 

Теперь, с помощью программы wget производим загрузку архива с панелью с официального сайта по прямой ссылке (ссылка может измениться, например, с выходом новой версии, так что если загрузка не происходит — обратись к офф. сайту для уточнения прямой ссылки на актуальную версию):

 

Данную команду для загрузки можно просто скопировать, пути в ней менять не нужно:

wget https://files.phpmyadmin.net/phpMyAdmin/5.1.1/phpMyAdmin-5.1.1-all-languages.zip -O pma.zip

 

Если при загрузке возникла ошибка

Теперь интересный момент — если ты только что установил сервер и не до конца настроил права доступа должным образом, то доступ у твоего пользователя к корневому каталогу сервера отсутствует и ты, скорее всего, получишь ошибку «wget: unable to resolve host address ‘pma.zip’«.

Решается это либо выполнением вышеприведенной команды от имени суперпользователя (например с помощью sudo) — но такой подход к работе с сервером не корректен с точки зрения безопасности — сервер не должен работать от root и мы не будем с ним работать через sudo. Либо, что уже правильнее — нужно присвоить каталог сервера своему пользователю с помощью команды (не забудь изменить путь к корневому каталогу сервера):

sudo chown $USER /usr/local/lsws/Example/html -R

Но, например, при установке NGINX права на сервер и его каталоги имеет пользователь и группа www-data и в таком случае более правильным решением будет присвоить своему пользователю членство в данной группе с помощью команды:

sudo usermod -a -G www-data $USER

В двух командах, приведенных выше $USER — это переменная среды, и ее можно не менять на имя своего пользователя, она итак его содержит.

 

Продолжаем. Либо ошибки при загрузке у тебя не возникло и права доступа у тебя настроены верно, либо ты воспользовался приведенным выше советом и получил-таки доступ к корневому каталогу сервера и файл с панелью был успешно загружен с помощью вышеприведенной команды (wget https://files.phpmyadmin.net/phpMyAdmin/5.1.1/phpMyAdmin-5.1.1-all-languages.zip -O pma.zip)

 

Проверяем, что файл pma.zip был загружен к нам на сервер:

ls

Если такой файл существует, то произведем его распаковку:

unzip ./pma.zip

Если в твоей системе команда unzip отсутствует — то установи пакет unzip из репозиториев своего дистрибутива.

Файлы распакуются в каталог phpMyAdmin-5.1.1-all-languages — переименуем его в phpmyadmin:

mv phpMyAdmin-5.1.1-all-languages/ ./phpmyadmin

Установка phpMyAdmin

Первым шагом перед установкой мы создадим отдельного пользователя базы данных для работы через phpMyAdmin. Для этого на сервере перейдем в консоль управления MySQL/MariaDB, ниже я приведу примеры для обоих серверов баз данных.

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

Для MySQL вход осуществляется с помощью команды:

sudo mysql -u root -p

Добавляем нового пользователя с помощью команды:

CREATE USER 'pma' IDENTIFIED BY 'ПАРОЛЬ';

Выдаем ему права:

GRANT ALL ON *.* TO 'pma'@'%';

 

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

Для MariaDB вход осуществляется с помощью команды:

sudo mariadb -u root

 

Добавляем нового пользователя с помощью команды:

CREATE USER 'pma' IDENTIFIED BY 'ПАРОЛЬ';

Выдаем ему привелегии доступа:

GRANT USAGE ON *.* TO 'pma'@localhost IDENTIFIED BY 'ПАРОЛЬ';
GRANT ALL privileges ON *.* TO 'pma'@localhost;
FLUSH PRIVILEGES;

 

Настройка phpMyAdmin

Для настройки мы используем минимально возможную конфигурацию в файле config.inc.php. Для более подробной документации по настройкам в данном файле обратись к официальному руководству — https://docs.phpmyadmin.net/en/latest/config.html. Но нам для работы с PMA хватит и минимальных настроек.

Данный файл нужно создать в каталоге phpmyadmin. После того, как мы скачали и распаковали нашу панель в корневой каталог сервера — в консоли мы остаемся в данном каталоге. Теперь нам необходимо с помощью команды cd переместиться в каталог phpmyadmin:

cd ./phpmyadmin

Затем создаем в нем файл config.inc.php:

touch ./config.inc.php

С помощью любого текстового редактора, например nano (Как установить и использовать nano в Ubuntu) — записываем в конфигурационный файл следующее:

<?php
$cfg['blowfish_secret'] = 'sbhvb4y4vybhrbfv7q34gvbshervvr'; // ключ для шифрования (можно "натыкать" любой)
$i=0;
$i++;
$cfg['Servers'][$i]['auth_type'] = 'cookie';
?> 

В данном тексте менять не нужно ничего, кроме blowfish_secret ключа — он нужен PMA для шифрования, его можно указать рандомно, главное, что его длина должна превышать 32 символа.

 

Подключение к phpMyAdmin

Теперь, после того, как мы создали файл настроек и пользователя для PMA — можно пробовать подключаться к панели через браузер. Для этого, если установка производилась в корень сервера в каталог ./phpmyadmin — нужно в адресной строке указать IP_Сервера/phpmyadmin, у меня это 192.168.0.104/phpmyadmin:

Вводим свои логин и пароль пользователя, которого мы создали в предыдущих пунктах данного руководства и попадаем в панель управления БД:

 

Пару слов о безопасности

После установки PMA — любой пользователь сети будет иметь к ней доступ через браузер. Соответственно, есть вероятность того, что кто-то захочет выполнить брутфорс логина и пароля. Поэтому ты можешь попробовать обезопасить себя с помощью следующих методов:

  1. Установка в папку с нестандартным названием, например не ./phpmyadmin, а ./snvuhw34nsfbk
  2. Использование отдельного пользователя для входа в БД из PMA, что мы и проделали в данной статье, только придумай имя посложнее, чем «pma»
  3. Аутентификация в каталог phpMyAdmin с помощью http_authorization
  4. Запрет на доступ к панели с чужих IP (подойдет, если у тебя самого статичный IP на рабочем ПК)

В принципе для защиты от брутфорс-ботов в большинстве своем выполнения первого и второго пунктов достаточно. Но, если хочется перебдеть — то все в твоих руках. Подробнее об организации http_authorization и запрете доступа по IP я рассказывать тут не буду, ибо у каждого свой WEB-сервер и инструкцию, как это сделать на твоем — читай в официальной документации к нему, направление, что искать — я дал.

 

 

 

 

 

 

Добавить комментарий

Есть, что добавить? Нет проблем! Напечатай комментарий и он будет опубликован после проверки.