Поиск по сайту:

Как установить и защитить phpMyAdmin в Alma Linux 8


phpMyAdmin — бесплатное приложение для управления базами данных с открытым исходным кодом для MySQL и MariaDB. Он позволяет вам управлять, выполнять различные задачи, связанные с базой данных, и выполнять запросы через веб-интерфейс. Он написан на PHP и предоставляет надежный и удобный интерфейс для управления базами данных через веб-браузер. Он является кроссплатформенным и может работать во многих операционных системах, включая Windows, macOS, Linux и BSD.

В этом уроке вы узнаете, как установить phpMyAdmin на Alma Linux 8.

Предварительные условия

  • Сервер под управлением Alma Linux 8.
  • Действительное доменное имя, указанное в IP-адресе вашего сервера.
  • На сервере настроен пароль root.

Установить сервер LEMP

Сначала установите веб-сервер Nginx и сервер базы данных MariaDB с помощью следующей команды:

dnf install nginx mariadb -y

Затем установите репозиторий Remi PHP с помощью следующей команды:

dnf -y install http://rpms.remirepo.net/enterprise/remi-release-8.rpm

Затем отключите модуль PHP по умолчанию и включите модуль Remi PHP с помощью следующей команды:

dnf module -y reset php
dnf module install php:remi-7.4 -y

Затем установите PHP с другими необходимыми расширениями, используя следующую команду:

dnf install php php-cli php-common php-fpm php-curl php-gd php-mbstring php-process php-snmp php-xml php-zip php-memcached php-mysqlnd php-json php-mbstring php-pdo php-pdo-dblib php-xml unzip wget -y

После установки всех пакетов отредактируйте файл конфигурации PHP-FPM:

nano /etc/php-fpm.d/www.conf

Измените пользователя и группу с Apache на Nginx:

user = nginx
group = nginx

Сохраните и закройте файл, затем запустите и включите службы Nginx, MariaDB и PHP-FPM с помощью следующей команды:

systemctl start nginx php-fpm mariadb
systemctl enable nginx php-fpm mariadb

Создайте пользователя для phpMyAdmin

Далее рекомендуется создать отдельного пользователя для phpMyAdmin для выполнения всех задач по управлению базой данных. Сначала защитите MariaDB, выполнив следующую команду:

mysql_secure_installation

Этот скрипт установит пароль root, удалит анонимных пользователей, запретит удаленный вход в систему root и удалит тестовую базу данных, как показано ниже:

Set root password? [Y/n] n
Remove anonymous users? [Y/n] y
Disallow root login remotely? [Y/n] y
Remove test database and access to it? [Y/n] y
Reload privilege tables now? [Y/n] y

Затем войдите в MariaDB с помощью следующей команды:

mysql

После входа в систему создайте базу данных и пользователя с помощью следующей команды:

MariaDB [(none)]> CREATE DATABASE phpmyadmin CHARACTER SET utf8 COLLATE utf8_unicode_ci;
MariaDB [(none)]> CREATE USER 'phpmyadmin'@'%' IDENTIFIED BY 'password';

Затем предоставьте все права администратору:

MariaDB [(none)]> GRANT ALL PRIVILEGES ON *.* TO 'phpmyadmin'@'%';

Затем сбросьте привилегии и выйдите из консоли MariaDB с помощью следующей команды:

MariaDB [(none)]> FLUSH PRIVILEGES;
MariaDB [(none)]> EXIT;

Установите phpMyAdmin на Alma Linux 8

Затем загрузите последнюю версию phpMyAdmin с официального сайта:

wget https://files.phpmyadmin.net/phpMyAdmin/5.1.3/phpMyAdmin-5.1.3-all-languages.zip

После завершения загрузки разархивируйте загруженный файл с помощью следующей команды:

unzip phpMyAdmin-5.1.3-all-languages.zip

Затем переместите извлеченный каталог в корневой веб-каталог Nginx:

mv phpMyAdmin-5.1.3-all-languages /usr/share/nginx/phpmyadmin

Затем скопируйте пример файла конфигурации с помощью следующей команды:

cp /usr/share/nginx/phpmyadmin/config{.sample,}.inc.php

Затем отредактируйте файл конфигурации с помощью следующей команды:

nano /usr/share/nginx/phpmyadmin/config.inc.php

Определите свой секрет, как показано ниже:

$cfg['blowfish_secret'] = 'securekey';

Сохраните и закройте файл, затем измените владельца каталога phpMyAdmin:

chown -R nginx:nginx /usr/share/nginx/phpmyadmin
chown -R nginx:nginx /var/lib/php/session/

Настройте Nginx для phpMyAdmin

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

nano /etc/nginx/conf.d/phpmyadmin.conf

Добавьте следующие строки:

server {
    listen       80;
    server_name  phpmyadmin.example.com;
    root         /usr/share/nginx/phpmyadmin;
    
    access_log /var/log/nginx/phpmyadmin_access.log;
    error_log /var/log/nginx/phpmyadmin_error.log;

    index   index.php;

    location / {
        try_files    $uri $uri/ /index.php?$args;
    }
    location ~ \.php$ {
         try_files $uri =404;
         fastcgi_intercept_errors on;
         include        fastcgi_params;
         fastcgi_param  SCRIPT_FILENAME  $document_root$fastcgi_script_name;
         fastcgi_pass unix:/run/php-fpm/www.sock;
     }
}

Сохраните и закройте файл, затем проверьте Nginx на наличие ошибок конфигурации синтаксиса с помощью следующей команды:

nginx -t

Вы получите следующий результат:

nginx: the configuration file /etc/nginx/nginx.conf syntax is ok
nginx: configuration file /etc/nginx/nginx.conf test is successful

Затем перезапустите службу Nginx, чтобы применить изменения:

systemctl restart nginx php-fpm

Теперь вы можете проверить статус Nginx с помощью следующей команды:

systemctl status nginx

Вы должны увидеть следующий вывод:

? nginx.service - The nginx HTTP and reverse proxy server
   Loaded: loaded (/usr/lib/systemd/system/nginx.service; disabled; vendor preset: disabled)
  Drop-In: /usr/lib/systemd/system/nginx.service.d
           ??php-fpm.conf
   Active: active (running) since Fri 2022-04-15 10:06:39 UTC; 3s ago
  Process: 85445 ExecStart=/usr/sbin/nginx (code=exited, status=0/SUCCESS)
  Process: 85443 ExecStartPre=/usr/sbin/nginx -t (code=exited, status=0/SUCCESS)
  Process: 85442 ExecStartPre=/usr/bin/rm -f /run/nginx.pid (code=exited, status=0/SUCCESS)
 Main PID: 85449 (nginx)
    Tasks: 2 (limit: 11412)
   Memory: 3.8M
   CGroup: /system.slice/nginx.service
           ??85449 nginx: master process /usr/sbin/nginx
           ??85450 nginx: worker process

Apr 15 10:06:39 linux systemd[1]: nginx.service: Succeeded.
Apr 15 10:06:39 linux systemd[1]: Stopped The nginx HTTP and reverse proxy server.
Apr 15 10:06:39 linux systemd[1]: Starting The nginx HTTP and reverse proxy server...
Apr 15 10:06:39 linux nginx[85443]: nginx: the configuration file /etc/nginx/nginx.conf syntax is ok
Apr 15 10:06:39 linux nginx[85443]: nginx: configuration file /etc/nginx/nginx.conf test is successful
Apr 15 10:06:39 linux systemd[1]: nginx.service: Failed to parse PID from file /run/nginx.pid: Invalid argument
Apr 15 10:06:39 linux systemd[1]: Started The nginx HTTP and reverse proxy server.

Настроить брандмауэр

Далее вам нужно будет разрешить службу HTTP через брандмауэр. Вы можете разрешить это с помощью следующей команды:

firewall-cmd --permanent --zone public --add-service http

Затем перезагрузите брандмауэр, чтобы применить изменения:

firewall-cmd --reload

Доступ к веб-интерфейсу phpMyAdmin

Теперь откройте веб-браузер и войдите в phpMyAdmin, используя URL-адрес http://phpmyadmin.example.com. Вы должны увидеть страницу входа в phpMyAdmin:

Укажите имя пользователя и пароль администратора и нажмите кнопку Перейти. После входа в систему вы должны увидеть панель управления phpMyAdmin:

Нажмите кнопку Базы данных. Вы должны увидеть следующую страницу:

Укажите имя базы данных, которую вы хотите создать, и нажмите кнопку Создать.

Выберите базы данных, которые хотите удалить, и нажмите кнопку «Удалить», чтобы удалить базу данных. Вы должны увидеть следующую страницу:

Нажмите кнопку ОК, чтобы подтвердить и удалить выбранные базы данных.

Заключение

Поздравляем! вы успешно установили phpMyAdmin с Nginx на Alma Linux 8. Теперь вы можете управлять своими базами данных MySQL и MariaDB через веб-браузер. Не стесняйтесь спрашивать меня, если у вас есть какие-либо вопросы.