Установка phpMyAdmin на Ubuntu 22.04 LTS с использованием Nginx (LEMP)

В этом уроке мы рассмотрим процесс установки 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 и ссылочной целостностью;

Необходимые требования.

Для проведения этого занятия вам потребуется удалённый сервер с установленной Ubuntu 22.04.

Если вы находитесь в поисках виртуального частного сервера (VPS), обратите внимание на VPS от Kamatera, который предоставляет:

  • 30 дней безвозмездного тестирования.
  • Стартовая стоимость составляет от $4 в месяц за 1 ГБ оперативной памяти.
  • Мощный VPS, основанный на технологии KVM.
  • Девять дата-центров расположены в различных странах, среди которых США, Канада, Великобритания, Германия, Нидерланды, Гонконг и Израиль.
Читайте также:  Включение SSI в apache

Перейдите по приведённой ниже ссылке, чтобы ознакомиться с уроком по созданию вашего 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

how-to-install-phpmyadmin-in-ubuntu

Инсталляция 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

Чтобы настроить сервер, нажмите на кнопку «Создать сервер».

После этого просто кликните на кнопку «Применить».

добавить новый сервер в phpMyAdmin

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

Настройка phpMyAdmin на Debian 10 в файле config.inc.php.

В директории /var/www/phpmyadmin/ создайте файл с именем config.inc.php.

Читайте также:  Запустить tmux с поддержкой 256 цветов в Linux

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

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

Конфигурация хранилища phpMyAdmin для Debian Buster.

Вы можете вернуться на главную страницу сайта: 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. Если вы нашли эту статью полезной, подписывайтесь на нашу бесплатную рассылку, чтобы получать больше советов и рекомендаций! 🙂