В данном руководстве описан процесс установки phpMyAdmin с использованием Nginx, MariaDB и PHP7.4 (LEMP) на Ubuntu 20.04.phpMyAdmin представляет собой бесплатный и открытый веб-инструмент для администрирования баз данных, созданный на PHP. С его помощью можно управлять базами данных MySQL или MariaDB через удобный графический веб-интерфейс.
phpMyAdmin предоставляет возможность администраторам:
- Изучать базы данных и их таблицы.
- Создавать, дублировать, переименовывать, редактировать и удалять базы данных.
- Осуществлять создание, копирование, переименование, редактирование и удаление таблиц.
- Проводить обслуживание таблиц.
- Включать, изменять и удалять элементы.
- Исполнять любые SQL-запросы, включая несколько одновременно.
- Осуществлять создание, модификацию и удаление индексов.
- загружать текстовые документы в таблицы.
- создание и просмотр дампов таблиц или баз данных.
- переносить данные в форматы SQL, CSV, XML, Word, Excel, PDF и LaTeX.
- администрировать несколько серверов
- администрировать пользователей MySQL и их права доступа.
- проверять параметры сервера и данные о времени выполнения вместе с рекомендациями по настройке.
- проверять целостность ссылок в таблицах MyISAM.
- автоматически генерировать сложные запросы с использованием метода Запроса по образцу (QBE).
- подсоединяя нужные таблицы;
- разрабатывать PDF-графику для схемы базы данных.
- проводить поиск по всей базе данных или в ее определенной части;
- преобразовывать сохраненную информацию в различные форматы с помощью заранее определенных функций, например, отображать данные BLOB в виде изображения или предоставлять ссылки для загрузки.
- управлять таблицами InnoDB и ссылочными ключами.
Содержание статьи
- 1 Предварительные условия
- 2 Загрузка и установка phpMyAdmin на Ubuntu 20.04
- 3 Настройка блока сервера Nginx для phpMyAdmin
- 4 Инсталляция сертификата TLS
- 5 Убедитесь в корректности вашего TLS сертификата.
- 6 Решение проблем с входом в phpMyAdmin.
- 7 Автоматическое продление сертификата TLS
- 8 Управление базами данных MySQL и MariaDB с помощью Webmin.
- 9 В заключение
Предварительные условия
Для того чтобы воспользоваться данным руководством, вам потребуется установить операционную систему Ubuntu 20.04 на своем локальном компьютере или удаленном сервере.
Если вы заинтересованы в VPS (виртуальном частном сервере), воспользуйтесь этой уникальной ссылкой, чтобы получить $100 в виде бесплатного кредита на DigitalOcean. (Предложение только для новых пользователей). Если вы уже зарегистрированы на DigitalOcean, вы можете воспользоваться этой ссылкой для получения $50 в виде бесплатного кредита на Vultr (только для новых пользователей).
Предполагается, что стек LEMP уже установлен на вашей системе Ubuntu 20.04. Если это не так, рекомендуем ознакомиться с приведённым ниже руководством.
- Установка стека LEMP (Nginx, MariaDB, PHP 7.4) на Ubuntu 20.04.
Теперь, когда мы разобрались с этой темой, перейдем к установке phpMyAdmin.
Загрузка и установка phpMyAdmin на Ubuntu 20.04
phpMyAdmin доступен в репозитории программного обеспечения для Ubuntu 20.04, что позволяет легко установить его, используя следующую команду.
sudo apt update sudo apt install phpmyadmin
Указанная команда позволит установить все требуемые зависимости, включая расширения для PHP7. В процессе установки вам предложат использовать dbconfig-common для настройки базы данных. Чтобы выбрать вариант «Да», нажмите клавишу Tab.

Также будет создан новый пользователь базы данных с именем phpmyadmin. Установите пароль для этого пользователя.

В следующем шаге вам нужно будет выбрать веб-сервер для конфигурации. Так как Nginx отсутствует в списке, просто нажмите клавишу Tab и подтвердите действие, нажав OK, чтобы перейти к следующему этапу.

По окончании процесса создается новая база данных под названием phpmyadmin, а пользователю базы данных phpmyadmin предоставляются необходимые права для управления этой базой данных. Если вам интересно, как и мне, вы можете зайти в MariaDB и узнать, какие права были даны пользователю phpmyadmin.
Для доступа к серверу MariaDB вы можете воспользоваться следующей командой.
sudo mysql - u root
После этого проверьте права доступа.
show grants for phpmyadmin@localhost;
Пользователь phpmyadmin обладает полными правами на базу данных phpmyadmin. Теперь вы можете завершить сессию, выполнив:
exit;
Настройка блока сервера Nginx для phpMyAdmin
Для доступа к веб-интерфейсу phpMyAdmin необходимо настроить блок сервера Nginx, используя следующую команду.
sudo nano /etc/nginx/conf.d/phpmyadmin.conf
Мы сконфигурируем его для доступа к phpMyAdmin через поддомен. Поместите следующий текст в файл. Не забудьте заменить pma. example.com на ваш реальный поддомен и создать DNS A-запись для него.
server { listen 80; listen [::]:80; server_name pma. example.com; root /usr/share/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/php7.4-fpm.sock; fastcgi_param SCRIPT_FILENAME $document_root$fastcgi_script_name; include fastcgi_params; include snippets/fastcgi-php.conf; } location ~ /\.ht { deny all; }}
Файлы phpMyAdmin располагаются в каталоге /usr/share/phpmyadmin/. После этого сохраните изменения и закройте файл. Далее проверьте настройки Nginx.
sudo nginx - t
После успешного прохождения теста перезапустите Nginx, чтобы применить изменения.
sudo systemctl reload nginx
Теперь вы должны иметь возможность зайти в веб-интерфейс phpMyAdmin через
pma. example.com

Инсталляция сертификата TLS
Для повышения безопасности веб-интерфейса phpMyadmin рекомендуется установить бесплатный TLS сертификат Let’s Encrypt. Чтобы установить клиент Let’s Encrypt из репозитория программного обеспечения Ubuntu 20.04, выполните следующие шаги:
sudo apt install certbot python3-certbot-nginx
Python3-certbot-nginx представляет собой плагин для Certbot, который работает с Nginx. Для получения и установки TLS-сертификата выполните следующую команду.
- –nginx: Применяйте аутентификатор и установщик для Nginx.
- –подтверждение-согласия: Примите условия обслуживания Let’s Encrypt.
- Принудительно направляйте пользователей на HTTPS, используя редирект 301.
- –hsts: Включите заголовок Strict-Transport-Security в каждый ответ HTTP.
- –staple-ocsp : Активирует OCSP Stapling.
- –must-staple: Включает расширение OCSP Must Staple в сертификат.
- Флаг — d включает в себя перечень доменных имен, которые нужно разделять запятыми. Допускается добавление до 100 доменных имен.
- –email: Адрес электронной почты, который применяется для регистрации и восстановления доступа.
Вы сможете выбрать, хотите ли получать уведомления по электронной почте от EFF (Фонда Электронного Фронтира). После того как вы ответите Y или N, ваш TLS сертификат будет автоматически сгенерирован и настроен, как указано в приведенном ниже сообщении.
Убедитесь в корректности вашего TLS сертификата.
Зайдите на ssllabs.com для проверки своего TLS сертификата и настроек. Вы должны получить оценку A+, так как HSTS активирован.
Решение проблем с входом в phpMyAdmin.
При входе с учетной записью root в MariaDB может возникнуть следующая ошибка.
#1698 - Доступ запрещен для пользователя 'root'@'localhost'
mysqli_real_connect(): (HY000/1698): Доступ запрещен для пользователя 'root'@'localhost'
При входе с пользователем phpmyadmin ошибка, упомянутая выше, не будет отображаться. Однако этот пользователь предназначен исключительно для управления базой данных phpmyadmin. Проблема возникает из-за того, что по умолчанию пользователь root в MariaDB аутентифицируется с помощью плагина unix_socket, а не mysql_native_password. Чтобы решить эту проблему, можно создать нового администратора и предоставить ему все необходимые привилегии.
Подключитесь к серверу MariaDB через командную строку.
sudo mariadb - u root
Создайте учетную запись администратора с использованием пароля для входа.
create user admin@localhost identified by 'ваш-выбранный-пароль';
Предоставьте полные права доступа ко всем базам данных.
grant all privileges on *.* to admin@localhost with grant option;
Обновите права доступа и выполните выход.
flush privileges; exit;
Теперь у вас есть возможность войти в phpMyAdmin с администраторской учетной записью и осуществлять управление всеми базами данных.
Автоматическое продление сертификата TLS
Для автоматического обновления сертификата Let’s Encrypt необходимо внести изменения в файл crontab пользователя root.
sudo crontab - e
После этого вставьте следующую строку в конце.
@daily certbot renew --quiet && systemctl reload nginx
Для того чтобы Nginx смог распознать новый сертификат для клиентов, требуется его перезагрузка.
Управление базами данных MySQL и MariaDB с помощью Webmin.
Webmin представляет собой универсальную панель управления для серверов на базе Linux. Она предоставляет возможность администрирования баз данных MySQL/MariaDB через удобный графический интерфейс, однако её функциональные возможности в управлении базами данных не так обширны, как у phpMyAdmin.
- Разрабатывать базы данных
- Создание учетных записей пользователей в базе данных.
- Выдавать права доступа для пользователей базы данных.
В заключение
Надеюсь, данный учебник был полезен для установки phpMyAdmin с Nginx на Ubuntu 20.04 LTS. Если вы считаете этот пост информативным, не забудьте подписаться на нашу бесплатную рассылку, чтобы получать больше советов и рекомендаций. Заботьтесь о себе 🙂

