Релевантные источники - digitalocean.com -> [Установка и обеспечение безопасности phpMyAdmin в Ubuntu 20.04](https://www.digitalocean.com/community/tutorials/how-to-install-and-secure-phpmyadmin-on-ubuntu-20-04-ru) [[Меняем порт phpMyAdmin из 443 в другое значение]] Первым шагом необходимо установить `Apache`, `Mysql` и `PHP` - [[Установка Apache в Ubuntu]] - [[Установка Mysql в Ubuntu]] - [[Установка PHP в Ubuntu]] Обновите индекс пакетов вашего сервера от имени пользователя без прав root с привилегиями sudo: ```bash sudo apt update ``` Перед установкой пакета `phpmyadmin`, необходимо отключить плагин `Validate Password`. Так как на момент написания этого руководства активация этого компонента будет вызывать ошибку при попытке задать пароль пользователя **phpmyadmin**. [[Как деактивировать плагин Validate Password]] Помимо phpMyAdmin рекомендуется установить несколько расширений PHP на ваш сервер для возможности использования определенной функциональности и улучшения производительности. Запустите следующую команду для установки этих пакетов в систему. Обратите внимание, что процесс установки требует, чтобы вы ответили на ряд вопросов для корректной настройки phpMyAdmin. Мы кратко пробежимся по этим параметрам: ```bash sudo apt install phpmyadmin php-mbstring php-zip php-gd php-json php-curl ``` - Для выбора сервера вы можете выбрать `apache2`  > **Предупреждение.** При появлении запроса вариант «apache2» выделен, но **не** выбран. Если вы не нажмете `ПРОБЕЛ` для выбора Apache, установщик _не_ будет перемещать необходимые файлы при установке. Нажмите `ПРОБЕЛ`, затем `TAB`, а потом `ENTER` для выбора Apache. - Выберите `Да` при ответе на вопрос о том, необходимо ли использовать `dbconfig-common` для настройки базы данных. - Затем вам будет предложено выбрать и подтвердить пароль приложения MySQL для phpMyAdmin. Этот пароль будет назначен новому пользователю MySQL с именем `phpmyadmin`. Этот пользователь будет создан в процессе установки `phpMyAdmin` и будет использоваться для взаимодействия с базой данных. система `phpMyAdmin` будет использовать этого пользователя и указанный пароль для подключения к серверу MySQL и управления базами данных. Если возникает такая ошибка (скриншот ниже), то значит вы не деактивировали плагин Validate Password. [[Как деактивировать плагин Validate Password]] ![[Pasted image 20240808153833.png|400]] Если установка прошла успешно, то можно обратно [[Как деактивировать плагин Validate Password#Активация плагина|активировать]] плагин Validate Password. Однако, каждый раз, когда вы будете создавать в Mysql пользователя, вам придётся отключать плагин. Далее, нужно определиться, с какого пользователя Mysql заходить в веб-интерфейс phpMyAdmin. Либо создавать отдельного пользователя под это дело, либо устанавливать пароль для root и заходить через него. Я выбрал первый вариант. ### Настройка доступа по паролю для выделенного пользователя MySQL Некоторые могут посчитать, что для их рабочего процесса лучше подходит подключение к phpMyAdmin с помощью специально выделенного пользователя. Чтобы сделать это, снова откройте командную строку MySQL: (не указываем команду в формате `mysql -u root -p`, потому что аутентификация root у нас не по паролю ) ``` sudo mysql ``` Создайте нового пользователя и придумайте для него надежный пароль: - вместо `sammy` нужно указать имя нового пользователя. - вместо `password` нужно указать только что придуманный пароль. ``` CREATE USER 'sammy'@'localhost' IDENTIFIED WITH caching_sha2_password BY 'password'; ``` >**Примечание**. Предыдущее выражение `CREATE USER` устанавливает аутентификацию пользователя **root** MySQL с помощью плагина `caching_sha2_password`​​. [Согласно официальной документации MySQL](https://dev.mysql.com/doc/refman/8.0/en/upgrading-from-previous-series.html#upgrade-caching-sha2-password), `caching_sha2_password​​​` считается предпочтительным плагином аутентификации MySQL, так как он обеспечивает более защищенное шифрование пароля, чем более старая, но все еще широко используемая версия `mysql_native_password`. > Однако некоторые версии PHP работают ненадежно с `caching_sha2_password`. [Как сообщается, эта проблема была устранена в версии PHP 7.4​​​](https://php.watch/articles/PHP-7.4-MySQL-8-server-gone-away-fix), но если вы получите ошибку при попытке выполнить вход в phpMyAdmin позднее, вы можете задать для пользователя аутентификацию с помощью `mysql_native_password`: Затем предоставьте вашему новому пользователю соответствующие права. Например, вы можете предоставить пользователю права доступа ко всем базам данных и их таблицам, а также можете добавлять, изменять и удалять права пользователя с помощью этой команды: ``` GRANT ALL PRIVILEGES ON *.* TO 'sammy'@'localhost' WITH GRANT OPTION; ``` После этого закройте командную строку MySQL: ``` exit ``` Теперь вы можете получить доступ к веб-интерфейсу, набрав доменное имя или открытый IP-адрес вашего сервера и добавив `/phpmyadmin`: ``` https://your_domain_or_IP/phpmyadmin ``` ![[Pasted image 20240808165952.png|300]]