Установка phpmyadmin на Debian 10
В 10 версии выпилили deb пакет phpmyadmin поэтому будем устанавливать последнюю версию с офф сайта, для начала переходим на страницу загрузки и выбираем последнюю версию (на момент это была phpMyAdmin 5.0.2) Подключаемся к нашему серверу и скачиваем:
1 |
wget https://files.phpmyadmin.net/phpMyAdmin/5.0.2/phpMyAdmin-5.0.2-all-languages.zip |
Установим архиватор и распакуем:
1 2 |
sudo apt install unzip unzip phpMyAdmin-5.0.2-all-languages.zip |
Перемещаем папку phpmyadmin:
1 |
sudo mv phpMyAdmin-5.0.2-all-languages /var/www/phpmyadmin |
Теперь нужно сменить пользователя на www-data
1 |
sudo chown -R www-data:www-data /var/www/phpmyadmin/ |
Далее нам нужно создать базу и пользователя phpmyadmin, для начала подключимся к mariadb:
1 |
sudo mysql -u root |
Создадим базу данных phpmyadmin:
1 |
CREATE DATABASE phpmyadmin DEFAULT CHARACTER SET utf8mb4 COLLATE utf8mb4_unicode_ci; |
Создадим пользователя phpmyadmin и добавим все права на нашу созданную базу, не забывайте поставить свой пароль:
1 |
GRANT ALL ON phpmyadmin.* TO 'phpmyadmin'@'localhost' IDENTIFIED BY 'your_super_password'; |
Сбрасываем привилегии и выходим:
1 2 |
FLUSH PRIVILEGES; EXIT; |
Устанавливаем рекомендуемые модули для phpmyadmin
1 |
sudo apt install php-imagick php-phpseclib php-php-gettext php7.3-common php7.3-mysql php7.3-gd php7.3-imap php7.3-json php7.3-curl php7.3-zip php7.3-xml php7.3-mbstring php7.3-bz2 php7.3-intl php7.3-gmp |
Перезапускаем Apache:
1 |
sudo systemctl restart apache2 |
Создаем конф файл для Apache:
1 |
sudo nano /etc/apache2/conf-available/phpmyadmin.conf |
И копируем в наш файл:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 |
# phpMyAdmin default Apache configuration Alias /phpmyadmin /var/www/phpmyadmin <Directory /var/www/phpmyadmin> Options SymLinksIfOwnerMatch DirectoryIndex index.php <IfModule mod_php5.c> <IfModule mod_mime.c> AddType application/x-httpd-php .php </IfModule> <FilesMatch ".+\.php$"> SetHandler application/x-httpd-php </FilesMatch> php_value include_path . php_admin_value upload_tmp_dir /var/lib/phpmyadmin/tmp php_admin_value open_basedir /var/www/phpmyadmin/:/etc/phpmyadmin/:/var/lib/phpmyadmin/:/usr/share/php/php-gettext/:/usr/share/php/php-php-gettext/:/usr/share/javascript/:/usr/share/php/tcpdf/:/usr/share/doc/phpmyadmin/:/usr/share/php/phpseclib/ php_admin_value mbstring.func_overload 0 </IfModule> <IfModule mod_php.c> <IfModule mod_mime.c> AddType application/x-httpd-php .php </IfModule> <FilesMatch ".+\.php$"> SetHandler application/x-httpd-php </FilesMatch> php_value include_path . php_admin_value upload_tmp_dir /var/lib/phpmyadmin/tmp php_admin_value open_basedir /var/www/phpmyadmin/:/etc/phpmyadmin/:/var/lib/phpmyadmin/:/usr/share/php/php-gettext/:/usr/share/php/php-php-gettext/:/usr/share/javascript/:/usr/share/php/tcpdf/:/usr/share/doc/phpmyadmin/:/usr/share/php/phpseclib/ php_admin_value mbstring.func_overload 0 </IfModule> </Directory> # Disallow web access to directories that don't need it <Directory /var/www/phpmyadmin/templates> Require all denied </Directory> <Directory /var/www/phpmyadmin/libraries> Require all denied </Directory> <Directory /var/www/phpmyadmin/setup/lib> Require all denied </Directory> |
Далее включаем наш конфиг:
1 |
sudo a2enconf phpmyadmin.conf |
Создадим временную папку для phpmyadmin и дадим права:
1 2 |
sudo mkdir -p /var/lib/phpmyadmin/tmp sudo chown www-data:www-data /var/lib/phpmyadmin/tmp |
Перезапускаем Apache:
1 |
sudo systemctl reload apache2 |
Теперь набираем в браузере ваш-адрес-сервера/phpmyadmin и должна открыться след страница: Запуск phpMyAdmin Setup Script, набираем в браузере ваш-адрес-сервера/phpmyadmin/setup и нажимаем New server: Потом Apply: Потом Display: Потом создаем файл config.inc.php в директории /var/www/phpmyadmin/
1 |
sudo nano /var/www/phpmyadmin/config.inc.php |
И копируем содержимое в файл: При попытке зайти под root в панель вы скорее всего получите ошибку:
1 |
#1698 - Access denied for user 'root '@'localhost' |
или
1 |
mysqli_real_connect(): (HY000/1698): Access denied for user 'root '@'localhost' |
Если войдете под пользователем phpmyadmin то не увидите подобную ошибку, но данный пользователь может управлять только базой phpmeadmin. Причина данной ошибки в том что по умолчанию пользователь root может заходить только через unix_socket, а не через mysql_native_password, чтобы решить данную проблему можно создать нового пользователя и дать ему права администратора. Подключаемся к mariadb:
1 |
sudo mysql -u root |
Создадим пользователя admin с парольной защитой:
1 |
create user admin@localhost identified by 'your-super-password'; |
Даем все привилегии:
1 |
grant all privileges on *.* to admin@localhost with grant option; |
Сбрасываем и выходим:
1 2 |
flush privileges; exit; |
При попытке входа в панель получаем след сообщение:
1 2 |
The phpMyAdmin configuration storage is not completely configured, some extended features have been deactivated. Find out why. Or alternately go to 'Operations' tab of any database to set it up there. |
Нажимаем Create Все установка phpmyadmin завершена. Теперь можно прикрутить двухфакторную авторизацию.