Tutorial

Как установить и настроить phpMyAdmin в Ubuntu 16.04

Published on February 26, 2017
Русский
Как установить и настроить phpMyAdmin в Ubuntu 16.04

Введение

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

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

Перед установкой

Перед тем, как мы начнём, убедитесь, что у вас есть всё необходимое.

Прежде всего, мы будем исходить из того, что у вас есть не-рутовый (non-root) пользователь с привилегиями sudo. Настроить такую учётную запись пользователя можно следуя шагам 1-4 в статье о первичной настройке сервера на Ubuntu 16.04.

Мы также будем считать, что вы завершили настройку стека LAMP (Linux, Apache, MySQL и PHP) на вашем сервере с Ubuntu 16.04. Если вы ещё не сделали этого, вы можете ознакомиться с этим процессом в статье об установке стека LAMP на Ubuntu 16.04.

И, наконец, необходимо иметь в виду некоторые вопросы безопасности при использовании phpMyAdmin, поскольку он:

  • Напрямую взаимодействует с MySQL.
  • Выполняет аутентификацию использую логин и пароль MySQL.
  • Выполняет и возвращает результаты произвольных запросов SQL.

По этим причинам, а также потому, что phpMyAdmin является одним из наиболее распространённых и атакуемых PHP приложений, вам не стоит запускать phpMyAdmin на удалённых машинах с простым соединением HTTP. Если у вас ещё нет домена с настроенным SSL/TLS сертификатом, рекомендуем ознакомиться со статьёй Делаем Apache безопаснее с помощью Let’ Encrypt на Ubuntu 16.04.

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

Шаг 1 - Установка phpMyAdmin

Сначала установим phpMyAdmin из репозиториев Ubuntu по умолчанию.

Для этого обновим наш локальный индекс пакетов, а затем используем систему управления пакетами apt для загрузки и установки необходимых файлов:

  1. sudo apt-get update
  2. sudo apt-get install phpmyadmin php-mbstring php-gettext

В процессе установки вам будет задано несколько вопросов по конфигурации.

Внимание: Во время первого диалога apache2 подсвечен, но не выбран. Если вы не нажмёте Пробел для выбора Apache, установщик не переместит необходимые файлы в процессе установки. Нажмите Пробел, Tab, а затем Enter для выбора Apache.

  • При выборе сервера, выберите apache2.
  • Ответьте yes на вопрос, хотите ли вы использовать dbconfig-common для настройки базы данных.
  • У вас будет запрошен пароль администратора базы данных.
  • Далее вам будет предложено ввести и повторить пароль для самого phpMyAdmin.

В процессе установки в директорию /etc/apache2/conf-enabled/ будет добавлен файл конфигурации phpMyAdmin для Apache.

Единственное, что мы должны сделать вручную, так это включить расширения PHP mcrypt и mbstring следующими командами:

  1. sudo phpenmod mcrypt
  2. sudo phpenmod mbstring

Далее перезапустим Apache для применения изменений:

  1. sudo systemctl restart apache2

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

https://доменное_имя_или_IP_адрес/phpmyadmin

Окно входа в phpMyAdmin

Теперь вы можете войти в веб-интерфейс используя имя пользователя root и пароль, заданный в процессе установки MySQL.

После входа вы увидите похожий интерфейс пользователя:

Интерфейс пользователя в phpMyAdmin

Шаг 2 - Делаем phpMyAdmin безопаснее

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

Одним из способов добиться этого является авторизация пользователя перед входом в само приложение. Мы можем решить эту задачу использованием возможностей входящего в Apache файла .htaccess для авторизации и аутентификации пользователей.

Настройка Apache для разрешения использования .htaccess

Сначала включим возможность использования файла .htaccess в нашем файле конфигурации Apache.

Мы будем редактировать файл в нашей конфигурационной директории Apache:

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

Нам необходимо добавить директиву AllowOverride All в секцию <Directory /usr/share/phpmyadmin> конфигурационного файла:

/etc/apache2/conf-available/phpmyadmin.conf
<Directory /usr/share/phpmyadmin>
    Options FollowSymLinks
    DirectoryIndex index.php
    AllowOverride All
    . . .

После того, как вы добавили эту строку, сохраните и закройте файл.

Для применения изменений перезапустите Apache:

  1. sudo systemctl restart apache2

Создание файла .htaccess

Теперь, когда мы разрешили использовать .htaccess для нашего приложения, нам необходимо создать такой файл.

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

  1. sudo nano /usr/share/phpmyadmin/.htaccess

Теперь введём следующую информацию:

/usr/share/phpmyadmin/.htaccess
AuthType Basic
AuthName "Restricted Files"
AuthUserFile /etc/phpmyadmin/.htpasswd
Require valid-user

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

  • AuthType Basic: Эта строка задаёт тип авторизации. Указанный тип (Basic) означает, что авторизация будет осуществляться на основе пароля и файла пароля.
  • AuthName: Эта строка задаёт текст приветствия в диалоге авторизации. Используйте общие слова и фразы в этой строке, чтобы злоумышленникам было сложнее определить, что за система скрывается за диалогом авторизации.
  • AuthUserFile: Эта строка задаёт адрес файла пароля, который используется для авторизации. Файл должен находиться в недоступной для внешнего мира директории. Чуть далее мы создадим этот файл.
  • Require valid-user: Эта строка означает, что только аутентифицированные пользователи могут осуществлять доступ к защищаемой системе.

После ввода указанных строк, сохраните и закройте файл.

Создание файла пароля .htpasswd для аутентификации

Теперь, когда мы задали путь для нашего файла пароля в директиве AuthUserFile в нашем файле .htaccess, нам необходимо создать этот файл.

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

  1. sudo apt-get install apache2-utils

Теперь нам доступна утилита htpasswd.

Указанный нами ранее путь выглядел следующим образом: /etc/phpmyadmin/.htpasswd. Создадим этот файл и добавим в него первого пользователя следующей командой:

  1. sudo htpasswd -c /etc/phpmyadmin/.htpasswd username

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

Для добавления нового пользователя выполните следующую команду без флага -c:

  1. sudo htpasswd /etc/phpmyadmin/.htpasswd additionaluser

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

https://доменное_имя_или_IP_адрес/phpmyadmin

Вход в phpMyAdmin на настроенной базовой авторизацией

После ввода логина и пароля вы будете перенаправлены на страницу аутентификации phpMyAdmin. Таким образом, мы создали дополнительный слой защиты для вашего phpMyAdmin.

Заключение

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

Thanks for learning with the DigitalOcean Community. Check out our offerings for compute, storage, networking, and managed databases.

Learn more about us


About the authors

Default avatar
maxmikheev

translator


Still looking for an answer?

Ask a questionSearch for more help

Was this helpful?
 
Leave a comment


This textbox defaults to using Markdown to format your answer.

You can type !ref in this text area to quickly search our full set of tutorials, documentation & marketplace offerings and insert the link!

Try DigitalOcean for free

Click below to sign up and get $200 of credit to try our products over 60 days!

Sign up

Join the Tech Talk
Success! Thank you! Please check your email for further details.

Please complete your information!

Get our biweekly newsletter

Sign up for Infrastructure as a Newsletter.

Hollie's Hub for Good

Working on improving health and education, reducing inequality, and spurring economic growth? We'd like to help.

Become a contributor

Get paid to write technical tutorials and select a tech-focused charity to receive a matching donation.

Welcome to the developer cloud

DigitalOcean makes it simple to launch in the cloud and scale up as you grow — whether you're running one virtual machine or ten thousand.

Learn more
DigitalOcean Cloud Control Panel