Установка 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
После выполнения этой команды программа будет удалена с вашего компьютера.