Как установить phpmyadmin на debian 10
Для корректной работы многих проектов нужны системы управления базами данных (СУБД), например, MariaDB. Однако взаимодействовать с этой системой исключительно с помощью командной строки не всегда удобно.
Благодаря phpMyAdmin пользователи могут управлять системой MariaDB через веб-интерфейс. Данный мануал содержит пошаговые инструкции по установке и защите интерфейса phpMyAdmin в Debian 10.
Требования
Примечание: MariaDB – это разработанный сообществом форк MySQL. Хотя эти два программы очень похожи, они не вполне взаимозаменяемы. Интерфейс phpMyAdmin разработан специально для управления базами MySQL и во многих диалоговых окнах ссылается именно на MySQL. Однако MariaDB тоже будет работать с phpMyAdmin.
При использовании программ вроде phpMyAdmin всегда следует учитывать, что она:
- Взаимодействует с MariaDB напрямую;
- Выполняет аутентификацию при помощи учётных данных MariaDB;
- Обрабатывает и возвращает результаты для произвольных запросов SQL.
1: Установка phpMyAdmin и дополнительных пакетов
Прежде чем устанавливать phpMyAdmin, официальная документация рекомендует установить несколько вспомогательных PHP-расширений, которые позволяют активировать дополнительные функции и улучшить производительность.
Если вы выполнили мануал по установке стека LAMP, некоторые из этих модулей уже есть на вашем сервере – они были установлены вместе с пакетом php. Но мы рекомендуем также установить пакеты:
- php-mbstring: PHP-расширение для обработки не-ASCII строк и преобразования строк в другое кодирование.
- php-zip: модуль PHP для поддержки загрузки .zip файлов в phpMyAdmin.
- php-gd: модуль PHP для поддержки библиотеки GD Graphics.
Обновите индекс пакетов и установите необходимые компоненты:
sudo apt update
sudo apt install php-mbstring php-zip php-gd
Теперь можно приступать к установке phpMyAdmin. На момент написания статьи phpMyAdmin не доступен в репозитории Debian по умолчанию, потому мы установим этот пакет с официального сайта проекта.
Перейдите на страницу загрузки. Найдите ссылку на последний стабильный релиз phpMyAdmin, скопируйте и загрузите ссылку, которая оканчивается на tar.gz. Эта ссылка ведет к архиву (тарболу), после распаковки которого в системе создается ряд файлов. На данный момент последним стабильным релизом является 4.9.0.1.
Примечание: На этой странице загрузки вы также увидите ссылки с метками all-languages и english. Ссылки all-languages загружают версию phpMyAdmin, в которой вы можете выбрать один из 72 языков, а english, соответственно, предоставляет вам английскую версию интерфейса.
В мануале мы используем версию all-languages для демонстрации настройки, но если вы собираетесь использовать английскую версию, просто установите пакет с меткой english.
Замените ссылку в следующей команде скопированной только что ссылкой, а затем нажмите ENTER.
Распакуйте загруженный архив:
tar xvf phpMyAdmin-4.9.0.1-all-languages.tar.gz
Вы получите ряд новых файлов и каталогов, они будут в родительском каталоге phpMyAdmin-4.9.0.1-all-languages.
Запустите следующую команду. Она переместит каталог phpMyAdmin-4.9.0.1-all-languages и все его подкаталоги в /usr/share/. В этом расположении phpMyAdmin по умолчанию надеется найти свои конфигурационные файлы. Также команда переименует каталог в phpmyadmin.
sudo mv phpMyAdmin-4.9.0.1-all-languages/ /usr/share/phpmyadmin
Итак, phpMyAdmin установлен. Но прежде чем войти и начать работу с базами данных, вам нужно выполнить базовую настройку интерфейса.
2: Ручная настройка phpMyAdmin
При установке phpMyAdmin через пакетный менеджер, как это чаще всего делается в среде Ubuntu, вы получаете программу в режиме «Zero Configuration». Это позволяет автоматически настроить интерфейс в несколько шагов. Поскольку мы установили phpMyAdmin из исходного кода, нам нужно выполнить все эти шаги вручную.
Для начала создайте новый каталог, в котором phpMyAdmin будет хранить свои временные файлы.
sudo mkdir -p /var/lib/phpmyadmin/tmp
Передайте права на каталог пользователю www-data (это пользователь Linux, который используется веб-серверами типа Apache для работы в среде Ubuntu и Debian).
sudo chown -R www-data:www-data /var/lib/phpmyadmin
Извлеченные ранее файлы включают образец конфигурации, который можно использовать в качестве основы. Скопируйте этот файл в тот же каталог /usr/share/phpmyadmin, но переименуйте в config.inc.php:
sudo cp /usr/share/phpmyadmin/config.sample.inc.php /usr/share/phpmyadmin/config.inc.php
Откройте файл в текстовом редакторе:
sudo nano /usr/share/phpmyadmin/config.inc.php
По умолчанию phpMyAdmin использует метод аутентификации cookie, что позволяет вам входить в phpMyAdmin как любой валидный пользователь MariaDB с помощью куки. По этому методу пароль пользователя MariaDB хранится и шифруется по алгоритму Advanced Encryption Standard (AES) во временных куки.
. . .
$cfg['blowfish_secret'] = ''; /* YOU MUST FILL IN THIS FOR COOKIE AUTH! */
. . .
В единичных кавычках введите строку из 32 случайных символов. Это не пароль, ее не нужно запоминать, эта строка будет использоваться алгоритмом AES только внутренне.
. . .
$cfg['blowfish_secret'] = 'STRINGOFTHIRTYTWORANDOMCHARACTERS'; /* YOU MUST FILL IN THIS FOR COOKIE AUTH! */
. . .
Примечание: Если эта строка окажется короче 32 символов, ваши зашифрованные куки будут менее надежны. Если же строка будет длиннее, ничего не изменится.
Вы можете сгенерировать случайную строку с помощью инструмента pwgen. Чтобы установить его, введите:
sudo apt install pwgen
По умолчанию pwgen создает легко запоминающиеся, но не очень надежные пароли. Но с помощью флага –s мы можем создать совершенно случайную последовательность, которую сложно запомнить. Обратите внимание на два последних аргумента: 32 задает длину случайной строки, а 1 – количество случайных строк, которое нужно сгенерировать.
Затем найдите комментарий /* User used to manipulate with storage */. В этом разделе содержатся некоторые директивы, которые определяют пользователя базы данных MariaDB по имени pma, который выполняет определенные административные задачи в phpMyAdmin. Согласно официальной документации, эта специальная учетная запись не нужна в тех случаях, когда доступ к phpMyAdmin имеет только один пользователь, но ее рекомендуется настроить в многопользовательских сценариях.
Раскомментируйте директивы controluser и controlpass, удалив косую черту в начале строки. Затем обновите директиву controlpass, указав в ней надежный пароль. Если вы этого не сделаете, программа будет использовать пароль по умолчанию, и неизвестные пользователи смогут легко получить доступ к вашей базе данных через интерфейс phpMyAdmin.
После внесения этих изменений этот раздел файла будет выглядеть следующим образом:
. . .
/* User used to manipulate with storage */
// $cfg['Servers'][$i]['controlhost'] = '';
// $cfg['Servers'][$i]['controlport'] = '';
$cfg['Servers'][$i]['controluser'] = 'pma';
$cfg['Servers'][$i]['controlpass'] = 'password';
. . .
Ниже вы найдете еще один раздел, с комментарием /* Storage database and tables */. Этот раздел содержит ряд директив, определяющих хранилище конфигурации phpMyAdmin, базу данных и несколько таблиц, используемых pma. Эти таблицы включают в phpMyAdmin ряд функций, в том числе вкладки, комментарии, генерацию PDF и многое другое.
Раскомментируйте каждую строку в этом разделе, удалив косую черту в начале, чтобы раздел выглядел следующим образом:
. . .
/* Storage database and tables */
$cfg['Servers'][$i]['pmadb'] = 'phpmyadmin';
$cfg['Servers'][$i]['bookmarktable'] = 'pma__bookmark';
$cfg['Servers'][$i]['relation'] = 'pma__relation';
$cfg['Servers'][$i]['table_info'] = 'pma__table_info';
$cfg['Servers'][$i]['table_coords'] = 'pma__table_coords';
$cfg['Servers'][$i]['pdf_pages'] = 'pma__pdf_pages';
$cfg['Servers'][$i]['column_info'] = 'pma__column_info';
$cfg['Servers'][$i]['history'] = 'pma__history';
$cfg['Servers'][$i]['table_uiprefs'] = 'pma__table_uiprefs';
$cfg['Servers'][$i]['tracking'] = 'pma__tracking';
$cfg['Servers'][$i]['userconfig'] = 'pma__userconfig';
$cfg['Servers'][$i]['recent'] = 'pma__recent';
$cfg['Servers'][$i]['favorite'] = 'pma__favorite';
$cfg['Servers'][$i]['users'] = 'pma__users';
$cfg['Servers'][$i]['usergroups'] = 'pma__usergroups';
$cfg['Servers'][$i]['navigationhiding'] = 'pma__navigationhiding';
$cfg['Servers'][$i]['savedsearches'] = 'pma__savedsearches';
$cfg['Servers'][$i]['central_columns'] = 'pma__central_columns';
$cfg['Servers'][$i]['designer_settings'] = 'pma__designer_settings';
$cfg['Servers'][$i]['export_templates'] = 'pma__export_templates';
. . .
Эти таблицы еще не существуют, но скоро мы их создадим.
Перейдите в конец файла и добавьте следующую строку. Это настроит phpMyAdmin на использование каталога /var/lib/phpmyadmin/tmp, который вы создали ранее, в качестве своего временного каталога. phpMyAdmin будет использовать этот временный каталог для кэша шаблонов, который позволяет быстрее загружать страницы:
Сохраните и закройте файл (CTRL + X, Y, затем ENTER).
Затем вам нужно создать базу данных и таблицы конфигурации phpMyAdmin. Когда вы установили phpMyAdmin, вместе с тем вы установили файл create_tables.sql. Этот файл SQL содержит все команды, необходимые для создания базы данных хранилища конфигурации и таблиц, которые нужны phpMyAdmin для того чтобы правильно функционировать.
Выполните следующую команду, чтобы использовать файл create_tables.sql для создания базы данных и таблиц конфигурации:
sudo mariadb < /usr/share/phpmyadmin/sql/create_tables.sql
После этого вам нужно создать администратора pma. Откройте командную строку MariaDB:
GRANT SELECT, INSERT, UPDATE, DELETE ON phpmyadmin.* TO 'pma'@'localhost' IDENTIFIED BY 'password';
Если вы еще не сделали этого, вам также следует создать обычного пользователя MariaDB для управления базами данных через phpMyAdmin: входить в систему рекомендуется через другую учетную запись, не через пользователя pma. С помощью этой команды вы можете создать пользователя, который имеет доступ ко всем таблицам в базе данных, а также права добавлять, изменять и удалять привилегии пользователей. Какие бы привилегии вы ни делегировали этому пользователю, обязательно выберите для него надежный пароль:
GRANT ALL PRIVILEGES ON *.* TO '8host'@'localhost' IDENTIFIED BY 'password' WITH GRANT OPTION;
После этого выйдите из оболочки MariaDB:
3: Настройка Apache для обслуживания phpMyAdmin
При установке phpMyAdmin из репозитория по умолчанию процесс установки автоматически создает файл конфигурации для Apache и помещает его в каталог /etc/apache2/conf-enabled/. Поскольку мы установили phpMyAdmin из исходного кода, нам нужно создать и включить этот файл вручную.
Создайте файл phpmyadmin.conf в каталоге /etc/apache2/conf-available/:
sudo nano /etc/apache2/conf-available/phpmyadmin.conf
Добавьте в него такое содержимое:
Это стандартный файл конфигурации phpMyAdmin для Apache, который можно найти в установках Ubuntu – но он хорошо подходит и для Debian.
Сохраните и закройте файл, а затем включите его:
sudo a2enconf phpmyadmin.conf
Затем перезагрузите сервис apache2, чтобы изменения вступили в силу:
sudo systemctl reload apache2
После этого можно получить доступ к странице входа в phpMyAdmin, для этого откройте следующий URL-адрес в веб-браузере:
Чтобы получить доступ к интерфейсу, используйте имя и пароль вашего пользователя MariaDB.
Теперь, когда вы настроили установку phpMyAdmin и можете работать с ней в браузере, пора защитить phpMyAdmin.
4: Защита phpMyAdmin
Из-за своей распространённости PhpMyAdmin часто подвергается атакам хакеров. На данном этапе необходимо обеспечить интерфейсу достаточный уровень защиты для предотвращения вредоносного использования.
Один из самых простых способ защиты phpMyAdmin – размещение шлюза безопасности. Это делается при помощи специальных файлов Apache под названием .htaccess.
Сначала нужно включить поддержку файлов .htaccess, для этого отредактируйте конфигурационный файл Apache.
sudo nano /etc/apache2/conf-available/phpmyadmin.conf
В раздел <Directory /usr/share/phpmyadmin> нужно добавить параметр AllowOverride All:
<Directory /usr/share/phpmyadmin>
Options FollowSymLinks
DirectoryIndex index.php
AllowOverride All
<IfModule mod_php5.c>
. . .
Сохраните и закройте файл.
sudo systemctl restart apache2
Теперь сервер поддерживает файлы .htaccess; нужно только создать такой файл.
Для корректной работы необходимо создать такой файл в каталоге приложения. Для этого введите:
sudo nano /usr/share/phpmyadmin/.htaccess
Вставьте в файл:
AuthType Basic
AuthName "Restricted Files"
AuthUserFile /etc/phpmyadmin/.htpasswd
Require valid-user
Рассмотрим эти строки подробнее:
Сохраните и закройте файл.
Файл с паролями нужно создать в каталоге, заданном в директиве AuthUserFile, в данном случае это /etc/phpmyadmin/.htpasswd.
sudo htpasswd -c /usr/share/phpmyadmin/.htpasswd username
Вам будет предложено выбрать и подтвердить пароль нового пользователя. После этого файл .htpasswd будет создан, а только что введённый пароль будет помещен в него в хэшированном виде.
Чтобы добавить в файл еще одного пользователя, используйте вышеприведенную команду без флага –с:
sudo htpasswd /etc/phpmyadmin/.htpasswd additionaluser
Теперь при входе в подкаталог phpMyAdmin будут запрашиваться учетные данные пользователя:
Только после аутентификации пользователь сможет получить доступ к странице авторизации phpMyAdmin. Это установит дополнительный уровень безопасности, который защитит веб-интерфейс phpMyAdmin от атак методом подбора паролей.
Заключение
Теперь phpMyAdmin установлен, запущен и надежно защищен от злоумышленников. При помощи этого интерфейса можно быстро и легко создавать базы данных, пользователей, таблицы и т.п., а также выполнять такие рутинные задачи как удаление и редактирование структур и данных.
Из этой инструкции вы узнаете, как установить phpmyadmin Debian 10 с Apache, MariaDB, PHP (стек LAMP). phpMyAdmin - это бесплатный веб-инструмент для управления базами данных с открытым исходным кодом, написанный на PHP. Он предоставляет удобный интерфейс, для управления базой данных MySQL или MariaDB.
Также мы узнаем, как включить базовую аутентификацию веб сервера для phpMyAdmin. Для начала, вам потребуется ОС Debian 10, работающая на вашем локальном компьютере или на удаленном сервере.
Установка phpmyadmin в Debian 10
Предполагаю, что вы уже установили стек LAMP в Debian. Если нет, ознакомьтесь с соответствующей инструкцией.
Обратите внимание, что вам нужно иметь права root при установке программного обеспечения в Debian. Вы можете добавить sudo в начале команды или использовать команду su - для переключения на пользователя root. С этим разобрались, теперь давайте начнем установку phpMyAdmin.
Шаг 1: Загрузите phpMyAdmin
Подсказка: Вы всегда можете использовать вышеуказанный формат URL для загрузки последней стабильной версии phpMyAdmin. Просто замените 4.9.0.1 на номер последней версии.
И извлеките его:
sudo apt install unzip
Переместите 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
Шаг 2: Создайте базу данных и пользователя
Теперь нам нужно войти в консоль MariaDB и создать базу данных и пользователя для phpMyAdmin. По умолчанию пакет MariaDB в Debian использует unix_socket для аутентификации входа пользователя, что в основном означает, что вы можете использовать имя пользователя и пароль ОС для входа в консоль MariaDB. Таким образом, вы можете выполнить следующую команду для входа без предоставления пароля 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 'vash_parol';
Обновите таблицу привилегий и выйдите из консоли MariaDB.
FLUSH PRIVILEGES;
EXIT;
Шаг 3: Установите модули PHP
Выполните следующую команду, чтобы установить модули PHP, необходимые или рекомендованные phpMyAdmin:
sudo apt install php-imagick php-phpseclib php-php-gettext php7.3-common 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
Шаг 4. Настройка Apache
Если вы хотите получить доступ к веб-интерфейсу phpMyAdmin из подкаталога, создайте фрагмент конфигурации с помощью следующей команды.
sudo nano /etc/apache2/conf-available/phpmyadmin.conf
Вставьте следующий текст в файл:
Сохраните и закройте файл. Затем включите этот фрагмент конфигурации:
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 по адресу:
Если phpMyAdmin установлен на вашем локальном компьютере Debian, вы можете получить доступ к веб-интерфейсу phpMyAdmin, введя следующий текст в адресной строке браузера:
sudo iptables -I INPUT -p tcp --dport 80 -j ACCEPT
sudo iptables -I INPUT -p tcp --dport 443 -j ACCEPT
Если вы используете брандмауэр UFW, выполните эту команду, чтобы открыть порты TCP 80 и 443:
Шаг 5: Запустите скрипт установки
Введите следующее в адресной строке браузера:
В каталоге /usr/share/phpmyadmin/ создайте файл config.inc.php:
sudo vi /usr/share/phpmyadmin/config.inc.php
Скопируйте содержимое файла config.inc.php со страницы установки phpMyAdmin и вставьте его в файл /usr/share/phpmyadmin/config.inc.php.
Шаг 6: Создайте администратора
Теперь, если вы попытаетесь войти в phpMyAdmin с учетной записью root MariaDB, вы можете увидеть следующую ошибку.
mysqli_real_connect(): (HY000/1698): Access denied for user 'root '@'localhost'
Если вы войдете в систему с пользователем phpmyadmin, вы не увидите вышеупомянутую ошибку. Однако пользователь phpmyadmin может использоваться только для управления базой данных phpmyadmin. Причиной ошибки является то, что по умолчанию пользователь root MariaDB проходит проверку подлинности с помощью плагина unix_socket, а не с помощью плагина mysql_native_password. Чтобы решить эту проблему, мы можем создать другого пользователя-администратора и предоставить все привилегии новому пользователю-администратору.
Войдите на сервер MariaDB из командной строки.
sudo mysql -u root
Создайте пользователя-администратора с парольной аутентификацией.
CREATE USER admin@localhost IDENTIFIED BY 'новый_пароль';
Предоставьте все привилегии для всех баз данных.
GRANT ALL PRIVILEGES *.* TO admin@localhost WITH GRANT OPTION;
Сбросьте привилегии и выйдите;
FLUSH PRIVILEGES;
EXIT;
Теперь вы можете войти в phpMyAmin с учетной записью администратора и управлять всеми базами данных.
Шаг 7: Настройте хранилище настроек
The phpMyAdmin configuration storage is not completely configured, some extended features have been deactivated. Find out why.
Or alternately go to 'Operations' tab of any database to set it up there.
Нажмите на ссылку Find out why. Затем нажмите Create, чтобы создать таблицы в базе данных phpmyadmin.
Шаг 8: Ограничение доступа к каталогу /setup
Чтобы ограничить доступ к каталогу /setup, мы можем включить базовую аутентификацию по паролю с веб-сервером Apache. Выполните следующую команду, чтобы установить пароль для пользователя admin. Файл /etc/apache2/htpasswd используется для хранения имен пользователей и паролей.
sudo htpasswd -c /etc/apache2/htpasswd admin
Затем отредактируйте файл конфигурации Apache для phpMyAdmin
sudo vi /etc/apache2/sites-available/phpmyadmin-le-ssl.conf
Добавьте следующие строки.
Сохраните и закройте файл. Затем перезагрузите Apache, чтобы изменения вступили в силу:
sudo systemctl reload apache2
Выводы
В этой статье мы разобрали как выполняется установка Phpmyadmin Debian 10 Buster вручную. Эту же инструкцию вы можете использовать и для других дистрибутивов.
Нет похожих записей
Статья распространяется под лицензией Creative Commons ShareAlike 4.0 при копировании материала ссылка на источник обязательна.
Устанавливаем PhpMyAdmin в Debian 10
Не буду рассусоливать, что к чему, если вы читаете эту статью, то понимаете, что к чему и зачем вам это все нужно.
Непосредственно сам процесс, приступим к установке PhpMyAdmin
Как всегда обновляемся
Ставим необходимые пакеты
На момент написания этой статьи Php MyAdmin не доступен в репозиториях Debian 10. Поэтому обратимся к разработчикам и там скачаем нужный нам пакет.
На сегодняшний день актуальная версия 4.9.1 ее будем скачивать. Я скачиваю версию для всех языков, если вас устраивает только английская замените all-languages на english
Распаковываем скаченное (если английская замените all-languages на english)
Теперь переместим распакованное в /usr/share/phpmyadmin
Базовые настройки phpMyAdmin
Создаем каталог для временных файлов phpMyAdmin
Зададим нужные права для каталога /var/lib/phpmyadmin
Создаем файл конфигурации, взяв за основу ранее созданный образец
Теперь откроем его для редактирования
Прокрутите файл до строки , которая начинается с $cfg[‘blowfish_secret’]:
Ниже в этом файле находим строку /* User used to manipulate with storage */
Спускаемся далее по файлу до комментария /* Storage database and tables */ и убираем комментирование у каждой строки, получится так
Ну и в самом низу этого файла допишите такую строку строку
Теперь сохраните Ctrl+O и закройте файл Ctrl+X
Команда, чтобы использовать файл create_tables.sql для создания базы данных и таблиц конфигурации
Создаем администратора pma
Откроем командную строку MariaDB
В командной строке выполните следующую команду, чтобы создать пользователя pma и предоставить ему соответствующие права. Обязательно измените пароль — он должен соответствовать паролю, который вы определили в файле config.inc.php:
Если не создали, то создайте обычного пользователя user со всеми правами, пароль password конечно свой
Выходим командой exit
Настроим Apache для работы с PhpMyAdmin
Создаем файл phpmyadmin.conf в каталоге /etc/apache2/conf-available/
Вставляем в него следующее содержимое
Теперь сохраните его и закройте
Включаем этот файл
Теперь настало время проверить, перейдем в браузере по адресу
Для входа используйте логин и пароль MariaDB
Защита Php MyAdmin
Если вы настраиваете хостинг, сервер для общего пользования, то этот пункт нельзя пропускать.
Включите поддержку файлов .htaccess. Настройте тип авторизации, расположение файлов паролей и пользователей которым дан доступ.
Я же настраивал и использую связку LAMP для web разработки, отладки и тестирования своих локальных проектов.
Мне защита в данном случае ни к чему. Поэтому не буду заострять на этом внимание.
phpMyAdmin давно стал де-факто стандартным инструментом для управления базами данных MySQL, поэтому в Debian 10 многих ждало неприятное открытие - данный пакет был исключен из репозитория. Но не стоит отчаиваться, phpMyAdmin - это обычное PHP-приложение, такое же как движок сайта и не составит никакого труда установить его самостоятельно. Более того, таким образом вы получите самую последнюю версию продукта от разработчиков. Также вы можете воспользоваться данной инструкцией и для иных дистрибутивов, в случае если хотите иметь актуальную версию утилиты.
Важно! Если вы хотите использовать данную инструкцию в среде отличной от Debian 10 и у вас уже установлена версия из репозитория, то перед тем, как приступать к описанным ниже действиям ее следует удалить.
Затем создадим необходимые директории:
И установим нужного владельца:
Перейдем в домашнюю директорию и скачаем архив с официального сайта:
В нашем случае это версия 5.0.2, если вы хотите скачать иную версию - просто поменяйте цифры в ссылке, структура URL остается неизменной.
Распакуем архив сразу в целевую директорию:
Ключ --strip-components 1 предписывает не создавать вложенную папку первого уровня.
Изменим рабочую директорию и скопируем файл настроек из шаблона:
Затем откроем файл config.inc.php на редактирование. Первым делом найдем директиву blowfish_secret и установим для нее парольную фразу длинной 32 символа:
Затем раскомментируем блок User used to manipulate with storage и в опции controlpass установим пароль для служебного пользователя pma:
Еще ниже полностью раскомментируем секцию Storage database and tables:
А после нее добавим следующую опцию:
Еще ниже найдем и раскомментируем опцию, отвечающую за язык по умолчанию:
В нашем случае это русский, посмотреть доступные языки и их коды можно в директории /usr/share/phpmyadmin/locale.
Теперь создадим пользователя СУБД и назначим ему необходимые права, для начала войдем в консоль MySQL (MariaDB):
и выполним там следующие команды:
Обратите внимание, что в опции IDENTIFIED BY мы должны указать тот же пароль, который был задан в controlpass конфигурационного файла.
Сбросим кеш привилегий и выйдем из консоли:
После чего создадим служебную базу данных и произведем ее начальное заполнение:
На этом установка phpMyAdmin закончена. В целях безопасности удалим служебную директорию setup:
Далее мы рассмотрим подключение утилиты к популярным веб-серверам.
Настройка Apache 2 для работы с phpMyAdmin
Создадим файл конфигурации Apache:
И внесем в него следующие директивы:
Сохраним файл и подключим конфигурацию:
Проверим конфигурацию Apache на ошибки:
И перезапустим веб-сервер:
Настройка NGINX для работы с phpMyAdmin
Будем считать, что у вас уже установлен NGINX и PHP-FPM по нашей инструкции, в противном случае вам потребуется откорректировать пути в соответствии с собственными настройками.
Создадим новый шаблон:
И внесем в него следующий текст:
Сохраним его и подключим к нужным сайтам добавим в конце их конфигурационных файлов директиву:
Проверим правильность конфигурации NGINX:
И перезапустим службы:
Как видим, установить phpMyAdmin вручную достаточно просто. Для обновления вам потребуется просто скачать архив с новой версией и распаковать поверх существующей установки, не забыв удалить потом директорию setup. В ряде случаев потребуется обновить служебную базу данных, скрипты для этого находятся в директории sql, подробности вы сможете узнать в официальной документации к новой версии.
PhpMyAdmin – это инструмент управления базами данных для MySQL, который поставляется с веб-интерфейсом. В данном руководстве будет рассмотрена установка phpMyAdmin на сервер с популярной ОС Debian 10, а также некоторые способы защиты приложения.
Подготовка к установке
Перед развертыванием самой программы следует соблюсти ряд условий. Главное из них — уже должен быть установлен программный пакет, включающий в себя стек LEMP (Linux, Nginx, MySQL и PHP).
Если эти компоненты установлены не полностью, в терминале следует выполнить команду:
По завершении установки будет отображен следующий результат:
Примечание. Установка веб-сервера и phpMyAdmin для Debian 9 производится теми же командами.
Так как phpMyAdmin использует учетные данные MySQL для защиты аутентификации, настоятельно рекомендуется установить сертификат SSL/TLS. Он даст возможность наладить передачу зашифрованного трафика между клиентом и сервером.
Добавление репозиториев для Debian 10
В официальных репозиториях Debian 10 отсутствует большинство программ, в число которых входит PhpMyAdmin.
Чтобы добавить источники для загрузки PhpMyAdmin, нужно открыть файл, содержащий списки репозиториев – «sources.list», и внести строки, отвечающие за добавление адреса (URL) до сервера.
Открыть «sources.list» в редакторе можно командой:
Нужно внести следующие строки в конец файла:
Остаётся сохранить изменения нажатием «Ctrl+X» + «Y» + «Enter».
Процесс установки phpMyAdmin
Веб-интерфейс
Первое, что следует сделать – установить веб-интерфейс phpMyAdmin на Nginx-сервер. Установка выполняется с использованием репозиториев. Следовательно, сначала нужно обновить базу пакетов командой в терминале:
Теперь можно установить phpMyAdmin на Debian, выполнив команду в терминале:
Настройка базы данных
Далее мастер установки предложит задействовать « dbconfig-common» , чтобы настроить базу данных приложения. Здесь следует выбрать «Да». Это позволит настроить внутреннюю базу данных и пользователя с привилегиями администратора для phpMyAdmin.
Создание пароля пользователя
Программа предложит создать пароль для пользователя MySQL. Всегда нужно вводить сложный и надежный пароль, способный, в случае попытки проникновения, выдержать атаку методом брутфорса (перебора паролей). Также можно предоставить программе возможность сгенерировать случайный код доступа, оставив поле пустым.
Остается подождать, пока установятся необходимые пакеты ПО.
Настройка Nginx
Чтобы PhpMyAdmin стал доступен по назначенному пользователем адресу и получил доступ к Unix-сокету PHP-FPM, нужно отредактировать конфигурационные файлы сервера Nginx.
Для начала нужно узнать информацию об установленной версии PHP. Она понадобится в следующих действиях при составлении команд. Узнать информацию о установленной версии можно, выполнив команду:
В последующий действиях потребуется использовать две цифры из установленной версии PHP.
Примечание. В примерах будет использоваться версия 7.0 .
Теперь нужно открыть конфигурационный файл Nginx в редакторе (по умолчанию — «/etc/nginx/sites-available/default»). Для этого в терминал требуется ввести следующую команду:
Если файл редактируется в первый раз, нужно найти и удалить следующие строки:
Теперь нужно найти в начале файла директиву «server
В итоге файл конфигурации должен выглядеть следующим образом:
Остаётся сохранить изменения и закрыть файл. Для этого нужно нажать «Ctrl+X» + «Y» и подтвердить сохранение нажатием «Enter».
Проверить правильность внесенных данных можно командой:
Получение следующего вывода сигнализирует о правильности внесенных корректив в конфигурационный файл.
Если вывод сервера Nginx отличается от полученного, то придётся проверить конфигурационный файл на наличие ошибок. Вполне возможно, что были допущены ошибки при расставлении скобок «>» или же Nginx заметил ошибки в секциях (повторяющиеся директивы и недопустимые значения).
Редактирование конфигурационных файлов PHP
Чтобы защита PhpMyAdmin оставалась на должном уровне, нужно добавить параметр «open_basedir», ограничивающий доступ к каталогам «/usr/share/phpmyadmin» и «/usr/share/php/php-gettext». Для этого требуется открыть конфигурационный файл пула PHP-FPM в текстовом редакторе Nano:
При составлении команды « 7.0 » нужно изменить на установленную версию PHP.
Чтобы задать параметры для PHP, нужно внести следующую строку в конец файла:
После внесения правок, нужно сохранить изменения и выйти из файла.
Остается перезапустить Nginx и PHP-FPM для применения параметров. Для этого в терминале вводится команда:
Проверка работы PhpMyAdmin
Установка phpMyAdmin завершается проверкой доступа к интерфейсу. Для этого нужно перейти по IP-адресу веб-сервера, добавив в адресной строке имя, указанное в директиве « location». По умолчанию используется «/pma»:
В случае успеха откроется окно входа PhpMyAdmin. При появлении ошибок 404, 403, 502 придётся повторно проверить файлы конфигурации и наличие всех компонентов комплекса LEMP.
Выполнение входа в PhpMyAdmin
PhpMyAdmin для защиты аутентификации использует данные пользователей MySQL. Для входа придется указать логин и пароль, используемые для подключения к консоли БД (MySQL, MariaDB).
Если учетная запись MySQL отсутствует, то выполнить создание нового пользователя можно несколькими командами. Для начала нужно подключится к оболочке MySQL и ввести в терминал:
Программа попросит пройти аутентификацию, указав пароль. Если авторизация для учетной записи root не настроена, то можно оставить поле «Enter Password» пустыми и, для подтверждения, нажать «Enter».
После входа в оболочку нужно создать учетную запись и предоставить необходимые привилегия новому пользователю. Для этого последовательно выполняются команды:
Вместо « phpadmin » нужно подставить собственный логин, а в поле « mypassword » ввести пароль для создаваемой учетной записи.
Теперь можно выполнить вход в интерфейс PhpMyAdmin, воспользовавшись данными авторизации только что созданного пользователя.
Важно! Никогда не стоит открывать phpMyAdmin как root-пользователь MySQL . Это значительно снижает безопасность. Ниже будет рассмотрен способ отключения возможности входа как root.
Ограничение доступа для входа пользователю root
Суперпользователь в MySQL, как и в Linux – это пользователь, обладающий правами администратора и неограниченным доступом ко всей базе данных. Вдобавок к этому, root является достаточно популярным логином и боты используют его чуть ли не чаще всего в процессе применения bruteforce.
Чтобы исключить подобный риск, phpMyAdmin необходимо сконфигурировать так, чтобы даже с правильными данными для входа под root пользователем панель управления выдавала ошибку «Доступ запрещен» и закрыла доступ к своему интерфейсу.
В процессе установки использовался пакет «dbconfig-common», отвечающий за настройку и сохранение опций phpMyAdmin. Следовательно, стандартная конфигурация сейчас находится в БД. Следует создать файл « config.inc.php» , в котором будут храниться собственные настройки пользователя.
Хотя все PHP-файлы для работы phpMyAdmin расположены в «/usr/share/phpmyadmin» (или уже измененной директории), система пользуется конфигурационными файлами из « /etc/phpmyadmin» . Так что новый файл создается в « /etc/phpmyadmin/conf.d» и имеет название « pma_secure.php» :
В создаваемом файле следует вставить предложенный ниже код, который позволит отключить вход без пароля (напротив AllowNoPassword указано false) и под суперпользователем (напротив AllowRoot стоит такое же значение):
Войти в панель phpMyAdmin как root теперь невозможно. Возможность подбора пароля для этого пользователя исключена. Вдобавок, код дает возможность пользоваться учетными записями MySQL с меньшими привилегиями для входа в phpMyAdmin. Что само по себе сильная мера защиты.
Установка второго шлюза аутентификации
Описанные выше меры безопасности позволяют обеспечить сильную защиту от автоматических программ для сканирования сети и ботов. Однако такая защита малоэффективна от целевого нападения.
Для повышения безопасности веб-интерфейса с ограниченным доступом, лучше всего останавливать злоумышленников до того, как они смогут найти панель. Это исключит для них возможность воспользоваться универсальными эксплойтами и атаковать при помощи bruteforce.
Поэтому стоит защитить PhpMyAdmin, добавив еще один уровень авторизации, открывающий доступ к окну входа в веб-интерфейс. Если это не сделать, у злоумышленников остается возможность применить bruteforce для попытки авторизоваться.
В большей части веб-серверов повышение безопасности таким способом доступно из коробки.
Настройка нового уровня аутентификации
Для начала, потребуется создать файл, в котором будут храниться пароли для учетных данных аутентификации. Согласно требованию Nginx, эти пароли необходимо зашифровать, используя функцию « crypt()» . Она доступна в пакете OpenSSL – он автоматически поставляется в комплекте Nginx. Можно приступать к созданию паролей, введя в терминале команду:
После ввода появится предложение создать пароль и подтвердить его. Важно учесть, что максимальная длина пароля – 10 символов. Далее программа покажет этот пароль, уже в зашифрованном виде:
Это значение необходимо скопировать в надежное место или лучше записать на бумаге. Оно понадобится для вставки в файл аутентификации.
Приступим к созданию самого файла. Для примера, его можно назвать «pma_pass» и расположить в папке с конфигурационным файлом Nginx:
Здесь потребуется вписать строку с именем пользователя, используемого для аутентификации. За ним ставится двоеточие и добавляется сгенерированный пароль с помощью « openssl passwd» . Назовем нашего пользователя «admin», следовательно, результат должен выглядеть таким образом:
Можно сохранять изменения и переходить к следующему шагу – изменить файл с конфигурациями Nginx. Чтобы внести правки, его нужно открыть в текстовом редакторе:
Здесь понадобится найти блок «server» и секцию «location». В данном примере указанное местоположение phpMyAdmin относительно корня сети – « /pma» :
Для запуска второго шлюза аутентификации нужно внести под секцию «location» следующие строки:
Измененная секция в итоге должна выглядеть таким образом:
После сохранения изменений и выхода из редактора не лишним будет проверить, правильно ли выполнена настройка. В терминале это можно сделать командой:
Если все правильно, вывод будет следующего вида:
Остается перезапустить Nginx для применения параметров:
Можно попытаться снова открыть веб-адрес phpMyAdmin. Однако, в этом случае браузер сделает запрос на ввод логина и пароля, сохраненных в « pma_pass » :
Если пользователь выполнит успешный вход, он получит возможность авторизоваться непосредственно в phpMyAdmin.
Важно! Если при проверке второй шлюз отсутствует, в браузере следует выполнить очистку кэша или перейти в новый сеанс браузера (если в текущий момент выполнен вход в phpMyAdmin).
Дополнительным преимуществом такой защиты является возможность сохранить чистыми журналы MySQL от попыток аутентификации ботами.
Следующим действием настоятельно рекомендуется установить сертификат SSL/TLS. Он даст возможность наладить передачу зашифрованного трафика между клиентом и сервером.
Читайте также: