15%

Poupe 15% em todos os serviços

Teste as suas habilidades e obtenha Desconto em qualquer plano

Utilizar o código:

Skills
Começar a trabalhar
01.11.2024

Como Instalar e Proteger phpMyAdmin no Ubuntu (Guia Completo)

phpMyAdmin é uma das ferramentas de código aberto mais amplamente utilizadas para gerenciar bancos de dados MySQL e MariaDB através de uma interface gráfica baseada em navegador. Quer você seja um desenvolvedor, um administrador de sistemas ou um proprietário de site, ele simplifica dramaticamente operações complexas de banco de dados — desde executar consultas SQL até importar/exportar dados — sem exigir conhecimento de linha de comando.

No entanto, como phpMyAdmin é acessível por padrão através de uma URL pública, deixá-lo desprotegido é um risco sério. Este guia abrangente o orienta através da instalação do phpMyAdmin em Ubuntu 20.04/22.04, configurando-o com Apache e endurecendo-o contra acesso não autorizado usando múltiplas camadas de segurança.

Índice

  1. Pré-requisitos
  2. Passo 1 — Atualizar o Sistema e Índice de Pacotes
  3. Passo 2 — Instalar phpMyAdmin
  4. Passo 3 — Configurar Apache para phpMyAdmin
  5. Passo 4 — Proteger phpMyAdmin com Autenticação HTTP Básica
  6. Passo 5 — Restringir Acesso por Endereço IP (Opcional mas Recomendado)
  7. Passo 6 — Ativar SSL para Criptografar Tráfego
  8. Passo 7 — Acessar phpMyAdmin
  9. Resolução de Problemas Comuns
  10. Conclusão

Pré-requisitos {#prerequisites}

Antes de começar, certifique-se de que os seguintes requisitos estão em vigor:

  • Um servidor executando Ubuntu 20.04 ou 22.04 (físico ou virtual)
  • MySQL ou MariaDB instalado e ativo
  • Servidor web Apache2 instalado
  • Uma conta de usuário com privilégios sudo
  • Um nome de domínio ou endereço IP estático apontando para seu servidor
  • (Recomendado) Um certificado SSL válido para acesso HTTPS criptografado

> Dica: Se você ainda não tem um ambiente de servidor, considere Hospedagem VPS AlexHost — planos VPS Linux totalmente gerenciados ou não gerenciados com provisionamento instantâneo, acesso root e armazenamento SSD, ideal para executar phpMyAdmin com segurança.

Passo 1 — Atualizar o Sistema e Índice de Pacotes {#step-1}

Sempre comece atualizando suas listas de pacotes e aplicando quaisquer atualizações de sistema pendentes. Isso garante que você instale a versão mais recente disponível do phpMyAdmin e evite conflitos de dependência.

sudo apt update && sudo apt upgrade -y

Passo 2 — Instalar phpMyAdmin {#step-2}

Instale phpMyAdmin usando o repositório APT oficial do Ubuntu:

sudo apt install phpmyadmin -y

Durante a instalação, um assistente de configuração interativo aparecerá. Siga estas etapas com cuidado:

2.1 — Escolher um Servidor Web

Você será solicitado a selecionar um servidor web para configurar automaticamente:

Please choose the web server that should be automatically configured to run phpMyAdmin.

  [*] apache2
  [ ] lighttpd

Use a barra de espaço para selecionar apache2, depois pressione Tab para destacar <Ok> e pressione Enter.

2.2 — Configurar o Banco de Dados com dbconfig-common

Em seguida, você será perguntado se deseja configurar um banco de dados para phpMyAdmin usando dbconfig-common:

Configure database for phpmyadmin with dbconfig-common?

Selecione Sim. Você será então solicitado a inserir uma senha de aplicação MySQL para o usuário de banco de dados interno do phpMyAdmin. Insira uma senha forte ou deixe em branco para que uma seja gerada automaticamente.

2.3 — Verificar a Instalação

Após a conclusão da instalação, confirme que phpMyAdmin está instalado:

dpkg -l phpmyadmin

Você deve ver uma linha mostrando a versão do pacote instalado.

Passo 3 — Configurar Apache para phpMyAdmin {#step-3}

Em algumas configurações do Ubuntu, o arquivo de configuração Apache do phpMyAdmin não é ativado automaticamente. Verifique e ative-o manualmente.

3.1 — Ativar a Configuração phpMyAdmin

sudo ln -s /etc/phpmyadmin/apache.conf /etc/apache2/conf-available/phpmyadmin.conf
sudo a2enconf phpmyadmin

3.2 — Verificar o Arquivo de Configuração

Abra o arquivo de configuração para revisar seu conteúdo:

sudo nano /etc/apache2/conf-available/phpmyadmin.conf

O arquivo deve conter as seguintes diretivas (ou semelhantes):

Alias /phpmyadmin /usr/share/phpmyadmin

<Directory /usr/share/phpmyadmin>
    Options Indexes FollowSymLinks
    DirectoryIndex index.php

    <IfModule mod_authz_core.c>
        # Apache 2.4
        <RequireAny>
            Require all granted
        </RequireAny>
    </IfModule>
</Directory>

<Directory /usr/share/phpmyadmin/setup>
    <IfModule mod_authz_core.c>
        # Apache 2.4
        <RequireAny>
            Require all granted
        </RequireAny>
    </IfModule>
</Directory>

Salve e feche o arquivo com CTRL+X, depois Y, depois Enter.

3.3 — Reiniciar Apache

Aplique as alterações de configuração:

sudo systemctl restart apache2

Verifique se Apache está funcionando sem erros:

sudo systemctl status apache2

Passo 4 — Proteger phpMyAdmin com Autenticação HTTP Básica {#step-4}

Por padrão, qualquer pessoa que conheça o endereço IP do seu servidor pode acessar a página de login do phpMyAdmin. Adicionar uma camada de Autenticação HTTP Básica cria um segundo portão de senha antes que os usuários vejam o formulário de login do phpMyAdmin.

4.1 — Instalar apache2-utils

sudo apt install apache2-utils -y

4.2 — Criar o Arquivo de Senha e Usuário

Crie um arquivo .htpasswd e adicione seu primeiro usuário administrativo. Substitua your_admin_user pelo nome de usuário escolhido:

sudo mkdir -p /etc/phpmyadmin
sudo htpasswd -c /etc/phpmyadmin/.htpasswd your_admin_user

Você será solicitado a inserir e confirmar uma senha. Para adicionar usuários adicionais posteriormente (sem a flag -c, que sobrescreveria o arquivo):

sudo htpasswd /etc/phpmyadmin/.htpasswd another_user

4.3 — Atualizar a Configuração Apache do phpMyAdmin

Edite o arquivo de configuração phpMyAdmin para impor autenticação:

sudo nano /etc/apache2/conf-available/phpmyadmin.conf

Localize o bloco <Directory /usr/share/phpmyadmin> e adicione as seguintes linhas dentro dele:

<Directory /usr/share/phpmyadmin>
    Options Indexes FollowSymLinks
    DirectoryIndex index.php

    # HTTP Basic Authentication
    AuthType Basic
    AuthName "Restricted Access — Authorized Personnel Only"
    AuthUserFile /etc/phpmyadmin/.htpasswd
    Require valid-user

    <IfModule mod_authz_core.c>
        <RequireAny>
            Require valid-user
        </RequireAny>
    </IfModule>
</Directory>

Salve e feche o arquivo.

4.4 — Reiniciar Apache

sudo systemctl restart apache2

Agora, navegar para /phpmyadmin primeiro solicitará as credenciais de autenticação HTTP antes de exibir a página de login do phpMyAdmin.

Passo 5 — Restringir Acesso por Endereço IP (Opcional mas Recomendado) {#step-5}

Para proteção ainda mais forte, restrinja o acesso ao phpMyAdmin apenas a endereços IP confiáveis específicos. Isso é especialmente útil se você sempre acessa seu servidor a partir de um IP fixo (como uma rede de escritório ou uma VPN).

Edite a configuração Apache do phpMyAdmin:

sudo nano /etc/apache2/conf-available/phpmyadmin.conf

Modifique o bloco <Directory> para incluir restrições baseadas em IP:

<Directory /usr/share/phpmyadmin>
    Options Indexes FollowSymLinks
    DirectoryIndex index.php

    AuthType Basic
    AuthName "Restricted Access"
    AuthUserFile /etc/phpmyadmin/.htpasswd

    <RequireAll>
        Require valid-user
        Require ip 203.0.113.50
        # Add more trusted IPs below:
        # Require ip 198.51.100.0/24
    </RequireAll>
</Directory>

Substitua 203.0.113.50 pelo seu endereço IP ou sub-rede confiável real. Salve o arquivo e reinicie Apache:

sudo systemctl restart apache2

> Nota: Se seu endereço IP muda frequentemente, considere usar uma VPN com um IP estático, ou confie apenas em Autenticação HTTP Básica combinada com SSL.

Passo 6 — Ativar SSL para Criptografar Tráfego {#step-6}

Enviar credenciais de banco de dados por HTTP simples é um risco crítico de segurança. Você sempre deve acessar phpMyAdmin por HTTPS. Existem duas abordagens principais:

Opção A — Usar um Certificado SSL Let’s Encrypt (Gratuito)

Se você tem um nome de domínio apontando para seu servidor, instale Certbot:

sudo apt install certbot python3-certbot-apache -y
sudo certbot --apache -d yourdomain.com

Certbot configurará automaticamente Apache para redirecionar HTTP para HTTPS e instalar um certificado gratuito e auto-renovável.

Opção B — Usar um Certificado SSL Comercial

Para ambientes de produção que lidam com dados sensíveis, um certificado SSL emitido comercialmente fornece sinais de confiança mais fortes e proteção de garantia. Você pode obter certificados SSL confiáveis diretamente de Certificados SSL AlexHost, com opções que variam de Validação de Domínio (DV) a certificados de Validação Estendida (EV).

Após instalar seu certificado SSL, certifique-se de que sua URL phpMyAdmin usa https://:

https://yourdomain.com/phpmyadmin

Passo 7 — Acessar phpMyAdmin {#step-7}

Com a instalação e medidas de segurança em vigor, abra seu navegador e navegue para:

https://your_server_ip_or_domain/phpmyadmin

Você encontrará dois prompts de autenticação em sequência:

  1. Prompt de Autenticação HTTP Básica — Insira o nome de usuário e senha que você criou com htpasswd
  2. Página de login do phpMyAdmin — Insira seu nome de usuário MySQL/MariaDB (por exemplo, root) e sua senha

Após o login bem-sucedido, você terá acesso completo aos seus bancos de dados MySQL através da interface gráfica do phpMyAdmin.

Resolução de Problemas Comuns {#troubleshooting}

phpMyAdmin Retorna um Erro 404 Not Found

A configuração Apache pode não estar vinculada ou ativada. Execute:

sudo a2enconf phpmyadmin
sudo systemctl reload apache2

Também verifique se o symlink existe:

ls -la /etc/apache2/conf-available/phpmyadmin.conf

Erro “Cannot Connect to MySQL Server”

Verifique se MySQL/MariaDB está em execução:

sudo systemctl status mysql
# or for MariaDB:
sudo systemctl status mariadb

Se estiver parado, inicie-o:

sudo systemctl start mysql

Erro HTTP 500 Internal Server Error

Isso geralmente indica que um módulo PHP está faltando. Instale as extensões PHP necessárias:

sudo apt install php-mbstring php-zip php-gd php-json php-curl -y
sudo systemctl restart apache2

Página em Branco Após Login

Limpe o cache do seu navegador, ou verifique os logs de erro do Apache para obter detalhes:

sudo tail -f /var/log/apache2/error.log

Resumo das Melhores Práticas de Segurança

Antes de entrar em produção, revise esta lista de verificação de segurança:

Medida de SegurançaStatus
Autenticação HTTP Básica ativada
SSL/HTTPS configurado
Restrição de IP aplicada (se aplicável)
Login raiz MySQL desativado remotamente
URL phpMyAdmin alterada do padrão /phpmyadminRecomendado
Atualizações de sistema agendadas regularmente
Firewall (UFW) configuradoRecomendado

Renomear a URL phpMyAdmin (Passo de Endurecimento Bônus)

Alterar o caminho de URL padrão /phpmyadmin para algo menos previsível reduz significativamente ataques de bots automatizados. Edite a configuração Apache:

sudo nano /etc/apache2/conf-available/phpmyadmin.conf

Altere:

Alias /phpmyadmin /usr/share/phpmyadmin

Para algo menos óbvio:

Alias /db-manager-2024 /usr/share/phpmyadmin

Reinicie Apache e atualize seus marcadores de acordo.

Conclusão {#conclusion}

Instalar phpMyAdmin no Ubuntu é um processo

15%

Poupe 15% em todos os serviços

Teste as suas habilidades e obtenha Desconto em qualquer plano

Utilizar o código:

Skills
Começar a trabalhar