Как установить phpmyadmin на ubuntu nginx

Обновлено: 02.07.2024

Многим сайтам необходима база данных типа MySQL, однако интерфейс командной строки СУБД не очень дружественный и понятный, особенно для новичков.

Интерфейс phpMyAdmin был разработан, чтобы устранить эту проблему. Это альтернативный веб-интерфейс для работы с СУБД. В данном мануале речь пойдёт об установке и защите phpMyAdmin на сервере Ubuntu 18.04. В качестве веб-сервера используется Nginx – производительный сервер, способный обрабатывать большие нагрузки.

Требования

  • Сервер Ubuntu 18.04, настроенный по этому мануалу. Обязательно нужен пользователь с доступом к sudo.
  • Предварительно установленный сервер LEMP (Linux, Nginx, MySQL и PHP). Все необходимые инструкции вы найдете в мануале Установка стека LEMP в Ubuntu 18.04. Обязательно запишите или запомните пароль администратора MySQL.

Примечание: Если у вас нет SSL/TLS-сертификата, но вы хотите выполнить этот мануал, пожалуйста, рассмотрите варианты использования SSH-туннеля (об этом поговорим в разделе 5).

1: Установка phpMyAdmin

Предварительно установив платформу LEMP, можно сразу приступать к инсталляции phpMyAdmin. Пакеты этой программы можно найти в стандартных репозиториях Ubuntu.

Сначала обновите индекс пакетов системы.

sudo apt update

Затем используйте инструмент apt, чтобы загрузить пакеты из репозитория и установить их:

sudo apt install phpmyadmin

Затем программа спросит, нужно ли настроить базу данных для phpMyAdmin при помощи dbconfig-common. Выберите Yes, чтобы продолжить. Это создаст внутреннюю БД и администратора для phpMyAdmin. Теперь нужно ввести пароль для пользователя MySQL по имени phpmyadmin. Если вы оставите это поле пустым, phpMyAdmin создаст случайный пароль.

Установка phpMyAdmin завершена. Чтобы Nginx мог найти и корректно обработать файлы phpMyAdmin, нужно создать симлинк на каталог document root сервера Nginx:

sudo ln -s /usr/share/phpmyadmin /var/www/html

Теперь phpMyAdmin полностью готов к работе. Чтобы открыть интерфейс, введите в браузер доменное имя или внешний IP-адрес и /phpmyadmin:

На экране появится стандартная страница входа phpMyAdmin.

Как говорилось ранее, phpMyAdmin обрабатывает аутентификацию по учетным данным MySQL: вам нужно использовать то же имя пользователя и пароль, которые вы используете при доступе к БД через консоль или API. Чтобы войти, используйте учётные данные пользователя MySQL.

На этом этапе установка phpMyAdmin полностью готова к работе. Однако установка веб-интерфейса открыла публичный доступ к MySQL, а это серьёзный риск для безопасности сервера. Из-за большой популярности phpMyAdmin и объемов данных, к которым он имеет доступ, подобные установки часто становятся целью злоумышленников.

Далее мы рассмотрим несколько разных способов, которые помогут сделать установку phpMyAdmin более безопасной.

2: Изменение стандартного расположения phpMyAdmin

Один из основных способов защитить установку phpMyAdmin – усложнить ее поиск. Боты будут искать общие, стандартные пути: phpmyadmin, pma, admin, mysql и тому подобное. Замена стандартного URL-адреса интерфейса /phpmyadmin каким-то более сложным, неочевидным вариантом усложнит автоматизированный поиск установки и предотвратит brute-force атаки.

Ранее вы создали симлинк в /usr/share/phpmyadmin, чтобы веб-сервер Nginx находил и обслуживал файлы phpMyAdmin. Чтобы изменить URL-адрес интерфейса phpMyAdmin, нужно переименовать этот симлинк.

Перейдите в корневой каталог Nginx и просмотрите, какие файлы в нем есть (чтобы лучше понимать, как именно можно изменить расположение):

cd /var/www/html/
ls -l

Вы получите такой вывод:

total 8
-rw-r--r-- 1 root root 612 Apr 8 13:30 index.nginx-debian.html
lrwxrwxrwx 1 root root 21 Apr 8 15:36 phpmyadmin -> /usr/share/phpmyadmin

Вывод сообщает, что в этом каталоге есть симлинк phpmyadmin. Измените имя этой ссылки; это изменит расположение phpMyAdmin, по которому его можно найти в браузере, благодаря чему автоматизированные боты для взлома не смогут получить к нему доступ.

Выберите нестандартное имя, которое не описывает цели; для примера в этом мануале это место называется /nothingtosee. Переименуйте ссылку:

sudo mv phpmyadmin nothingtosee
ls -l

Теперь вы получите:

total 8
-rw-r--r-- 1 root root 612 Apr 8 13:30 index.nginx-debian.html
lrwxrwxrwx 1 root root 21 Apr 8 15:36 nothingtosee -> /usr/share/phpmyadmin

Убедитесь, что старый URL не работает:

Интерфейс phpMyAdmin должен быть доступен по другому URL-адресу.

3: Отключение root-логина

В MySQL, как и в обычных системах Linux, root является специальной учетной записью администратора с неограниченным доступом к системе. Этот пользователь является очевидной целью для brute-force атак. Чтобы минимизировать риски, нужно заблокировать в phpMyAdmin любые попытки входа в систему с помощью этого пользователя. То есть даже если вы предоставите действительные учетные данные пользователя root, вы все равно получите ошибку «access denied» и не сможете войти в систему.

Поскольку ранее мы решили использовать dbconfig-common для настройки и хранения параметров phpMyAdmin, конфигурация по умолчанию в настоящее время хранится в базе данных. Сейчас нужно будет создать новый файл config.inc.php для определения пользовательских настроек.

Хотя файлы PHP для phpMyAdmin находятся в /usr/share/phpmyadmin, приложение использует конфигурационные файлы, расположенные в /etc/phpmyadmin. Создайте новый файл пользовательских настроек в /etc/phpmyadmin/conf.d и назовите его pma_secure.php:

sudo nano /etc/phpmyadmin/conf.d/pma_secure.php

Этот файл содержит все необходимые параметры, которые отключают беспарольный вход (AllowNoPassword имеет значение false) и root-логин (AllowRoot со значением false):

Сохраните файл, когда вы закончите редактирование: нажмите Ctrl+X, затем y, чтобы подтвердить изменения, и Enter. Изменения вступят в силу автоматически. Если вы сейчас перезагрузите страницу входа и попытаетесь войти в систему как пользователь root, вы получите ошибку «Access Denied».

Теперь в вашей установке phpMyAdmin пользователю root запрещен вход в систему. Эта мера безопасности блокирует попытки brute-force сценариев угадать пароль root на вашем сервере. Более того, теперь для доступа к веб-интерфейсу phpMyAdmin можно использовать только учетные записи MySQL с пониженными привилегиями, что само по себе является важной мерой безопасности.

4: Настройка шлюза авторизации Nginx

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

Конкретно в случае phpMyAdmin держать интерфейс входа в систему заблокированным очень важно. Оставляя его открытым для всех, вы привлечете толпы злоумышленников, и кто-то рано или поздно сможет подобрать ваши учетные данные.

Потому сейчас нужно создать страницу авторизации сервера, которую необходимо будет пройти, чтобы получить доступ к самой странице входа в PhpMyAdmin.

Сначала нужно создать файл паролей pma_pass для хранения учётных данных. Nginx требует, чтобы пароль был зашифрован при помощи функции crypt().

Криптографический пакет OpenSSL, который должен быть установлен на сервере, предоставляет эту функциональность.

Чтобы создать зашифрованный пароль, введите:

Затем укажите и подтвердите пароль, после чего утилита выведет на экран его зашифрованную версию, которая будет иметь примерно такой вид:

Скопируйте это значение и вставьте его в файл паролей.

Чтобы создать файл паролей, используйте следующую команду (файл будет называться pma_pass и находиться в конфигурационном каталоге Nginx):

sudo nano /etc/nginx/pma_pass

В этом файле нужно указать имя пользователя и зашифрованный при помощи openssl пароль, который будут использоваться для входа в phpMyAdmin, разделив их символом двоеточия.

К примеру, если пользователя зовут demo, то файл будет выглядеть так:

Примечание: Ни в коем случае не используйте такое имя – его очень легко угадать.

Сохраните и закройте файл.

Теперь можно отредактировать конфигурационный файл Nginx. Откройте его в текстовом редакторе:

sudo nano /etc/nginx/sites-available/default

В этот файл нужно внести новый раздел location для phpMyAdmin (в данном случае это /nothingtosee).

Создайте блок location в блоке server (и вне других блоков) и укажите в нём место установки:

В результате блок имеет такой вид:

server . . .
location / nothingtosee auth_basic " Admin Login ";
auth_basic_user_file /etc/nginx/pma_pass ;
>
. . .
>

Сохраните и закройте файл. Проверьте ошибки в нем:

Команда должна вернуть:

nginx: the configuration file /etc/nginx/nginx.conf syntax is ok
nginx: configuration file /etc/nginx/nginx.conf test is successful

Теперь нужно перезапустить веб-сервер, чтобы активировать шлюз авторизации.

sudo systemctl reload nginx

Если посетить phpMyAdmin в веб-браузере, будет запрошено имя пользователя и пароль, внесённые в файл pma_pass.

Примечание: Если страница не появляется после обновления браузера, попробуйте очистить кэш или открыть ее в другом браузере.

Получив учётные данные, браузер откроет страницу входа в phpMyAdmin. Это создаёт дополнительный уровень безопасности и сохранит логи MySQL в чистоте (в них не будет сотен записей о неудачных попытках входа).

5: Настройка доступа по зашифрованному туннелю (опционально)

Для повышения безопасности можно заблокировать установку phpMyAdmin для всех, кроме авторизованных хостов. Вы можете внести доверенные хосты в белый список (в файле конфигурации Nginx), и любой запрос, поступающий с IP-адреса, которого нет в списке, будет отклонен.

Хотя в некоторых случаях одной этой функции может быть достаточно, она не всегда является лучшим решением в долгосрочной перспективе. Главным образом это из-за того, что большинство людей получают доступ к Интернету не со статических IP-адресов. Как только вы получите новый IP-адрес от вашего интернет-провайдера, вы не сможете получить доступ к интерфейсу phpMyAdmin, пока не обновите файл конфигурации Nginx и не укажете новый IP-адрес.

Более надежным долгосрочным решением является управление доступом на основе IP: пользователи будут иметь доступ к интерфейсу phpMyAdmin, только если они используют авторизованный IP-адрес или входят с локального хоста через SSH-туннелирование. Здесь мы расскажем, как настроить такой туннель.

Сочетая управления доступом на основе IP с туннелированием SSH, вы значительно повышаете безопасность сервера, поскольку это полностью блокирует общий доступ из Интернета (за исключением авторизованных IP-адресов). Кроме того, этот метод обеспечивает безопасный канал между пользователем и сервером посредством зашифрованных туннелей.

Настройка доступа по IP

В Nginx управление доступом на основе IP можно определить в соответствующем блоке location данного сайта с помощью директив allow и deny. Например, если вы хотите разрешить только запросы, поступающие с определенного хоста, вы должны включить в соответствующий блок location вашего сайта следующие две строки в указанном порядке:

allow hostname_or_IP;
deny all;

Вы можете добавить необходимое количество хостов, для этого вам нужно только добавить строку allow для каждого авторизованного хоста или IP в соответствующий блок location. Директивы будут оцениваться в том же порядке, в котором они перечислены в файле, пока веб-сервер не найдет нужный адрес. Если этого не случится, запрос будет отклонен из-за директивы deny all.

В выводе вы получите IP-адрес:

Откройте файл Nginx:

Вот так должна выглядеть конфигурация phpMyAdmin Nginx после того, как вы закончите редактирование:

Вместо nothingtosee нужно указать расположение вашей установки phpMyAdmin, а условный IP-адрес нужно заменить вашим текущим внешним IP.

Сохраните и закройте файл. Убедитесь, что конфигурация валидная:

Если ошибок нет, команда вернет:

nginx: the configuration file /etc/nginx/nginx.conf syntax is ok
nginx: configuration file /etc/nginx/nginx.conf test is successful

Теперь перезапустите веб-сервер:

sudo systemctl reload nginx

Поскольку ваш IP-адрес явно указан в качестве авторизованного хоста, вы не потеряете доступ. Любой, кто попытается получить доступ к вашей установке phpMyAdmin, теперь получит ошибку 403 (Forbidden). Чтобы убедиться в этом, откройте вашу страницу в браузере:

В следующем разделе мы расскажем, как использовать SSH-туннелирование для доступа к веб-серверу через локальные запросы. Таким образом вы все равно сможете получить доступ к интерфейсу phpMyAdmin даже после изменения вашего IP-адреса.

Доступ к phpMyAdmin по SSH-туннелю

Туннелирование SSH – это способ перенаправления сетевого трафика через зашифрованные каналы. Команда ssh, которую вы использовали бы для входа на сервер, может создать безопасный «туннель» между вашей локальной машиной и удаленным сервером. Весь трафик, поступающий на данный локальный порт, теперь будет перенаправлен через зашифрованный туннель, а удаленный сервер будет работать в качестве прокси-сервера, прежде чем выйти в Интернет. Это похоже на то, что происходит при использовании VPN (виртуальной частной сети), однако SSH-туннелирование гораздо проще настроить.

Поскольку трафик между локальной машиной и удаленным веб-сервером будет зашифрован, этот метод очень хорошо подходит для серверов phpMyAdmin, у которых нет сертификатов SSL/TLS.

На локальной машине запустите эту команду, чтобы получить доступ к phpMyAdmin:

ssh user@server_domain_or_IP -L 8000:localhost:80 -L 8443:localhost:443 -N

Команда состоит из таких элементов:

Примечание: Эта команда блокирует терминал до тех пор, пока не будет прервана комбинацией клавиш Ctrl+C, в этом случае она прервет соединение SSH и прекратит перенаправление пакетов. Если вы хотите запускать эту команду в фоновом режиме, вы можете использовать опцию -f.

Перезапустите Nginx с помощью команды sudo systemctl reload nginx. После этого установка phpMyAdmin будет доступна только по SSH-туннелю.

Заключение

Теперь можно управлять MySQL при помощи надёжного и относительно безопасного интерфейса. Он предоставляет основные функции, доступные из командной строки MySQL: пользователь может просматривать базы данных, схемы, создавать запросы и новые наборы и структуры данных.

Чтобы установить PhpMyAdmin на Ubuntu 18.04, нужно подготовить стек программ LEMP, состоящий из веб-сервера Nginx, системы управления базами данных MySQL и языка программирования PHP. В репозиториях Ubuntu Linux есть всё необходимое. Достаточно лишь выполнить несколько команд.

Перед тем как начать установку, рекомендуется обновить список пакетов в репозиториях. Для этого в терминале требуется ввести команду:

Установка phpMyAdmin

Установка PhpMyAdmin выполняется следующей командой:

В процессе установки появится окно, предлагающее выбор сервера. Поскольку производится установка на сервер Nginx, достаточно нажать «TAB» и «ОК», оставив поля «< >» пустыми.

Установка phpMyAdmin

Следующим появится окно настройки пакета «dbconfig-common». Рекомендуется выбрать «Yes» (Да). Программа создаст базу данных в MySQL со служебной информацией.

Установка phpMyAdmin

Далее инсталлятор предложит пользователю создать пароль. Если оставить поле пустым, то программа самостоятельно сгенерирует случайный код.

Установка phpMyAdmin

Настройка MySQL

Предназначение PhpMyAdmin – управление базами данных MySQL. Поэтому работа PhpMyAdmin и MySQL тесно взаимосвязана.

Для аутентификации в веб-интерфейсе PhpMyAdmin используются данные пользователей MySQL, поэтому важно создать учётную запись MySQL и предоставить привилегии уровня «ALL PRIVILEGES».

Важно. Раздел статьи можно пропустить, если пользователь уже создан и имеет все необходимые привилегии.

Перед тем как выполнить создание нового пользователя нужно открыть оболочку MySQL следующей командой:

Чтобы создать учетную запись в MySQL с необходимыми привилегиями, нужно поочередно выполнить следующие команды в терминале:

Вместо «phpadmin» можно подставить собственный логин, а в поле «mypassword» — ввести собственный пароль.

Выйти из оболочки MySQL можно командой:

Настройка Nginx

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

Получение информации о PHP

Перед тем как вносить параметры в файлы конфигурации нужно узнать наименование файла Unix сокета. Если этот параметр будет указан неверно, то, переходя на страницу веб-интерфейса PhpMyAdmin будет появляться ошибка 502.

Узнать название файла можно, выполнив последовательно пару команд:

Вывод будет следующим:

Получение информации о PHP

В примере «php7.4-fpm.sock» – необходимый файл Unix сокета.

Примечание. Название файла зависит от установленной версии PHP («php7.0-fpm.sock», «php7.2-fpm.sock» и т.д).

Создание конфига Nginx

Чтобы запустить PhpMyAdmin, нужно создать файл, в котором будет находиться конфигурация Nginx. Делается это командой:

В созданный файл вносятся следующие строки:

В данном примере важны следующие параметры:

После внесения кода, требуется сохранить файл. Если используется текстовой реактор Nano, то изменения применяются сочетанием клавиш «CTRL+X», далее следует нажатие «Y» и «Enter».

Теперь нужно удалить файл конфигурации Nginx по умолчанию — «default», и перенести созданный конфиг «phpmyadmin.conf» на его место:

Убедиться в отсутствии синтаксических ошибок можно командой:

Если получен следующий вывод, то всё в порядке:

Создание конфига Nginx

Примечание. Если вывод Nginx отличается от полученного, значит при написании конфига были обнаружены ошибки. Возможно были допущены ошибки при расставлении скобок «>»

После выполнения предыдущих действий необходим перезапуск сервера Nginx для применения параметров. Выполняется перезагрузка командой:

Убедиться в правильности работы Nginx можно, выполнив команду:

Должен появиться следующий вывод:

Создание конфига Nginx

Теперь следует проверить доступ к интерфейсу. Для этого нужно ввести в строке браузера IP-адрес, добавив «/phpmyadmin». Выглядеть результат должен следующим образом:

Теперь войти возможно, указав логин и пароль, использованные для подключения к консоли. Установку можно считать завершенной.

Однако, нужно учитывать тот факт, что теперь PhpMyAdmin присутствует в открытом доступе, а защита сервера находится на самом низком уровне. Нужно предпринять ряд шагов, которые обеспечат безопасность.

Смена стандартного местоположения PhpMyAdmin

Обычно программа находится по адресу «/phpmyadmin», «/pma», «/admin», «/mysql». Если оставить PhpMyAdmin в стандартном расположении, то злоумышленники могут использовать программы, взламывающие пароль методом брутфорса (перебора).

Чтобы обеспечить должную безопасность, нужно указать уникальный путь, защитив базу данных от проникновения.

Для этого нужно открыть, созданный в предыдущих действиях, конфигурационный файл «phpmyadmin.conf» и найти строку «location /phpmyadmin

Смена стандартного местоположения PhpMyAdmin

При изменении слова «phpmyadmin» на нестандартное, меняется веб-адрес, а следовательно боты не смогут найти программу. К примеру, обозначим адресом PhpMyAdmin слово «ubuntu»:

Примечание. Вместо «ubuntu» нужно подставить свое наименование адреса к веб-интерфейсу PhpMyAdmin.

Теперь нужно сохранить изменения в файле и перезагрузить сервер Nginx следующей командой:

При попытке открыть в веб-браузере старый адрес, появится ошибка 404 (не найдено):

Теперь открыть страницу возможно только по новому адресу:

Установка ограничения root доступа

Учётная запись root даёт не только особые привилегия пользователям, но и является уязвимостью, играющей на руку злоумышленнику. С изменением адреса PhpMyAdmin была устранена уязвимость в безопасности для автоматизированных программ, но всегда стоит минимизировать риски и защититься от других видов атак на сервер.

Для обеспечения защиты PhpMyAdmin придётся ввести ограничение root прав программе. Для этого нужно создать файл конфигурации по адресу:

В созданный файл необходимо вставить следующий код:

В данном примере важны следующие параметры:

  • АllowNoPassword – вход без пароля (false – отключен);
  • AllowRoot – вход с учётной записи root пользователя (false – отключен).

Как только файл будет сохранен, изменения вступят в силу. При попытке выполнить вход из учётной записи суперпользователя, появится ошибка — «Access Denied» (Доступ запрещен).

Настройка доступа по IP

Еще один способ защитить PhpMyAdmin — предоставить или запретить доступ к веб-интерфейсу определенным хостам на уровне сервера Nginx. Это позволит ограничить доступ всем, кроме некоторых IP-адресов, или направленно заблокировать нежелательные, вредоносные хосты.

Предоставление доступа определенным хостам

В Nginx предусмотрена функция управления доступом на основе IP. Настройка хостов производится в блоке location PhpMyAdmin, с помощью переменных «allow» (разрешить) и «deny» (запретить). Если нужно разрешить запросы только с данного хоста, то достаточно внести эти строки:

В примере переменная «XXX.XXX.XXX.XXX» — разрешенный публичный IP-адрес.

Выводом будет обычный IP адрес.

В принципе, разрешить доступ можно со скольких угодно хостов, создав «белый список». Параметр «deny all», наоборот блокирует все хосты, кроме разрешенных.

Примечание. При изменении сети или использовании VPN, публичный IP-адрес меняется. Важно вписать все возможные адреса хостов, с которых ожидается вход в PhpMyAdmin. В противном случае можно потерять доступ к веб-интерфейсу.

Чтобы начать настройку, нужно открыть файл конфигурации:

Параметры вносятся примерным образом:

Настройка доступа по IP

Для вступлений изменений в силу, требуется перезапустить процесс сервера Nginx:

Ограничение доступа определенным хостам

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

В приведенном случае «XXX.XXX.XXX.XXX» — запрещённый публичный IP-адрес.

Можно использовать любое число директив «deny», если нужно запретить доступ нескольким хостам.

Чтобы начать настройку, нужно открыть файл конфигурации:

И внести параметры примерно подобным образом:

Настройка доступа по IP

Для вступлений изменений в силу, требуется перезапустить процесс сервера Nginx:

После данной настройки все неразрешенные хосты будут отклоняться, получая ошибку 403.

PhpMyAdmin - это веб-приложение с открытым исходным кодом, написанное на языке программирования PHP и представляющее собой веб-интерфейс для администрирования СУБД MySQL. Главной особенностью данного приложения является возможность управления MySQL без непосредственного ввода SQL команд. Приложение позволяет создавать и редактировать таблицы, вносить в них данные, администрировать пользователей баз данных, а также экспортировать и импортировать записи и структуру таблиц из базы данных.

В этой статье мы рассмотрим, как выполняется установка phpMyAdmin на Ubuntu 20.04 с веб-сервером Nginx. Прежде чем приступать к установке phpMyAdmin, у вас уже заранее должны быть установлены такие компоненты, как Nginx, MariaDB или MySQL и PHP. Если ещё нет, то сначала посмотрите статьи про установку Nginx c PHP-FPM и статью по установке MySQL

Установка phpMyAdmin в Ubuntu 20.04

1. Установка нужных компонентов

Прежде чем мы сможем установить phpMyAdmin на Ubuntu, необходимо убедиться, что у вас установлен сам интерпретатор языка программирования PHP и необходимые расширения для PHP. Для установки всех необходимых пакетов выполните в терминале команду:

sudo apt -y install php7.4 php7.4-cli php7.4-fpm php7.4-json php7.4-pdo php7.4-mysql php7.4-zip php7.4-gd php7.4-mbstring php7.4-curl php7.4-xml php-pear php7.4-bcmath

mHePZbc47uAAAAAASUVORK5CYII=

На момент написания статьи (1 августа 2021) актуальной версией PHP в официальных репозиториях Ubuntu считалась версия 7.4. Самая же последняя официальная версия PHP от разработчиков 8.0.9 (по состоянию на 29 июля 2021 года).

2. Установка phpMyAdmin

Теперь можно установить сам пакет phpMyAdmin при помощи команды:

sudo apt -y install phpmyadmin

Установщик спросит вас, какой веб-сервер будет использоваться для работы программы. Так как веб-сервер Nginx отсутствует в списке, в таком случае отмечать ничего не надо. Нажмите на клавишу Tab далее на Enter чтобы продолжить установку:

Io2OAAAAABJRU5ErkJggg==

Далее установщик предложит создать базу данных для phpMyAdmin, в которой будет находиться служебная информация программы и необходимые настройки, необходимо согласиться выбрав пункт Yes:

38SocTfbmRABQAAAABJRU5ErkJggg==

На следующем этапе необходимо придумать пароль для пользователя phpmyadmin, который будет использоваться программой для доступа к собственной базе данных:

zXBr2cA71mQASEyr7MGMhzdDsbGQdAxVAoyP69w+iMFL5OIwhnQAAAABJRU5ErkJggg==

Далее программа попросит вас повторить заданный ранее пароль:

yCQ4oXc1PdNOXBxIeZUUWgqRteXvwXT6xsgLs8V9gAAAAASUVORK5CYII=

После этого установка phpMyAdmin в Ubuntu завершена.

3. Настройка PhpMyAdmin в Nginx с помощью символической ссылки

Для того чтобы Nginx смог правильно открыть phpMyAdmin, необходимо выполнить следующие действия. Для начало настройте PHP-FPM для обслуживания веб-приложений или сайтов на основе PHP в файле конфигурации /etc/php/7.4/fpm/php.ini.

sudo nano /etc/php/7.4/fpm/php.ini

Найдите пункт cgi.fix_pathinfo = 1 и измените его значение на 0 чтобы получилось cgi.fix_pathinfo = 0:

xcnaHw2lFU8ZwAAAABJRU5ErkJggg==

Для получения доступа к веб-интерфейсу phpMyAdmin, необходимо создать символическую ссылку на каталог с файлами PhpMyAdmin в каталог вашего веб-сервера. По умолчанию в Ubuntu веб-сервер получает файлы из /var/www/html. Для этого используйте команду:

sudo ln -s /usr/share/phpmyadmin /var/www/html/phpmyadmin

Поскольку индексный файл phpMyAdmin имеет расширение .php, убедитесь, что вы добавили его в список индексных файлов, в файле конфигурации сервера или виртуального хоста. Например, файле default который находится по пути /etc/nginx/sites-available/default или /etc/nginx/conf.d/ открыв файл в любом текстовом редакторе:

sudo nano /etc/nginx/sites-available/default


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

sudo systemctl restart nginx

После выполнения данных действий, phpMyAdmin будет доступен по адресу ip_вашего_сервера/phpmyadmin. Вы можете проверить, всё ли работает, просто открыв этот адрес в браузере:

HeeckAAAAASUVORK5CYII=

4. Настройка Nginx для PhpMyAdmin с помощью root

Это альтернативный способ настройки Nginx. Для его работы вам достаточно добавить код ниже в конфигурацию любого виртуального хоста. Например, того же /etc/nginx/sites-enabled/default:

sudo nano /etc/nginx/sites-enabled/default

Для location /phpmyadmin устанавливается корневая папка /usr/share где находятся файлы PhpMyAdmin. Этот способ использовать предпочтительнее, поскольку именно с ним вы сможете настроить авторизацию. После внесения изменений проверьте конфигурацию Nginx и перезапустите веб-сервер:

sudo systemctl restart nginx

5. Настройка Nginx для PhpMyadmin с помощью alias

Если вы хотите задать для PhpMyAdmin свой путь, предыдущий вариант работать не будет. Но вы можете использовать другой вариант конфигурации, основанный на директиве alias:

sudo nano /etc/nginx/sites-available/default

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

6. Создание пользователя для phpMyAdmin

По умолчанию, вы не сможете авторизоваться в phpMyAdmin от пользователя root, потому что данная особенность отключена. В целях безопасности включать данную опцию не рекомендуется. В данном случае необходимо создать нового пользователя и наделить его полномочиями root. Для создания нового пользователя перейдите в консоль MySQL введя команду в терминале:

sudo mysql -u root -p

После ввода пароля root пользователя MySQL, введите следующие команды:

CREATE USER 'test'@'localhost' IDENTIFIED BY 'пароль';

GRANT ALL PRIVILEGES ON *.* TO 'test'@'localhost';

При помощи первых двух команд был создан новый пользователь с именем test, ему был присвоен пароль и предоставлены все возможные привилегии (такие как создание, удаление, редактирование баз данных, таблиц и т.д.). Третья команда обновляет заданные ранее привилегии.

69I1UrJbwAAAAASUVORK5CYII https://losst.ru/wp-content/uploads/2021/08/ustanovka-phpmyadmin-s-nginx-v-ubuntu-20.04-11.jpg
AeTH1WMtAt4KAAAAAElFTkSuQmCC

7. Защита phpMyAdmin

Если phpMyAdmin установлен на производственном сервере, который доступен из сети, то его необходимо обезопасить, добавив авторизацию.

Чтобы добавить аутентификацию, необходимо создать файл для хранения учетных записей, которые будут использоваться для аутентификации. В Nginx пароли шифруются при помощи встроенной функции crypt. Для шифрования паролей будет использоваться пакет OpenSSL, который уже должен быть установлен на вашем сервере. Для проверки на наличии данной программы введите в терминале команду openssl:

lMkdERaHRNWPp+MV2HTJSF0rlscOWGeopiH6aN8FsURvrZ+eDpXYzYQLcPDIL1QAx+FNS5vJfC0URl6Sv9vsLHMzWbPqCFLDLTC8Y1IsNM0tkw9k6IbqVCCcN3X5vYPy7NDaMcWeiEznFV58KSb2lQvmVKKk9XeAlJ7pSNGH77P5F8dkS7B8eYAAAAAElFTkSuQmCC

Если пакет у вас присутствует, то приглашение командной строки изменится на OpenSSL. Если пакет у вас отсутствует, установите его при помощи команды:

sudo apt -y install openssl

Для создания зашифрованного пароля введи в терминале команду:

8CEspEja0B6z8AAAAASUVORK5CYII=

На первом этапе вам будет предложено придумать и ввести пароль. После его ввода его необходимо ввести еще раз. Далее утилита отобразит зашифрованную версию пароля. Скопируйте значение, которое получилось на выходе, так как оно будет использоваться далее. Теперь создайте файл аутентификации. Для примера назовем этот файл pma_pass и поместим его в каталог конфигурации Nginx:

sudo nano /etc/nginx/pma_pass

В этом файле укажите имя пользователя, которое будет использоваться для аутентификации, далее поставьте символ двоеточие (:), и вставьте зашифрованную версию пароля, которую вы получили на выходе от команды openssl passwd. В итоге файл должен быть приведен к следующему виду:

wt8TtjDYQQB9QAAAABJRU5ErkJggg==

Здесь test1 это имя пользователя, которое будет использоваться для аутентификации, а avltQWsa5wSSw – зашифрованный пароль который вы получили от команды openssl passwd.

Сохраните и закройте файл. Теперь необходимо прописать настройки аутентификации. В качестве настройки будет использовать конфигурационный файл по умолчанию, который находиться в /etc/nginx/sites-available. Откройте данный файл для редактирования при помощи любого текстового редактора:

sudo nano /etc/nginx/sites-available/default

Найдите директиву server и в нем блок location, который вы создали для PhpMyAdmin на шаге 4 или 5 и добавьте в него такие строчки:

auth_basic "Admin Login";
auth_basic_user_file /etc/nginx/pma_pass;


Всегда, как только вы внесли какие-либо изменения в конфигурационные файлы Nginx, запускайте команду для проверки файлов на наличие ошибок:

Если в выводе команды отобразились следующие строчки:

x9VibUsG1t8kgAAAABJRU5ErkJggg==

Это означает что ошибок нет. В противном случае будет выведен текст с ошибкой, а также указан номер строки, в которой была обнаружена ошибка. Далее перезапустите веб-сервер nginx:

sudo systemctl restart nginx

После перезапуска перейдите по адресу ip адрес/имя сервера/phpMyAdmin и вы увидите окно с авторизацией, где необходимо ввести ранее созданный логин и пароль:

8DLiK2JxgnwUcAAAAASUVORK5CYII=

Как удалить phpMyAdmin с Ubuntu

Чтобы удалить phpMyAdmin, необходимо выполнить команду:

sudo apt purge phpmyadmin

Команда purge позволяет удалить не только пакеты, но и их конфигурационные файлы. Если вы хотите оставить конфигурационные файлы, используйте команду remove.

Выводы

В этой небольшой статье мы рассмотрели, как выполняется установка и настройка phpMyAdmin в операционной системе Ubuntu 20.04. Как видите, всё стало намного проще, чем в предыдущих версиях, когда нам нужно было вручную включать различные модули и настраивать местоположение файлов программы.

Нет похожих записей


Статья распространяется под лицензией Creative Commons ShareAlike 4.0 при копировании материала ссылка на источник обязательна.

How to Install phpMyAdmin with Nginx on Ubuntu 18.04

В этом руководстве описывается, как установить phpMyAdmin с Nginx в Ubuntu 18.04.

Как установить phpMyAdmin с Nginx в Ubuntu 18.04

phpMyAdmin - это инструмент на основе PHP с открытым исходным кодом для управления серверами MySQL и MariaDB через веб-интерфейс.

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

Прежде, чем вы приступите

Прежде чем продолжить изучение этого руководства, убедитесь, что вы выполнили следующие предварительные требования:

  • LEMP (Linux, Nginx, MySQL и PHP 7) установлен на вашем сервере Ubuntu.
  • Вы вошли в систему как пользователь с привилегиями sudo .

Установка phpMyAdmin в Ubuntu

Установить phpMyAdmin - довольно простая задача. Начните с обновления списка пакетов:


Затем выполните следующую команду, чтобы установить пакет phpMyAdmin из репозиториев Ubuntu по умолчанию:


Перед установкой phpMyAdmin убедитесь, что в вашей системе установлены Nginx и PHP FPM.

Установщик попросит вас выбрать веб-сервер, который должен быть автоматически настроен для запуска phpMyAdmin. Нет возможности выбрать Nginx, нажмите, TAB чтобы выбрать, OK а затем Enter . Мы настроим Nginx в следующем разделе.

настройка веб-сервера phpmyadmin


Затем установщик спросит вас, хотите ли вы использовать dbconfig-common инструмент для настройки базы данных. Выберите Yes и нажмите Enter .

настройка базы данных phpmyadmin


Введите пароль для регистрации phpMyAdmin в базе данных, выберите OK и нажмите Enter .

настройка пароля phpmyadmin


Вам будет предложено подтвердить пароль, ввести тот же пароль, выбрать OK и нажать Enter .

настройка phpmyadmin подтвердить пароль


На этом этапе phpMyAdmin установлен на вашем сервере Ubuntu.

Создать администратора MySQL

В системах Ubuntu с MySQL 5.7 (и более поздних версий) пользователь root auth_socket по умолчанию настроен на использование метода аутентификации.

В auth_socket плагин проверяет подлинность пользователей , которые подключаются с локального через файл сокета Unix. Это означает, что вы не можете пройти аутентификацию как root, указав пароль.

Вместо изменения метода аутентификации для корневого пользователя MySQL мы создадим нового административного пользователя MySQL. Этот пользователь будет иметь те же привилегии, что и пользователь root, и будет настроен на использование mysql_native_password метода аутентификации.

Мы будем использовать этого пользователя для входа в панель управления phpMyAdmin и выполнения административных задач на нашем сервере MySQL.

Начните с входа на сервер MySQL в качестве пользователя root:


Из оболочки MySQL выполните следующие команды, которые создадут нового административного пользователя и предоставят соответствующие разрешения:


В этом примере мы назвали пользователя с правами администратора padmin . Вы можете использовать любое имя, только не забудьте установить надежный пароль.

Настройка Nginx и phpMyAdmin

Есть несколько способов настроить Nginx для обслуживания файлов phpMyAdmin. Если серверный блок вашего домена уже настроен для обслуживания запросов PHP, вы можете просто создать символическую ссылку из установочных файлов phpMyAdmin в корневой каталог документов вашего домена.

В этом руководстве мы создадим фрагмент, который можно будет включить в любой из файлов блоков нашего сервера Nginx.

Откройте текстовый редактор и создайте следующий файл:


Вставьте следующий контент:

Убедитесь, что вы используете правильный путь к сокету или адрес / порт для fastcgi_pass директивы.

Сохраните файл и закройте редактор.

Доступ к phpMyAdmin

Чтобы получить доступ к интерфейсу phpMyAdmin, откройте свой любимый браузер и введите доменное имя вашего сервера или общедоступный IP-адрес, а затем /phpmyadmin :

Введите учетные данные администратора и нажмите Go .

логин phpmyadmin


После входа в систему вы увидите панель управления phpMyAdmin, которая будет выглядеть примерно так:

интерфейс phpmyadmin

Заключение

Поздравляем, вы успешно установили phpMyAdmin на свой сервер Ubuntu 18.04. Теперь вы можете начать создавать базы данных MySQL, пользователей и таблицы, а также выполнять различные запросы и операции MySQL.

Читайте также: