Установка PhpMyAdmin на Nginx + Apache
У нас на сервере установлено два веб-сервера Nginx для обработки статики который динамику в свою очередь проксирует на Apache, по этой причине phpMyAdmin будем устанавливать на Apache.
Установка phpMyAdmin
Прежде чем мы сможем установить phpMyAdmin, необходимо убедиться, что у вас установлено расширение php для работы с текстовыми строками в формате юникода. Для его установки выполните в терминале команду:
sudo apt -y install php-mbstring
Теперь можно установить сам пакет phpMyAdmin при помощи команды:
sudo apt -y install phpmyadmin
Установщик спросит вас, какой веб-сервер будет использоваться для работы программы. Отметьте с помощью кнопки Пробел пункт apache2, а затем с помощью Tab и Enter нажмите кнопку Ок:
Далее установщик предложит создать базу данных для phpMyAdmin, в которой будет находиться служебная информация программы и необходимые настройки, необходимо согласиться выбрав пункт Yes:
На следующем этапе необходимо придумать пароль для пользователя phpMyAdmin, который будет использоваться программой для доступа к собственной базе данных:
Далее программа попросит вас повторить заданный ранее пароль:
После этого установка phpMyAdmin завершена.
Проксирование работы phpMyAdmin Апачу
В существующем шаблоне Nginx виртуального хоста /etc/nginx/sites-available/название_домена.com зададим расположение скрипта запуска phpMyAdmin, передачу запросов с расширением .php Апачу который работает на порту 8080.
Открываем файл виртуального хоста:
sudo nano /etc/nginx/sites-available/название_домена.com
Добавляем следующий код в нужную секцию server:
location /phpmyadmin {
root /usr/share/;
index index.php;
location ~ ^/phpmyadmin/(.+\.php)$ {
try_files $uri =404;
root /usr/share/;
proxy_pass http://127.0.0.1:8080;
}
location ~* ^/phpmyadmin/(.+\.(jpg|jpeg|gif|css|png|js|ico|html|xml|txt))$ {
root /usr/share/;
}
}
Проверим на синтаксические ошибки Nginx:
sudo nginx -t
Перезапустим службу Nginx:
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 установлен на производственном сервере, который доступен из сети, то его необходимо обезопасить, добавив авторизацию. Для этого создайте файл /usr/share/phpmyadmin/.htaccess со следующим содержимым:
sudo nano /usr/share/phpmyadmin/.htaccess
AuthType Basic
AuthName "Restricted Files"
AuthUserFile /etc/phpmyadmin/.htpasswd
Require valid-user
Данные строки означают:
AuthType Basicустанавливает тип аутентификации, мы указываем, что будем использовать парольAuthNameзадает сообщение, которое будет видеть пользовательAuthUserFileфайл, откуда программа будет брать имена пользователей и паролиRequireуказываем, что аутентификация обязательна
Далее создайте новый пароль для своего пользователя:
sudo htpasswd -c /etc/phpmyadmin/.htpasswd пользователь
Чтобы настройки из файла .htaccess заработали в этой директории, необходимо, чтобы для неё в файле /etc/apache2/apache2.conf значение AllowOverride было All:
sudo nano /etc/apache2/apache2.conf <Directory /usr/share>
AllowOverride All
Require all granted
</Directory>
Сохраните изменения и закройте файл. Далее перезапустите apache:
sudo systemctl restart apache2
Теперь, если вы попытаетесь открыть phpMyAdmin, то вам необходимо пройти авторизацию.
Как удалить phpMyAdmin с Ubuntu
Чтобы удалить phpMyAdmin, необходимо выполнить команду:
sudo apt purge phpmyadmin
После выполнения этой команды программа будет удалена с вашего компьютера.









