В данном руководстве вы узнаете, как настроить 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 и ссылочной целостностью.
Содержание статьи
- 1 Начальные условия
- 2 Установка phpMyAdmin на сервер под управлением Debian 10
- 3 Настройка базы данных MariaDB и учетной записи пользователя для phpMyAdmin.
- 4 Инсталлируйте необходимые и рекомендуемые модули для PHP.
- 5 Настройте конфигурацию Apache для phpMyAdmin.
- 6 Получение доступа к phpMyAdmin через субдомен.
- 7 Активируйте HTTPS для phpMyAdmin, используя Apache.
- 8 Начните выполнение скрипта конфигурации phpMyAdmin.
- 9 Решение проблемы с входом в phpMyAdmin
- 10 Конфигурация хранилища для phpMyAdmin
- 11 Запретить доступ к каталогу /setup
- 12 Активируйте Двухфакторную Проверку Личности.
- 13 Заключение
Начальные условия
Для того чтобы воспользоваться данным руководством, необходимо, чтобы на вашем локальном компьютере или удаленном сервере была установлена операционная система 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, чтобы узнать о последней стабильной версии. После этого выполните команду для загрузки.
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
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
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 по следующему адресу.
ваш-ip-сервера/phpmyadmin
Если на вашем локальном компьютере с Debian установлен phpMyAdmin, для доступа к его веб-интерфейсу введите следующий адрес в строку браузера.
localhost/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 для того, чтобы и

Прежде чем вводить учетные данные пользователя в форму для входа, давайте активируем 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.
Введите это в адресную строку вашего браузера.
ваш-айпи-сервер/phpmyadmin/setup
pma. example.com/setup
Нажмите на кнопку «Создать сервер», чтобы начать настройку.

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

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

В директории /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
Если вы попытаетесь войти в 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.

Запретить доступ к каталогу /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
Включите указанные строки.
# Авторизация для установки
Сохраните файл и закройте его. После этого перезапустите Apache, чтобы изменения начали действовать.
sudo systemctl reload apache2
При повторном доступе к скрипту установки phpMyAdmin вам потребуется ввести свои учетные данные: имя пользователя и пароль.

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

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

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

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

