phpMyAdmin · 7 min read · Nov 06, 2025

Instalar e Proteger o phpMyAdmin no CentOS 8

phpMyAdmin é uma ferramenta gratuita e de código aberto para gerenciar servidores MySQL e MariaDB através de uma interface baseada na web. Com o phpMyAdmin, você pode criar e gerenciar bancos de dados e usuários, executar instruções SQL, importar e exportar dados, e realizar atividades de banco de dados, como criar, excluir, tabelas, colunas, índices, permissões e muito mais. O phpMyAdmin é uma das ferramentas de administração mais populares e amplamente utilizadas, especialmente para serviços de hospedagem na web.

Recursos

  • Fornece uma interface web simples e amigável.

  • Importa dados de CSV e SQL.

  • Suporta a maioria dos recursos do MySQL, incluindo criar, copiar, excluir, renomear, excluir e alterar bancos de dados, tabelas, campos e índices.

  • Permite exportar dados para vários formatos, como PDF, CSV, SQL, XML e muitos mais.

  • Gerencia múltiplos servidores.

  • Cria consultas complexas usando Consulta-por-exemplo (QBE).

Neste tutorial, mostraremos como instalar e proteger o phpMyAdmin em um servidor CentOS 8.

Requisitos

  • Um servidor rodando CentOS 8.

  • Uma senha de root configurada no servidor.

Instalar o Servidor LAMP

Primeiro, você precisará instalar o Apache, MariaDB, PHP e outras bibliotecas PHP em seu servidor. Você pode instalar todos eles com o seguinte comando:

dnf install httpd mariadb-server php php-pdo php-pecl-zip php-json php-common php-fpm php-mbstring php-cli php-mysqlnd php-json php-mbstring wget unzip

Uma vez que todos os pacotes estejam instalados, inicie o serviço do Apache e do MariaDB e habilite-os para iniciar após a reinicialização do sistema com o seguinte comando:

systemctl start httpd  
systemctl start mariadb  
systemctl enable httpd  
systemctl enable mariadb

Uma vez que você tenha terminado, pode prosseguir para o próximo passo.

Configurar o MariaDB

Por padrão, o MariaDB não está seguro. Portanto, você precisará protegê-lo primeiro. Você pode fazer isso executando o script mysql_secure_installation:

mysql_secure_installation

Responda a todas as perguntas conforme mostrado abaixo:

Definir senha root? [Y/n] Y
Nova senha: 
Remover usuários anônimos? [Y/n] Y
Desabilitar login root remotamente? [Y/n] Y
Remover banco de dados de teste e acesso a ele? [Y/n] Y
Recarregar tabelas de privilégios agora? [Y/n] Y

Uma vez que você tenha terminado, você deve ver a seguinte saída:

 ... Sucesso!

Limpando...

Tudo pronto! Se você completou todas as etapas acima, sua instalação do MariaDB
agora deve estar segura.

Obrigado por usar o MariaDB!

Neste ponto, sua instalação do MariaDB está segura.

Instalar o phpMyAdmin

Por padrão, o phpMyAdmin não está disponível no repositório padrão do CentOS 8. Portanto, você precisará baixar a versão mais recente do phpMyAdmin do site oficial deles. Você pode baixá-lo com o seguinte comando:

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

Uma vez baixado, descompacte o arquivo baixado com o seguinte comando:

unzip phpMyAdmin-4.9.2-all-languages.zip

Em seguida, mova o conteúdo extraído para o diretório /usr/share conforme mostrado abaixo:

mv phpMyAdmin-4.9.2-all-languages /usr/share/phpmyadmin

Em seguida, mude o diretório para /usr/share/phpmyadmin e renomeie o arquivo config.sample.inc.php:

cd /usr/share/phpmyadmin  
mv config.sample.inc.php config.inc.php

Em seguida, abra o arquivo com seu editor de texto favorito conforme mostrado abaixo:

nano config.inc.php

Altere a seguinte linha:

$cfg['blowfish_secret'] = 'sua-senha-secreta';

Salve e feche o arquivo quando terminar. Em seguida, importe o create_tables.sql com o seguinte comando:

mysql < /usr/share/phpmyadmin/sql/create_tables.sql -u root -p

Forneça sua senha de root quando solicitado para importar a tabela.

Em seguida, crie um diretório tmp para o phpmyadmin e dê as permissões adequadas:

mkdir /usr/share/phpmyadmin/tmp  
chown -R apache:apache /usr/share/phpmyadmin  
chmod 777 /usr/share/phpmyadmin/tmp

Configurar o Apache para o phpMyAdmin

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

nano /etc/httpd/conf.d/phpmyadmin.conf

Adicione as seguintes linhas:

Alias /phpmyadmin /usr/share/phpmyadmin


   AddDefaultCharset UTF-8

   
     # Apache 2.4
      
      Require all granted
     
   
   
     # Apache 2.2
     Order Deny,Allow
     Deny from All
     Allow from 127.0.0.1
     Allow from ::1
   



   
     # Apache 2.4
     
       Require all granted
     
   
   
     # Apache 2.2
     Order Deny,Allow
     Deny from All
     Allow from 127.0.0.1
     Allow from ::1
   

Salve e feche o arquivo quando terminar. Em seguida, reinicie o serviço do Apache com o seguinte comando:

systemctl restart httpd

Você pode verificar o status do Apache com o seguinte comando:

systemctl status httpd

Você deve ver a seguinte saída:

? httpd.service - O Servidor HTTP Apache
   Loaded: loaded (/usr/lib/systemd/system/httpd.service; enabled; vendor preset: disabled)
  Drop-In: /usr/lib/systemd/system/httpd.service.d
           ??php-fpm.conf
   Active: active (running) since Wed 2019-12-18 01:07:52 EST; 6s ago
     Docs: man:httpd.service(8)
 Main PID: 5636 (httpd)
   Status: "Iniciado, ouvindo na: porta 80"
    Tasks: 213 (limite: 25044)
   Memory: 28.7M
   CGroup: /system.slice/httpd.service
           ??5636 /usr/sbin/httpd -DFOREGROUND
           ??5639 /usr/sbin/httpd -DFOREGROUND
           ??5640 /usr/sbin/httpd -DFOREGROUND
           ??5641 /usr/sbin/httpd -DFOREGROUND
           ??5642 /usr/sbin/httpd -DFOREGROUND

Dec 18 01:07:52 centos8 systemd[1]: Stopped O Servidor HTTP Apache.
Dec 18 01:07:52 centos8 systemd[1]: Starting O Servidor HTTP Apache...
Dec 18 01:07:52 centos8 httpd[5636]: AH00558: httpd: Não foi possível determinar de forma confiável o nome de domínio totalmente qualificado do servidor, usando fe80::200:d0>
Dec 18 01:07:52 centos8 httpd[5636]: Servidor configurado, ouvindo na: porta 80
Dec 18 01:07:52 centos8 systemd[1]: Started O Servidor HTTP Apache.

Configurar SELinux e Firewall

Por padrão, o SELinux está habilitado no CentOS 8. Portanto, você precisará configurar o SELinux para que o phpMyAdmin funcione corretamente.

Primeiro, instale o pacote policycoreutils-python-utils para gerenciar um ambiente SELinux com o seguinte comando:

dnf install policycoreutils-python-utils

Em seguida, habilite o acesso ao diretório /usr/share/phpmyadmin com o seguinte comando:

semanage fcontext -a -t httpd_sys_rw_content_t '/usr/share/phpmyadmin/'  
semanage fcontext -a -t httpd_sys_rw_content_t "/usr/share/phpmyadmin/tmp(/.*)?"

Agora, recursivamente, percorra todos os arquivos no seu diretório phpmyadmin executando o seguinte comando:

restorecon -Rv '/usr/share/phpmyadmin/'

Em seguida, você precisará criar uma regra de firewall para permitir o serviço HTTP de redes externas. Você pode permitir com o seguinte comando:

f firewall-cmd --permanent --add-service=http  
f firewall-cmd --reload

O phpMyAdmin agora está instalado e configurado. Agora é hora de verificar se está funcionando ou não.

Abra seu navegador e digite a URL http://your-server-ip/phpmyadmin. Você será redirecionado para a seguinte página:

Login do PHPMyAdmin

Proteger o phpMyAdmin

Neste ponto, a instância do phpMyAdmin está funcionando corretamente. No entanto, proteger sua instância do phpMyAdmin do mundo exterior é uma tarefa importante para você. Nesta seção, mostraremos como proteger sua instância do phpMyAdmin.

Permitir phpMyAdmin de IPs Específicos

Primeiro, você precisará configurar seu phpMyAdmin para ser acessível apenas a partir do endereço IP da sua conexão de casa.

Você pode configurá-lo editando o arquivo /etc/httpd/conf.d/phpmyadmin.conf:

nano /etc/httpd/conf.d/phpmyadmin.conf

Encontre as seguintes linhas:

     
       Require all granted
     

E substitua-as pelas seguintes:


    Require ip seu-endereço-ip-da-conexão-casa
    Require ip ::1

Salve e feche o arquivo quando terminar.

Configurar uma Camada Extra de Autenticação

É uma boa ideia proteger seu diretório phpmyadmin com senha, configurando uma autenticação básica.

Para fazer isso, crie um novo arquivo de autenticação usando a ferramenta htpasswd conforme mostrado abaixo:

mkdir /etc/phpmyadmin  
htpasswd -c /etc/phpmyadmin/.htpasswd admin

Você será solicitado a fornecer sua senha de admin conforme mostrado abaixo:

Nova senha: 
Re-digite a nova senha: 
Adicionando senha para o usuário admin

Em seguida, você precisará configurar o Apache para usar o arquivo .htpasswd. Você pode fazer isso editando o arquivo /etc/httpd/conf.d/phpmyadmin.conf.

nano /etc/httpd/conf.d/phpmyadmin.conf

Adicione as seguintes linhas abaixo da linha “AddDefaultCharset UTF-8”:

    Options  +FollowSymLinks +Multiviews +Indexes
    AllowOverride None
    AuthType basic
    AuthName "Autenticação Necessária"
    AuthUserFile /etc/phpmyadmin/.htpasswd
    Require valid-user

Salve o arquivo e reinicie o serviço do Apache para que as alterações tenham efeito:

systemctl restart httpd

Acessar o phpMyAdmin

Agora, sua instância do phpMyAdmin está protegida com uma camada extra de segurança. Abra seu navegador e digite a URL http://your-server-ip/phpmyadmin. Você será solicitado a inserir as credenciais de login do usuário que você criou anteriormente, conforme mostrado abaixo:

phpMyAdmin Seguro

Forneça seu nome de usuário e senha de admin, em seguida, clique no botão OK. Você será redirecionado para a página de login do phpMyAdmin:

Login como usuário root no phpMyAdmin

Agora, forneça suas credenciais de login do usuário administrativo do MySQL e clique no botão Ir. Você deve ver a seguinte página:

painel de controle do banco de dados phpMyAdmin

Conclusão

Parabéns! você instalou e protegeu com sucesso o phpMyAdmin no servidor CentOS 8. Agora você pode criar bancos de dados, usuários, tabelas e gerenciá-los a partir da interface baseada na web. Sinta-se à vontade para me perguntar se você tiver alguma dúvida.

Share: X/Twitter LinkedIn

Receba novas postagens na sua caixa de entrada

Sem spam. Cancele a assinatura a qualquer momento.