Pesquisa de site

Como instalar e proteger o phpMyAdmin no Alma Linux 8


phpMyAdmin é um aplicativo de gerenciamento de banco de dados gratuito e de código aberto para MySQL e MariaDB. Ele permite gerenciar, executar várias tarefas relacionadas ao banco de dados e executar consultas a partir de uma interface baseada na web. Ele é escrito em PHP e fornece uma interface robusta e amigável para gerenciamento de bancos de dados por meio de um navegador web. É multiplataforma e pode ser executado em vários sistemas operacionais, incluindo Windows, macOS, Linux e BSDs.

Neste tutorial, você aprenderá como instalar o phpMyAdmin no Alma Linux 8.

Pré-requisitos

  • Um servidor rodando Alma Linux 8.
  • Nome de domínio válido apontado com o IP do seu servidor.
  • Uma senha root é configurada no servidor.

Instale o servidor LEMP

Primeiro, instale o servidor web Nginx e o servidor de banco de dados MariaDB com o seguinte comando:

dnf install nginx mariadb -y

Em seguida, instale o repositório Remi PHP com o seguinte comando:

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

Em seguida, desative o módulo PHP padrão e habilite o módulo Remi PHP com o seguinte comando:

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

A seguir, instale o PHP com outras extensões necessárias usando o seguinte comando:

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

Depois que todos os pacotes estiverem instalados, edite o arquivo de configuração do PHP-FPM:

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

Altere o usuário e grupo de apache para Nginx:

user = nginx
group = nginx

Salve e feche o arquivo e inicie e habilite os serviços Nginx, MariaDB e PHP-FPM com o seguinte comando:

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

Crie um usuário para phpMyAdmin

A seguir, é recomendado criar um usuário separado para o phpMyAdmin para realizar todas as tarefas de gerenciamento de banco de dados. Primeiro, proteja o MariaDB executando o seguinte comando:

mysql_secure_installation

Este script definirá uma senha root, removerá usuários anônimos, proibirá o login root remotamente e removerá o banco de dados de teste conforme mostrado abaixo:

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

Em seguida, faça login no MariaDB com o seguinte comando:

mysql

Depois de logado, crie um banco de dados e um usuário com o seguinte comando:

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

Em seguida, conceda todos os privilégios ao usuário administrador:

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

Em seguida, libere os privilégios e saia do console MariaDB com o seguinte comando:

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

Instale o phpMyAdmin no Alma Linux 8

A seguir, baixe a versão mais recente do phpMyAdmin em seu site oficial:

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

Assim que o download for concluído, descompacte o arquivo baixado com o seguinte comando:

unzip phpMyAdmin-5.1.3-all-languages.zip

Em seguida, mova o diretório extraído para o diretório raiz da web Nginx:

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

Em seguida, copie o arquivo de configuração de amostra usando o seguinte comando:

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

Em seguida, edite o arquivo de configuração usando o seguinte comando:

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

Defina seu segredo conforme mostrado abaixo:

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

Salve e feche o arquivo e altere a propriedade do diretório phpMyAdmin:

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

Configurar Nginx para phpMyAdmin

Em seguida, você precisará criar um arquivo de configuração de host virtual Nginx para phpMyAdmin. Você pode criá-lo com o seguinte comando:

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

Adicione as seguintes linhas:

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;
     }
}

Salve e feche o arquivo e verifique se há algum erro de configuração de sintaxe no Nginx com o seguinte comando:

nginx -t

Você obterá a seguinte saída:

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

Em seguida, reinicie o serviço Nginx para aplicar as alterações:

systemctl restart nginx php-fpm

Agora você pode verificar o status do Nginx usando o seguinte comando:

systemctl status nginx

Você deverá ver a seguinte saída:

? 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.

Configurar Firewall

Em seguida, você precisará permitir o serviço HTTP através do firewall. Você pode permitir isso com o seguinte comando:

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

Em seguida, recarregue o firewall para aplicar as alterações:

firewall-cmd --reload

Acesse a interface da web do phpMyAdmin

Agora, abra seu navegador e acesse o phpMyAdmin usando a URL http://phpmyadmin.example.com. Você deverá ver a página de login do phpMyAdmin:

Forneça seu nome de usuário e senha de administrador e clique no botão Ir. Depois de fazer login, você deverá ver o painel do phpMyAdmin:

Clique no botão Bancos de dados. Você deverá ver a seguinte página:

Forneça o nome do banco de dados que deseja criar e clique no botão Criar.

Selecione os bancos de dados que deseja excluir e clique no botão Soltar para excluir um banco de dados. Você deverá ver a seguinte página:

Clique no botão OK para confirmar e excluir os bancos de dados selecionados.

Conclusão

Parabéns! você instalou com sucesso o phpMyAdmin com Nginx no Alma Linux 8. Agora você pode gerenciar seus bancos de dados MySQL e MariaDB por meio de um navegador da web. Sinta-se à vontade para me perguntar se tiver alguma dúvida.