В этом уроке мы рассмотрим процесс установки phpMyAdmin с использованием Nginx, MariaDB и PHP8.1 (LEMP) на Ubuntu 22.04.phpMyAdmin — это бесплатный веб-инструмент с открытым исходным кодом для администрирования баз данных, разработанный на PHP. Он предлагает удобный графический интерфейс для работы с базами данных MySQL и MariaDB.
phpMyAdmin предоставляет администраторам возможность:
- изучать базы данных и их таблицы;
- создавать, дублировать, менять названия, редактировать и уничтожать базы данных;
- Создавать, дублировать, менять название, редактировать и удалять таблицы.
- осуществлять обслуживание таблиц;
- вносить изменения, корректировать и удалять поля;
- осуществлять выполнение любых SQL-запросов, включая одновременное выполнение нескольких запросов.
- формировать, модифицировать и удалять индексы.
- Импортировать текстовые файлы в таблицы.
- формировать и просматривать дампы таблиц или баз данных;
- выгружать информацию в форматы SQL, CSV, XML, Word, Excel, PDF и LaTeX;
- администрировать несколько серверов.
- управлять учетными записями пользователей MySQL и их правами доступа;
- проверять параметры сервера и данные о времени выполнения с рекомендациями по настройке.
- проверка связности ссылок в таблицах MyISAM.
- автоматически формировать сложные запросы на основе образца запроса (QBE)
- объединяя нужные таблицы;
- разрабатывать PDF-графику для схемы базы данных.
- осуществлять масштабный поиск в базе данных или в её сегменте;
- превращать сохраненные данные в различные форматы, используя набор заранее заданных функций, например, преобразование BLOB-данных в изображения или ссылки для их загрузки.
- управлять таблицами InnoDB и ссылочной целостностью;
Содержание статьи
- 1 Необходимые требования.
- 2 Установите phpMyAdmin на сервер с Ubuntu 22.04.
- 3 Создайте в MariaDB базу данных и пользователя для работы с phpMyAdmin
- 4 Установите обязательные и рекомендованные модули PHP.
- 5 Настройте серверный блок Nginx для phpMyAdmin.
- 6 Инсталляция TLS-сертификата
- 7 Начало работы с мастером настройки phpMyAdmin
- 8 Решение проблемы авторизации в phpMyAdmin
- 9 Блокировка доступа к директории /setup
- 10 Автоматическое обновление TLS-сертификата
- 11 Применение Webmin для администрирования баз данных MySQL и MariaDB.
- 12 Итоговый обзор
Необходимые требования.
Для проведения этого занятия вам потребуется удалённый сервер с установленной Ubuntu 22.04.
Если вы находитесь в поисках виртуального частного сервера (VPS), обратите внимание на VPS от Kamatera, который предоставляет:
- 30 дней безвозмездного тестирования.
- Стартовая стоимость составляет от $4 в месяц за 1 ГБ оперативной памяти.
- Мощный VPS, основанный на технологии KVM.
- Девять дата-центров расположены в различных странах, среди которых США, Канада, Великобритания, Германия, Нидерланды, Гонконг и Израиль.
Перейдите по приведённой ниже ссылке, чтобы ознакомиться с уроком по созданию вашего Linux VPS сервера на платформе Kamatera.
- Создание VPS-сервера на базе Linux с помощью Kamatera.
Предполагается, что у вас уже установлен стек LEMP на Ubuntu 22.04. Если это не так, ознакомьтесь с представленным ниже руководством.
- Как настроить LEMP стек (Nginx, MariaDB, PHP 8.1) на Ubuntu 22.04.
Теперь, когда всё решено, приступим к установке phpMyAdmin.
Установите phpMyAdmin на сервер с Ubuntu 22.04.
phpMyAdmin доступен в репозитории программного обеспечения для Ubuntu 22.04, однако рекомендуется установить самую актуальную версию, воспользовавшись пакетом upstream. Чтобы загрузить его, выполните следующую команду.
wget https://www.phpmyadmin.net/downloads/phpMyAdmin-latest-all-languages. zip
После этого достаньте его.
sudo apt install unzip unzip phpMyAdmin-latest-all-languages. zip
Перенесите phpMyAdmin в каталог /var/www/.
sudo mkdir - p /var/www/ sudo mv phpMyAdmin-5.2.0-all-languages /var/www/phpmyadmin
После этого назначьте пользователю веб-сервера (www-data) право собственности на данную директорию.
sudo chown - R www-data:www-data /var/www/phpmyadmin
Создайте в MariaDB базу данных и пользователя для работы с phpMyAdmin
Откройте консоль MariaDB.
sudo mysql - u root
Для создания новой базы данных в phpMyAdmin используйте следующую SQL-команду. В этом примере база данных называется phpmyadmin, однако вы можете задать любое другое имя.
CREATE DATABASE phpmyadmin DEFAULT CHARACTER SET utf8mb4 COLLATE utf8mb4_unicode_ci;
Следующая SQL-запрос создаст пользователя базы данных phpmyadmin с установленным паролем и предоставит ему полный доступ к новой базе данных, чтобы phpMyAdmin мог впоследствии записывать данные в эту базу. Замените указанный красным текст на выбранный вами пароль.
GRANT ALL ON phpmyadminДля пользователя
предоставлены права .*phpmyadminПользователь '@'localhost' установлен с паролем 'your_preferred_password';
Сбросьте настройки привилегий и закройте консоль MariaDB.
FLUSH PRIVILEGES; EXIT;
Установите обязательные и рекомендованные модули PHP.
Используйте следующую команду для установки модулей PHP, которые необходимы или рекомендованы для работы phpMyAdmin.
sudo apt install php-imagick php-phpseclib php-php-gettext php8.1-common php8.1-mysql php8.1-gd php8.1-imap php8.1-curl php8.1-zip php8.1-xml php8.1-mbstring php8.1-bz2 php8.1-intl php8.1-gmp
Настройте серверный блок 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.comroot /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.1-fpm.sock; fastcgi_param SCRIPT_FILENAME $document_root$fastcgi_script_name; include fastcgi_params; include snippets/fastcgi-php.conf; >location ~ /\.ht < deny all; >>
Файлы phpMyAdmin расположены в папке /var/www/phpmyadmin/. После этого сохраните изменения и закройте файл. Далее проверьте настройки Nginx.
sudo nginx - t
После успешного прохождения теста перезапустите Nginx, чтобы изменения начали действовать.
sudo systemctl reload nginx
Теперь вы должны суметь зайти в веб-интерфейс phpMyAdmin через
pma. example.com

Инсталляция TLS-сертификата
Для обеспечения безопасности веб-интерфейса phpMyAdmin можно воспользоваться бесплатным TLS-сертификатом от Let’s Encrypt. Установите клиент Let’s Encrypt из репозитория программного обеспечения Ubuntu 22.04, следуя инструкциям ниже:
sudo apt install certbot python3-certbot-nginx
Python3-certbot-nginx представляет собой плагин для Certbot, который предназначен для работы с Nginx. Теперь запустите следующую команду, чтобы получить и установить сертификат TLS.
- –nginx: Применить аутентификатор и инсталлятор Nginx.
- –agree-tos: Подтверждение согласия с правилами использования 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 сертификат будет автоматически сгенерирован и настроен, о чем будет сообщено в следующем уведомлении.
Начало работы с мастером настройки phpMyAdmin
Введите это в строку адреса вашего браузера.
https://pma. example.com/setup
Чтобы настроить сервер, нажмите на кнопку «Создать сервер».
После этого просто кликните на кнопку «Применить».

После этого нажмите на кнопку «Показать», чтобы отобразить файл конфигурации.

В директории /var/www/phpmyadmin/ создайте файл с именем config.inc.php.
sudo nano /var/www/phpmyadmin/config.inc.php
Скопируйте данные из файла config.inc.php на странице настройки phpMyAdmin и поместите их в файл /var/www/phpmyadmin/config.inc.php.

Вы можете вернуться на главную страницу сайта: https://pma.example.com/ и выполнить вход в систему.
Решение проблемы авторизации в 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
Создайте учетную запись admin с проверкой подлинности через пароль.
create user admin@localhost identified by 'your-chosen-password';
Дайте полные права доступа ко всем базам данных.
grant all privileges on *.* to admin@localhost with grant option;
Внесите корректировки в права доступа и завершите сеанс.
flush privileges; exit;
Теперь у вас есть возможность зайти в phpMyAdmin под учетной записью администратора и осуществлять управление всеми базами данных.
Блокировка доступа к директории /setup
После завершения настройки phpMyAdmin доступ к каталогу /setup больше не требуется.
Измените конфигурационный файл Nginx.
sudo nano /etc/nginx/conf.d/phpmyadmin.conf
Вставьте указанный ниже код в данный файл.
location ~ ^/(doc|sql|setup)/
Сохраните изменения и закройте файл, после чего проверьте настройки Nginx.
sudo nginx - t
После успешного прохождения теста перезапустите Nginx, чтобы изменения начали действовать.
sudo systemctl reload nginx
Автоматическое обновление TLS-сертификата
Для автоматического обновления сертификата Let’s Encrypt необходимо внести изменения в файл crontab от имени пользователя root.
sudo crontab - e
После этого вставьте следующую строку внизу.
@daily certbot renew --quiet && systemctl reload nginx
Чтобы Nginx начал использовать новый сертификат для клиентов, требуется его перезагрузка.
Применение Webmin для администрирования баз данных MySQL и MariaDB.
Webmin представляет собой многофункциональную панель для администрирования серверов на базе Linux. Она также предоставляет возможность управления базами данных MySQL/MariaDB через графический интерфейс, однако по своим возможностям она не дотягивает до phpMyAdmin, который предназначен именно для работы с базами данных.
- Разработка баз данных
- Создание учетных записей пользователей для баз данных
- Назначение прав доступа для пользователей баз данных.
Итоговый обзор
Надеюсь, данное руководство оказалось полезным для установки phpMyAdmin с Nginx на Ubuntu 22.04 LTS. Если вы нашли эту статью полезной, подписывайтесь на нашу бесплатную рассылку, чтобы получать больше советов и рекомендаций! 🙂

