Как запустить phpmyadmin linux
Хотя многим пользователям требуются функциональные возможности систем управления базами данных, например, MySQL, им может показаться неудобным взаимодействие с системой исключительно с помощью командной строки MySQL
phpMyAdmin был создан, чтобы пользователи могли взаимодействовать с MySQL через веб-интерфейс. В этом руководстве мы расскажем, как выполнить установку и обеспечить безопасность phpMyAdmin, чтобы вы могли безопасно использовать данный инструмент для управления своими базами данных в Ubuntu 20.04.
Предварительные требования
Для выполнения этого руководства вам потребуется следующее:
- Сервер Ubuntu 20.04 Этот сервер должен иметь пользователя без прав root с правами администратора, а также брандмауэр, настроенный с помощью ufw . Чтобы выполнить настройку, воспользуйтесь руководством по начальной настройке сервера Ubuntu 20.04.
- Стек LAMP (Linux, Apache, MySQL и PHP), установленный на вашем сервере Ubuntu 20.04. Если вы еще не сделали этого, вы можете воспользоваться данным руководством по установке стека LAMP на Ubuntu 20.04.
Наконец, существует ряд важных соображений безопасности при использовании таких программных средств, как phpMyAdmin, поскольку phpMyAdmin:
- напрямую связывается с установленной у вас версией MySQL;
- управляет аутентификацией, используя учетные данные MySQL;
- исполняет и возвращает результаты для произвольных SQL запросов.
Если у вас нет существующего домена с настроенным SSL/TLS сертификатом, вы можете воспользоваться следующим руководством по обеспечению безопасности Apache с помощью Let’s Encrypt в Ubuntu 20.04. Для этого вам потребуется зарегистрировать доменное имя, создать DNS запись для вашего сервера и настроить виртуальный хост Apache.
Шаг 1 — Установка phpMyAdmin
Вы можете использовать APT для установки phpMyAdmin из репозиториев Ubuntu по умолчанию.
Обновите индекс пакетов вашего сервера от имени пользователя без прав root с привилегиями sudo:
После этого вы можете установить пакет phpmyadmin . Помимо этого пакета, официальная документация также рекомендует установить несколько расширений PHP на ваш сервер для возможности использования определенной функциональности и улучшения производительности.
Если вы выполнили предварительное требования руководства для стека LAMP, ряд из этих модулей уже был установлен вместе с пакетом php . Однако рекомендуется также установить следующие пакеты:
- php-mbstring : модуль для работы с строками, не поддерживающими кодировку ASCII, и конвертации таких строк в другие кодировки
- php-zip : это расширение поддерживает загрузку файлов .zip в phpMyAdmin
- php-gd : поддержка библиотеки GD Graphics
- php-json : поддержка сериализации JSON для PHP
- php-curl : позволяет PHP взаимодействовать с разными типами серверов, используя разные протоколы
Запустите следующую команду для установки этих пакетов в систему. Обратите внимание, что процесс установки требует, чтобы вы ответили на ряд вопросов для корректной настройки phpMyAdmin. Мы кратко пробежимся по этим параметрам:
Здесь представлены параметры, которые вы должны выбрать при запросе для корректной настройки вашей установки:
- Для выбора сервера вы можете выбрать apache2 Предупреждение. При появлении запроса вариант «apache2» выделен, но не выбран. Если вы не нажмете ПРОБЕЛ для выбора Apache, установщик не будет перемещать необходимые файлы при установке. Нажмите ПРОБЕЛ , затем TAB , а потом ENTER для выбора Apache.
- Выберите Да при ответе на вопрос о том, необходимо ли использовать dbconfig-common для настройки базы данных.
- Затем вам будет предложено выбрать и подтвердить пароль приложения MySQL для phpMyAdmin
Примечание. Если вы установили MySQL, следуя указаниям шага 2 с предварительными требования из руководства для стека LAMP, вы, возможно, активировали плагин Validate Password. На момент написания этого руководства активация этого компонента будет вызывать ошибку при попытке задать пароль пользователя phpmyadmin:
Для устранения этой проблемы выберите опцию abort для остановки процесса установки. Затем откройте командную строку MySQL:
Либо, если вы активировали аутентификацию по паролю для пользователя с правами root MySQL, запустите эту команду, а затем введите пароль при запросе:
Из командной строки запустите следующую команду для отключения компонента Validate Password. Обратите внимание, что в этом случае выполняется не удаление, а простая остановка загрузки компонента на ваш сервер MySQL:
После этого вы можете закрыть клиент MySQL:
Затем попробуйте еще раз установить пакет phpmyadmin , после чего все будет работать ожидаемым образом:
После установки phpMyAdmin вы можете открыть командную строку MySQL еще раз с помощью sudo mysql или mysql -u root -p , а затем запустить следующую команду для повторной активации компонента Validate Password:
В процессе установки будет добавлен файл конфигурации phpMyAdmin в каталог /etc/apache2/conf-enabled/ , где он будет считываться автоматически. Для завершения настройки Apache и PHP для работы с phpMyAdmin выполните последнюю оставшуюся задачу этого раздела руководства и явно активируйте расширение PHP mbstring с помощью следующей команды:
Перезапустите Apache для вступления изменений в силу.
Теперь phpMyAdmin установлен и настроен для работы с Apache. Однако, прежде чем вы сможете войти и начать взаимодействие с базами данных MySQL, вам нужно убедиться, что у пользователей MySQL есть права, необходимые для взаимодействия с программой.
Шаг 2 — Настройка аутентификации и прав пользователя
При установке phpMyAdmin на ваш сервер автоматически создал пользователь базы данных с именем phpmyadmin, который отвечает за определенные базовые процессы программы. Вместо того, чтобы выполнять вход с помощью этого пользователя и пароля администратора, которые вы задали при установке, рекомендуется войти с использованием вашего пользователя root MySQL или пользователя, предназначенного для управления базами данных через интерфейс phpMyAdmin.
Настройка доступа по паролю для учетной записи root в MySQL
В системах Ubuntu при запуске MySQL 5.7 (и более поздние версии) для пользователя root MySQL по умолчанию устанавливается аутентификация с помощью плагина aut h_socket, а не пароля. Это позволяет обеспечить большую безопасность и удобство во многих случаях, однако это также может осложнить ситуацию, когда вам нужно предоставить внешней программе, например, phpMyAdmin, доступ к пользователю.
Чтобы войти в phpMyAdmin с пользователем root MySQL, вам нужно переключить метод аутентификации с auth_socket на метод. использующий пароль, если вы еще не сделали этого. Для этого откройте командную строку MySQL через терминал:
Затем проверьте, какой метод аутентификации используют ваши аккаунты пользователей MySQL с помощью следующей команды:
В этом примере вы можете видеть, что пользователь root действительно использует метод аутентификации с помощью плагина auth_socket . Чтобы настроить для учетной записи root аутентификацию с помощью пароля, выполните следующую команду ALTER USER . Обязательно измените значение password на надежный пароль по вашему выбору:
Примечание. Предыдущее выражение ALTER USER устанавливает аутентификацию пользователя root MySQL с помощью плагина caching_sha2_password . Согласно официальной документации MySQL, caching_sha2_password считается предпочтительным плагином аутентификации MySQL, так как он обеспечивает более защищенное шифрование пароля, чем более старая, но все еще широко используемая версия mysql_native_password .
Однако некоторые версии PHP работают ненадежно с caching_sha2_password . Как сообщается, эта проблема была устранена в версии PHP 7.4, но если вы получите ошибку при попытке выполнить вход в phpMyAdmin позднее, вы можете задать для root аутентификацию с помощью mysql_native_password :
Затем проверьте методы аутентификации, применяемые для каждого из ваших пользователей, чтобы подтвердить, что пользователь root больше не использует для аутентификации плагин auth_socket :
В этом выводе вы можете увидеть, что пользователь root user будет использовать аутентификацию по паролю. Теперь вы можете выполнить вход в интерфейс phpMyAdmin с помощью пользователя root с паролем, который вы задали ранее.
Настройка доступа по паролю для выделенного пользователя MySQL
Некоторые могут посчитать, что для их рабочего процесса лучше подходит подключение к phpMyAdmin с помощью специально выделенного пользователя. Чтобы сделать это, снова откройте командную строку MySQL:
Если вы активировали аутентификацию по паролю для вашего пользователя root, как описано в предыдущем разделе, вам нужно запустить следующую команду и ввести пароль при запросе для подключения:
Создайте нового пользователя и придумайте для него надежный пароль:
Примечание. В зависимости от версии PHP, которую вы установили, вы можете задать для вашего нового пользователя аутентификацию с помощью mysql_native_password вместо caching_sha2_password :
Затем предоставьте вашему новому пользователю соответствующие права. Например, вы можете предоставить пользователю права доступа ко всем таблицам в базе данных, а также можете добавлять, изменять и удалять права пользователя с помощью этой команды:
После этого закройте командную строку MySQL:
Теперь вы можете получить доступ к веб-интерфейсу, набрав доменное имя или открытый IP-адрес вашего сервера и добавив /phpmyadmin :
Выполните вход в интерфейс с помощью пользователя root или с новым именем пользователя и паролем, которые вы только что задали.
При входе вы увидите пользовательский интерфейс, который будет выглядеть следующим образом:
Теперь, когда вы можете подключаться и взаимодействовать с phpMyAdmin, осталось только установить более жесткие правила безопасности системы, чтобы защитить ее от атак.
Шаг 3 — Обеспечение безопасности phpMyAdmin
Из-за своей вездесущности phpMyAdmin часто становится мишенью для атак, поэтому вам нужно дополнительно позаботиться о предотвращении несанкционированного доступа. Один из способов — это размещение шлюза перед всем приложением с помощью встроенного в Apache функционала авторизации и аутентификации через .htaccess .
Чтобы сделать это, вы должны сначала активировать перезапись файла .htaccess , изменив файл конфигурации Apache вашей установки phpMyAdmin.
Воспользуйтесь предпочитаемым текстовым редактором для редактирования файла phpmyadmin.conf , который находится в каталоге конфигурации Apache. Мы будем использовать nano :
Добавьте директиву AllowOverride All в раздел файла конфигурации <Directory /usr/share/phpmyadmin> , например:
После добавления этой строки сохраните и закройте файл. Если вы использовали nano для редактирования файла, нажмите CTRL + X , Y , а затем ENTER .
Перезапустите Apache, чтобы изменения вступили в силу.
Теперь, когда вы активировали использование файлов .htaccess для вашего приложения, вам нужно создать этот файл для реализации этого уровня защиты.
Чтобы этот файл мог использоваться, он должен находиться в каталоге приложения. Вы можете создать необходимый файл и открыть его в текстовом редакторе с привилегиями root с помощью следующей команды:
В этом файле введите следующую информацию:
Вот что означает каждая из этих строк:
После завершения редактирования сохраните и закройте файл.
Вы использовали следующее местонахождение для вашего файла пароля /etc/phpmyadmin/.htpasswd . Теперь вы можете создать этот файл и передать его для первоначального пользователя с помощью утилиты htpasswd :
Вам будет предложено выбрать и подтвердить пароль для пользователя, которого вы создаете. В результате будет создан файл с хэшированным паролем, который вы добавили.
Если вы хотите ввести дополнительного пользователя, вам нужно сделать это без флага -c , например:
Теперь, когда вы можете получить доступ к подкаталогу phpMyAdmin, вам будет предложено указать дополнительное имя учетной записи и пароль, которые вы только что задали:
После выполнения аутентификации в Apache вы перейдете на стандартную страницу аутентификации phpMyAdmin для ввода ваших учетных данных MySQL. Добавив дополнительный набор учетных данных, не используемый MySQL, вы обеспечиваете для вашей базы данных дополнительный слой защиты. Это желательно, поскольку в прошлом phpMyAdmin часто становился объектом использующих уязвимости атак.
Заключение
Вы успешно настроили phpMyAdmin и теперь можете использовать phpMyAdmin на вашем сервере Ubuntu 20.04. Используя этот интерфейс, вы можете легко создавать базы данных, пользователей, таблицы и т. д., а также выполнять стандартные операции, например удалять и изменять структуры и данные.
PhpMyAdmin - это веб-приложение с открытым исходным кодом, написанное на языке программирования PHP и представляющее собой веб-интерфейс для администрирования СУБД MySQL. Главной особенностью данного приложения является возможность управления MySQL без непосредственного ввода SQL команд. Приложение позволяет создавать и редактировать таблицы, вносить в них данные, администрировать пользователей баз данных, а также экспортировать и импортировать записи и структуру таблиц из базы данных.
В этой статье мы рассмотрим, как выполняется установка phpMyAdmin на Ubuntu 20.04 с веб-сервером Apache. Прежде чем приступать к установке phpMyAdmin, у вас уже заранее должны быть установлены такие компоненты, как Apache, MySQL и PHP. Если ещё нет, то сначала посмотрите статью установка LAMP Ubuntu 20.04.
Установка phpMyAdmin в Ubuntu 20.04
Прежде чем мы сможем установить phpMyAdmin Ubuntu, необходимо убедиться, что у вас установлено расширение php для работы с текстовыми строками в формате юникода. Для его установки выполните в терминале команду:
sudo apt -y install php-mbstring
Установщик спросит вас, какой веб-сервер будет использоваться для работы программы. Отметьте с помощью кнопки Пробел пункт apache2, а затем с помощью Tab и Enter нажмите кнопку Ок:
Теперь phpMyAdmin будет доступен по адресу ip_вашего_сервера/phpmyadmin. Вы можете проверить, всё ли работает, просто открыв этот адрес в браузере:
1. Создание пользователя для 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, ему был присвоен пароль и предоставлены все возможные привилегии (такие как создание, удаление, редактирование баз данных, таблиц и т.д.). Третья команда обновляет заданные ранее привилегии.
2. Защита phpMyAdmin
Если phpMyAdmin установлен на производственном сервере, который доступен из сети, то его необходимо обезопасить, добавив авторизацию. Для этого создайте файл /usr/share/phpmyadmin/.htaccess со следующим содержимым:
sudo vi /usr/share/phpmyadmin/.htaccess
AuthType Basic
AuthName "Restricted Files"
AuthUserFile /etc/phpmyadmin/.htpasswd
Require valid-user
Чтобы настройки из файла .htaccess заработали в этой директории, необходимо, чтобы для неё в файле /etc/apache2/apache2.conf значение AllowOverride было All:
sudo vi /etc/apache2/apache2.conf
<Directory /usr/share>
AllowOverride All
Require all granted
</Directory>
Теперь, если вы попытаетесь открыть phpMyAdmin, то вам необходимо пройти авторизацию:
Как удалить phpMyAdmin с Ubuntu
Чтобы удалить phpMyAdmin, необходимо выполнить команду:
sudo apt purge phpmyadmin
После выполнения этой команды программа будет удалена с вашего компьютера.
Выводы
В этой небольшой статье мы рассмотрели, как установить PhpMyAdmin на Ubuntu 20.04. Как видите, всё стало намного проще, чем в предыдущих версиях, когда нам нужно было вручную включать различные модули и настраивать местоположение файлов программы.
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
На момент написания статьи (1 августа 2021) актуальной версией PHP в официальных репозиториях Ubuntu считалась версия 7.4. Самая же последняя официальная версия PHP от разработчиков 8.0.9 (по состоянию на 29 июля 2021 года).
2. Установка phpMyAdmin
Теперь можно установить сам пакет phpMyAdmin при помощи команды:
sudo apt -y install phpmyadmin
Установщик спросит вас, какой веб-сервер будет использоваться для работы программы. Так как веб-сервер Nginx отсутствует в списке, в таком случае отмечать ничего не надо. Нажмите на клавишу Tab далее на Enter чтобы продолжить установку:
Далее установщик предложит создать базу данных для phpMyAdmin, в которой будет находиться служебная информация программы и необходимые настройки, необходимо согласиться выбрав пункт Yes:
На следующем этапе необходимо придумать пароль для пользователя phpmyadmin, который будет использоваться программой для доступа к собственной базе данных:
Далее программа попросит вас повторить заданный ранее пароль:
После этого установка 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:
Для получения доступа к веб-интерфейсу 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. Вы можете проверить, всё ли работает, просто открыв этот адрес в браузере:
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, ему был присвоен пароль и предоставлены все возможные привилегии (такие как создание, удаление, редактирование баз данных, таблиц и т.д.). Третья команда обновляет заданные ранее привилегии.
7. Защита phpMyAdmin
Если phpMyAdmin установлен на производственном сервере, который доступен из сети, то его необходимо обезопасить, добавив авторизацию.
Чтобы добавить аутентификацию, необходимо создать файл для хранения учетных записей, которые будут использоваться для аутентификации. В Nginx пароли шифруются при помощи встроенной функции crypt. Для шифрования паролей будет использоваться пакет OpenSSL, который уже должен быть установлен на вашем сервере. Для проверки на наличии данной программы введите в терминале команду openssl:
Если пакет у вас присутствует, то приглашение командной строки изменится на OpenSSL. Если пакет у вас отсутствует, установите его при помощи команды:
sudo apt -y install openssl
Для создания зашифрованного пароля введи в терминале команду:
На первом этапе вам будет предложено придумать и ввести пароль. После его ввода его необходимо ввести еще раз. Далее утилита отобразит зашифрованную версию пароля. Скопируйте значение, которое получилось на выходе, так как оно будет использоваться далее. Теперь создайте файл аутентификации. Для примера назовем этот файл pma_pass и поместим его в каталог конфигурации Nginx:
sudo nano /etc/nginx/pma_pass
В этом файле укажите имя пользователя, которое будет использоваться для аутентификации, далее поставьте символ двоеточие (:), и вставьте зашифрованную версию пароля, которую вы получили на выходе от команды openssl passwd. В итоге файл должен быть приведен к следующему виду:
Здесь 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, запускайте команду для проверки файлов на наличие ошибок:
Если в выводе команды отобразились следующие строчки:
Это означает что ошибок нет. В противном случае будет выведен текст с ошибкой, а также указан номер строки, в которой была обнаружена ошибка. Далее перезапустите веб-сервер nginx:
sudo systemctl restart nginx
После перезапуска перейдите по адресу ip адрес/имя сервера/phpMyAdmin и вы увидите окно с авторизацией, где необходимо ввести ранее созданный логин и пароль:
Как удалить phpMyAdmin с Ubuntu
Чтобы удалить phpMyAdmin, необходимо выполнить команду:
sudo apt purge phpmyadmin
Команда purge позволяет удалить не только пакеты, но и их конфигурационные файлы. Если вы хотите оставить конфигурационные файлы, используйте команду remove.
Выводы
В этой небольшой статье мы рассмотрели, как выполняется установка и настройка phpMyAdmin в операционной системе Ubuntu 20.04. Как видите, всё стало намного проще, чем в предыдущих версиях, когда нам нужно было вручную включать различные модули и настраивать местоположение файлов программы.
Нет похожих записей
Статья распространяется под лицензией Creative Commons ShareAlike 4.0 при копировании материала ссылка на источник обязательна.
Несмотря на то, что многие пользователи испытывают потребность в системе управления базами данных вроде 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.
После выполнения описанных выше мероприятий, вы можете начать следовать шагам, указанным в этой статье.
Шаг 1 - Установка phpMyAdmin
Сначала установим phpMyAdmin из репозиториев Ubuntu по умолчанию.
Для этого обновим наш локальный индекс пакетов, а затем используем систему управления пакетами apt для загрузки и установки необходимых файлов:
В процессе установки вам будет задано несколько вопросов по конфигурации.
Внимание:
Во время первого диалога apache2 подсвечен, но не выбран. Если вы не нажмёте Пробел для выбора Apache, установщик не переместит необходимые файлы в процессе установки. Нажмите Пробел, Tab, а затем Enter для выбора Apache.
- При выборе сервера, выберите apache2.
- Ответьте yes на вопрос, хотите ли вы использовать dbconfig-common для настройки базы данных.
- У вас будет запрошен пароль администратора базы данных.
- Далее вам будет предложено ввести и повторить пароль для самого phpMyAdmin .
В процессе установки в директорию /etc/apache2/conf-enabled/ будет добавлен файл конфигурации phpMyAdmin для Apache.
Единственное, что мы должны сделать вручную, так это включить расширения PHP mcrypt и mbstring следующими командами:
Далее перезапустим Apache для применения изменений:
Теперь вы можете осуществить доступ к веб-интерфейсу phpMyAdmin введя имя домена или публичного IP адреса вашего сервера и строки /phpmyadmin :
Теперь вы можете войти в веб-интерфейс используя имя пользователя root и пароль, заданный в процессе установки MySQL.
После входа вы увидите похожий интерфейс пользователя:
Шаг 2 - Делаем phpMyAdmin безопаснее
Установка phpMyAdmin осуществляется достаточно просто. Тем не менее, мы ещё не закончили. Из-за того, что phpMyAdmin используется большим количеством пользователей, он представляет собой популярную цель для злоумышленников. Нам необходимо предпринять некоторые шаги для предотвращения неавторизованного доступа.
Одним из способов добиться этого является авторизация пользователя перед входом в само приложение. Мы можем решить эту задачу использованием возможностей входящего в Apache файла .htaccess для авторизации и аутентификации пользователей.
Настройка Apache для разрешения использования .htaccess
Сначала включим возможность использования файла .htaccess в нашем файле конфигурации Apache.
Мы будем редактировать файл в нашей конфигурационной директории Apache:
Нам необходимо добавить директиву AllowOverride All в секцию <Directory /usr/share/phpmyadmin> конфигурационного файла:
После того, как вы добавили эту строку, сохраните и закройте файл.
Для применения изменений перезапустите Apache:
Создание файла .htaccess
Теперь, когда мы разрешили использовать .htaccess для нашего приложения, нам необходимо создать такой файл.
Файл необходимо создать в директории приложения. Мы можем создать необходимый файл и открыть его для редактирования следующей командой:
Теперь введём следующую информацию:
Введённые нами строки означают следующее:
- AuthType Basic : Эта строка задаёт тип авторизации. Указанный тип ( Basic ) означает, что авторизация будет осуществляться на основе пароля и файла пароля.
- AuthName : Эта строка задаёт текст приветствия в диалоге авторизации. Используйте общие слова и фразы в этой строке, чтобы злоумышленникам было сложнее определить, что за система скрывается за диалогом авторизации.
- AuthUserFile : Эта строка задаёт адрес файла пароля, который используется для авторизации. Файл должен находиться в недоступной для внешнего мира директории. Чуть далее мы создадим этот файл.
- Require valid-user : Эта строка означает, что только аутентифицированные пользователи могут осуществлять доступ к защищаемой системе.
После ввода указанных строк, сохраните и закройте файл.
Создание файла пароля .htpasswd для аутентификации
Теперь, когда мы задали путь для нашего файла пароля в директиве AuthUserFile в нашем файле .htaccess , нам необходимо создать этот файл.
Для того, чтобы это сделать, нам понадобится установить дополнительный пакет из стандартных репозиториев:
Теперь нам доступна утилита htpasswd .
Указанный нами ранее путь выглядел следующим образом: /etc/phpmyadmin/.htpasswd . Создадим этот файл и добавим в него первого пользователя следующей командой:
Вам будет предложено выбрать и подтвердить пароль для созданного пользователя. После этого файл будет создан и в него будет добавлен хэш указанного вами пароля.
Для добавления нового пользователя выполните следующую команду без флага -c :
Теперь, когда вы настроили доступ к поддиректории phpMyAdmin, при попытке входа в phpMyAdmin вам будет предложено ввести логин и пароль пользователя:
После ввода логина и пароля вы будете перенаправлены на страницу аутентификации phpMyAdmin. Таким образом, мы создали дополнительный слой защиты для вашего phpMyAdmin.
Заключение
Теперь у вас есть phpMyAdmin, готовый к работе на вашем сервере с Ubuntu 16.04. Используя его интерфейс вы можете легко создавать базы данных, пользователей, таблицы и многое другое, а также выполнять обычные операции модификации или удаления хранимых данных.
Читайте также: