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