Установка phpMyAdmin на Debian 10 Buster с использованием Apache (LAMP)

В данном руководстве вы узнаете, как настроить phpMyAdmin с использованием Apache, MariaDB и PHP7.3 (LAMP-стек) на Debian 10 Buster.phpMyAdmin представляет собой бесплатный и открытый инструмент для управления базами данных через веб-интерфейс, разработанный на PHP. Он позволяет пользователям удобно работать с базами данных MySQL или MariaDB через графический интерфейс. Также рассмотрим, как настроить двухфакторную аутентификацию в phpMyAdmin.

phpMyAdmin предоставляет администраторам возможность:

  • Изучать таблицы и базы данных.
  • Выполнять создание, копирование, переименование, модификацию и удаление баз данных.
  • Выполнять создание, копирование, переименование, изменение и удаление таблиц.
  • Проводить техническое обслуживание таблиц.
  • Создавать, изменять и удалять поля.
  • выполнять все виды SQL-запросов, включая множественные.
  • создание, изменение и удаление индексов.
  • загружать текстовые документы в таблицы.
  • формировать и просматривать дампы таблиц или баз данных.
  • перевести данные в форматы SQL, CSV, XML, Word, Excel, PDF и LaTeX;
  • управлять несколькими серверами
  • управление пользователями и правами доступа в MySQL.
  • проверять параметры сервера и данные о времени выполнения с рекомендациями по настройкам.
  • проверять целостность ссылок в таблицах MyISAM.
  • автоматически формировать сложные запросы, используя запросы на основе примеров (QBE)
  • объединяя требуемые таблицы.
  • генерировать PDF-графику на основе дизайна базы данных.
  • осуществлять поиск по всей базе данных или её отдельным частям;
  • преобразовывать сохраненные данные в различные форматы с использованием набора заранее заданных функций, например, отображение BLOB-данных как изображения или предоставление ссылки для загрузки.
  • управлять таблицами InnoDB и ссылочной целостностью.

Начальные условия

Для того чтобы воспользоваться данным руководством, необходимо, чтобы на вашем локальном компьютере или удаленном сервере была установлена операционная система Debian 10.

Если вас интересует VPS (виртуальный частный сервер), вы можете зарегистрироваться на Vultr по моей реферальной ссылке и получить $50 в виде бесплатного кредита (предложение доступно только для новых пользователей). Кроме того, если вам нужно настроить phpMyAdmin с использованием доменного имени, я рекомендую приобретать домены на NameCheap — там низкие цены и бесплатная защита конфиденциальности WHOIS.

Ожидается, что вы уже завершили установку стека LAMP на Debian 10. Если это не так, пожалуйста, обратитесь к следующему руководству.

  • Инструкция по установке стека LAMP (Apache, MariaDB, PHP 7.3) на Debian 10 Buster.

Имейте в виду, что для установки программного обеспечения на Debian необходимы права суперпользователя. Вы можете либо добавить sudo перед командой, либо воспользоваться командой su — для перехода на учетную запись root.

Теперь, когда мы всё прояснили, давайте приступим к установке phpMyAdmin.

Установка phpMyAdmin на сервер под управлением Debian 10

В репозитории программного обеспечения Debian 10 отсутствует phpMyAdmin, поэтому необходимо скачать его вручную. Посетите страницу загрузки phpMyAdmin, чтобы узнать о последней стабильной версии. После этого выполните команду для загрузки.

Читайте также:  Как настроить Laravel на Ubuntu 20.04

wget https://files.phpmyadmin.net/phpMyAdmin/4.9.0.1/phpMyAdmin-4.9.0.1-all-languages. zip

Вы можете загрузить самую последнюю стабильную версию phpMyAdmin, используя указанный выше формат URL. Для этого просто замените 4.9.0.1 на номер актуальной версии.

После этого извлеките его.

sudo apt install unzip unzip phpMyAdmin-4.9.0.1-all-languages. zip

Переместите phpMyAdmin версии 4.9 в папку /usr/share/.

sudo mv phpMyAdmin-4.9.0.1-all-languages /usr/share/phpmyadmin

Затем назначьте пользователя веб-сервера (www-data) владельцем данного каталога.

sudo chown - R www-data:www-data /usr/share/phpmyadmin

Настройка базы данных MariaDB и учетной записи пользователя для phpMyAdmin.

Теперь необходимо войти в консоль MariaDB, чтобы создать базу данных и пользователя для phpMyAdmin. В стандартной конфигурации MariaDB на Debian используется unix_socket для аутентификации пользователей, что позволяет входить в систему, используя учетные данные операционной системы. Таким образом, вы можете использовать следующую команду, чтобы войти без запроса пароля root для 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.* TO 'phpmyadmin'@'localhost' IDENTIFIED BY 'your_preferred_password';

Обновите таблицу прав и завершите работу с консолью MariaDB.

FLUSH PRIVILEGES; EXIT;

Инсталлируйте необходимые и рекомендуемые модули для PHP.

Введите следующую команду для установки необходимых или рекомендованных модулей PHP для phpMyAdmin.

sudo apt install php-imagick php-phpseclib php-php-gettext php7.3-common php7.3-mysql php7.3-gd php7.3-imap php7.3-json php7.3-curl php7.3-zip php7.3-xml php7.3-mbstring php7.3-bz2 php7.3-intl php7.3-gmp

После этого перезапустите сервер Apache.

sudo systemctl restart apache2

Настройте конфигурацию Apache для phpMyAdmin.

Чтобы получить доступ к веб-интерфейсу phpMyAdmin из подкаталога, необходимо создать конфигурационный фрагмент, используя следующую команду.

sudo nano /etc/apache2/conf-available/phpmyadmin.conf

Поместите указанный текст в документ.

# phpMyAdmin стандартная конфигурация Apache Alias /phpmyadmin /usr/share/phpmyadmin Опции СимволическиеСсылкиЕслиВладелецСовпадает ИндексКаталога index.php Добавить тип: application/x-httpd-php для файлов с расширением.php Установить обработчик для application/x-httpd-php.php_value include_path .
php_admin_value upload_tmp_dir /var/lib/phpmyadmin/tmp
php_admin_value open_basedir /usr/share/phpmyadmin/:/etc/phpmyadmin/:/var/lib/phpmyadmin/:/usr/share/php/php-gettext/:/usr/share/php/php-php-gettext/:/usr/share/javascript/:/usr/share/php/tcpdf/:/usr/share/doc/phpmyadmin/:/usr/share/php/phpseclib/
php_admin_value mbstring. func_overload 0
Добавить тип: application/x-httpd-php для файлов с расширением.php Установить обработчик для application/x-httpd-php.php_value include_path .
php_admin_value upload_tmp_dir /var/lib/phpmyadmin/tmp
php_admin_value open_basedir /usr/share/phpmyadmin/:/etc/phpmyadmin/:/var/lib/phpmyadmin/:/usr/share/php/php-gettext/:/usr/share/php/php-php-gettext/:/usr/share/javascript/:/usr/share/php/tcpdf/:/usr/share/doc/phpmyadmin/:/usr/share/php/phpseclib/
php_admin_value mbstring. func_overload 0
Ограничить доступ к веб-директориям, которым он не требуется.Запретить доступ для всех. Запретить доступ для всех. Запретить доступ для всех.

Закройте файл после сохранения, затем активируйте данный конфигурационный блок.

sudo a2enconf phpmyadmin.conf

Необходимо также создать временную директорию для phpMyAdmin.

sudo mkdir - p /var/lib/phpmyadmin/tmp sudo chown www-data:www-data /var/lib/phpmyadmin/tmp

Перезапустите Apache, чтобы изменения начали действовать.

sudo systemctl reload apache2

Теперь у вас есть возможность зайти в веб-интерфейс phpMyAdmin по следующему адресу.

Читайте также:  Как изменить идентификатор AnyDesk в Linux для удобства удалённого доступа

ваш-ip-сервера/phpmyadmin

Если на вашем локальном компьютере с Debian установлен phpMyAdmin, для доступа к его веб-интерфейсу введите следующий адрес в строку браузера.

localhost/phpmyadmin

Debian 10 Buster и phpMyAdmin.

В случае отклонения соединения или невозможности его завершения, вероятно, брандмауэр блокирует HTTP-запросы. Если используется брандмауэр iptables, выполните следующую команду для открытия TCP-портов 80 и 443.

sudo iptables - I INPUT - p tcp --dport 80 - j ACCEPT sudo iptables - I INPUT - p tcp --dport 443 - j ACCEPT

Если у вас установлен брандмауэр UFW, введите эту команду для разблокировки TCP-портов 80 и 443.

sudo ufw allow http sudo ufw allow https

Получение доступа к phpMyAdmin через субдомен.

Иногда возникает необходимость воспользоваться поддоменом для доступа к веб-интерфейсу phpMyAdmin. Это позволит активировать HTTPS для защиты передаваемых данных.

Сначала необходимо настроить виртуальный хост Apache для phpMyAdmin. Можно воспользоваться существующим фрагментом конфигурации phpMyAdmin в качестве основы. Давайте скопируем его в новый файл.

sudo cp /etc/apache2/conf-enabled/phpmyadmin.conf /etc/apache2/sites-available/phpmyadmin.conf

Затем откройте новый файл в текстовом редакторе командной строки, таком как Nano, для редактирования.

sudo nano /etc/apache2/sites-available/phpmyadmin.conf

Вставьте указанные строки в начало файла. Подмените pma. example.com на выбранный вами поддомен для phpMyAdmin. Также не забудьте создать DNS A-запись для этого поддомена.

ServerName pma. example.com DocumentRoot /usr/share/phpmyadmin ErrorLog $/pma. error.log CustomLog $/pma. access.log combined

Включите эту строку в конец данного файла.

Сохраните изменения и закройте документ. (Для сохранения файла в текстовом редакторе Nano нажмите Ctrl+O, а затем Enter для подтверждения. Чтобы выйти из редактора, используйте Ctrl+X.) После этого активируйте данный виртуальный хост.

sudo a2ensite phpmyadmin.conf

Перезапустите веб-сервер Apache для того, чтобы и
Debian 10 с установленным phpMyAdmin и сервером Apache.

Прежде чем вводить учетные данные пользователя в форму для входа, давайте активируем HTTPS.

Активируйте HTTPS для phpMyAdmin, используя Apache.

Для обеспечения безопасности веб-интерфейса phpMyAdmin можно воспользоваться бесплатным TLS-сертификатом от Let’s Encrypt. Чтобы установить клиент Let’s Encrypt (certbot) из репозитория Debian 10, выполните следующую команду.

sudo apt install certbot python3-certbot-apache

Python3-certbot-apache — это плагин для работы с Apache в Certbot. Теперь выполните следующую команду для получения и установки TLS-сертификата.

  • –apache: Применяйте аутентификацию и установщик Apache.
  • – согласие с условиями обслуживания Let’s Encrypt.
  • –перенаправление: Установите 301 перенаправление.
  • –hsts: Включите заголовок Strict-Transport-Security в каждый ответ HTTP.
  • –staple-ocsp: Активирует функцию OCSP Stapling.
  • –must-staple: Внедряет расширение OCSP Must Staple в сертификат.
  • Флаг — d идет после перечня доменных имен, которые должны быть разделены запятыми. В общем, вы можете указать до 100 доменных имен.
  • –email: Адрес электронной почты, который применяется для регистрации и связи в целях восстановления доступа.

Вы получите предложение решить, желаете ли вы получать электронные письма от EFF (Фонд Электронного Фронтира). После того как вы выберете Y или N, ваш TLS-сертификат будет автоматически сгенерирован и настроен, о чем сообщит следующее сообщение.

установить phpMyAdmin на Debian 10 Buster с Apache

Начните выполнение скрипта конфигурации phpMyAdmin.

Введите это в адресную строку вашего браузера.

ваш-айпи-сервер/phpmyadmin/setup

pma. example.com/setup

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

Скрипт для установки phpMyAdmin на Debian 10 Buster.

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

Читайте также:  Руководство по настройке доверенных DNS-серверов через Webmin

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

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

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

В директории /usr/share/phpmyadmin/ необходимо создать файл config.inc.php.

sudo nano /usr/share/phpmyadmin/config.inc.php

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

Настройка хранилища phpMyAdmin на Debian Buster.

Решение проблемы с входом в phpMyAdmin

Если вы попытаетесь войти в phpMyAdmin, используя учетную запись root MariaDB, возможно, вам будет показана следующая ошибка.

#1698 - Доступ запрещен для пользователя 'root'@'localhost'

mysqli_real_connect(): (HY000/1698): Доступ запрещен для пользователя 'root'@'localhost'

При входе под пользователем phpmyadmin ошибка, описанная выше, не проявится. Однако доступ под этим пользователем предназначен исключительно для управления базой данных phpmyadmin. Проблема заключается в том, что по умолчанию пользователь root в MariaDB аутентифицируется через плагин unix_socket, а не mysql_native_password. Чтобы устранить эту проблему, можно создать нового администратора и предоставить ему все необходимые привилегии.

Подключитесь к серверу MariaDB через терминал.

sudo mysql - u root

Сформируйте учетную запись администратора с паролем для доступа.

create user admin@localhost identified by 'ваш-предпочитаемый-пароль';

Выдайте полные права на все базы данных.

grant all privileges on *.* to admin@localhost with grant option;

Обновите права доступа и выйдите из системы.

flush privileges; exit;

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

Ошибка подключения: доступ запрещен для пользователя.

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

Теперь в интерфейсе phpMyAdmin отображается уведомление с предупреждением.

Хранилище конфигурации phpMyAdmin не полностью настроено, некоторые расширенные функции отключены. Узнайте, почему. Или перейдите на вкладку «Операции» любой базы данных, чтобы настроить ее там.

Кликните по ссылке, чтобы узнать причины. После этого выберите ссылку «Создать», чтобы сформировать таблицы в базе данных phpMyAdmin.

настройка хранилища конфигурации phpMyAdmin

Запретить доступ к каталогу /setup

Для ограничения доступа к каталогу /setup можно активировать базовую аутентификацию с использованием пароля через веб-сервер Apache. Для установки пароля для пользователя admin выполните следующую команду. Информация о пользователях и паролях сохраняется в файле /etc/apache2/htpasswd.

sudo htpasswd - c /etc/apache2/htpasswd admin

После этого внесите изменения в конфигурационный файл Apache для phpMyAdmin.

sudo nano /etc/apache2/sites-available/phpmyadmin-le-ssl.conf

sudo nano /etc/apache2/conf-available/phpmyadmin.conf

Включите указанные строки.

# Авторизация для установки Тип аутентификации: Основной. Имя аутентификации: "Настройка phpMyAdmin". Файл пользователей: /etc/apache2/htpasswd.Требуется действующий пользователь.

Сохраните файл и закройте его. После этого перезапустите Apache, чтобы изменения начали действовать.

sudo systemctl reload apache2

При повторном доступе к скрипту установки phpMyAdmin вам потребуется ввести свои учетные данные: имя пользователя и пароль.

ограничьте доступ к скрипту настройки phpmyadmin

Активируйте Двухфакторную Проверку Личности.

Вы также можете повысить безопасность phpMyAdmin, включив двухфакторную аутентификацию, которая была добавлена в версии 4.8. Чтобы включить ее, войдите в phpMyAdmin. Затем перейдите в Настройки ->Включите двухфакторную аутентификацию и выберите приложение для её реализации (2FA).

Обеспечьте безопасность phpMyAdmin.

После нажатия кнопки для настройки двухфакторной аутентификации вам будет показан QR-код, который следует отсканировать с помощью приложения для двухфакторной аутентификации на вашем мобильном устройстве.

Настройка двухфакторной аутентификации для phpMyAdmin.

Google Authenticator — широко известное приложение для двухфакторной аутентификации (2FA), но я советую рассмотреть FreeOTP, открытое решение для 2FA от компании Red Hat. После ввода кода, который сгенерировал ваш 2FA-приложение, двухфакторная аутентификация будет активирована. При выходе из системы и повторном входе вам потребуется ввести код аутентификации помимо имени пользователя и пароля.

Обеспечьте безопасность phpMyAdmin.

Заключение

Надеюсь, этот руководство оказалось полезным для установки phpMyAdmin на LAMP в Debian 10 Buster. Вам может быть интересно подписаться на RSS-канал, где публикуются обновления о безопасности phpMyAdmin. Если вы считаете этот материал полезным, не забудьте подписаться на нашу бесплатную рассылку, чтобы получать дополнительные советы и рекомендации.