Полный цикл в digital

Установка PhpMyAdmin в Ubuntu с Nginx

Установим сам пакет phpMyAdmin при помощи команды:

sudo apt -y install phpmyadmin

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

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

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

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

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

Для работы достаточно добавить код в конфигурацию виртуального хоста:

nano /etc/nginx/sites-available/название_домена.com
location /phpmyadmin {
       root /usr/share/;
       index index.php index.html index.htm;
     
       location ~ ^/phpmyadmin/(.+\.php)$ {
         try_files $uri =404;
         root /usr/share/;
         fastcgi_pass unix:/run/php/php7.4-fpm.sock;
         fastcgi_index index.php;
         fastcgi_param SCRIPT_FILENAME $document_root$fastcgi_script_name;
         include /etc/nginx/fastcgi_params;
       }
     
       location ~* ^/phpmyadmin/(.+\.(jpg|jpeg|gif|css|png|js|ico|html|xml|txt))$ {
         root /usr/share/;
       }
     }

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

Проверяем конфигурацию Nginx:

sudo nginx -t

Перезапускаем веб-сервер:

sudo systemctl restart nginx

Настройка пользователя phpMyAdmin

Теперь phpMyAdmin будет доступен по адресу название_домена.com/phpmyadmin. Вы можете проверить, всё ли работает, просто открыв этот адрес в браузере:

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

sudo mysql -u root -p

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

Создаём нового пользователя с именем test, ему был присваеваем пароль:

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

Предоставляем все возможные привилегии, такие как - создание, удаление, редактирование баз данных, таблиц и т.д.

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

Обновляем заданные ранее привилегии:

FLUSH PRIVILEGES;

Теперь необходимо авторизоваться в phpMyAdmin при помощи созданного пользователя:

Защита phpMyAdmin

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

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

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

Установка OpenSSL:

sudo apt -y install openssl

Создаем зашифрованный пароль:

openssl passwd

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

Создаем файл аутентификации, pma_pass и поместим в каталог конфигурации Nginx:

sudo nano /etc/nginx/pma_pass

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

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

Пропишем настройки аутентификации в конфигурационном файле /etc/nginx/sites-available/название_домена.com:

sudo nano /etc/nginx/sites-available/название_домена.com

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

Проверем веб-сервер Nginx на наличие ошибок:

sudo nginx -t

Перегружаем веб-сервер Nginx:

sudo systemctl restart nginx

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

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

sudo apt purge phpmyadmin

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

Заполните форму уже сегодня!
Для начала сотрудничества необходимо заполнить заявку или заказать обратный звонок. В ответ получите коммерческое предложение, которое будет содержать индивидуальную стратегию с учетом требований и поставленных задач
Работаем по будням с 9:00 до 18:00. Заявки, отправленные в выходные, обрабатываем в первый рабочий день до 12:00.
Спасибо, ваш запрос принят и будет обработан!
Эйч Маркетинг