Instalar phpMyAdmin no Ubuntu: passo a passo na VPS
Instale o phpMyAdmin no Ubuntu pelo apt, escolha Apache ou Nginx, crie um usuário MySQL para entrar e proteja o painel com HTTPS, senha forte e restrição.
Por Redação Eleven Host · @robson.direitodigital · 29 de outubro de 2026 · 9 min de leitura

Capa da Redação Eleven Host para o guia: Instalar phpMyAdmin no Ubuntu: passo a passo na VPS Arte: Eleven Host
Para instalar phpMyAdmin no Ubuntu, rode sudo apt install phpmyadmin, escolha o servidor web quando o instalador perguntar e crie um usuário MySQL com senha para entrar. Com Apache o pacote se configura sozinho; com Nginx a configuração é manual.
Este passo a passo leva você da instalação ao primeiro login numa VPS com Ubuntu. Ele explica as perguntas do instalador, os dois caminhos de servidor web, o problema do usuário root e as medidas de segurança que a documentação do phpMyAdmin recomenda. Os comandos seguem o guia do Ubuntu e a documentação do projeto, e usamos seudominio.com.br e o IP de exemplo 203.0.113.10 no lugar dos seus dados.
O que é o phpMyAdmin e o que você precisa antes
O phpMyAdmin é uma interface web para administrar bancos MySQL pelo navegador. Ele conversa com um servidor MySQL. Por isso, o guia do Ubuntu pede um MySQL acessível, no mesmo servidor ou pela rede.
Antes de começar, confira estes itens:
- MySQL funcionando: se ainda não tem, siga o guia Instalar MySQL no Ubuntu: passo a passo na VPS.
- Usuário com sudo: os comandos abaixo usam
sudo. Para criar esse usuário, veja Criar usuário sudo na VPS Ubuntu: passo a passo. - Servidor web: o phpMyAdmin é uma aplicação PHP e precisa de um servidor web. O guia Instalar Apache no Ubuntu: passo a passo na VPS cobre o Apache; o artigo Instalar Nginx no Ubuntu: passo a passo na VPS cobre o Nginx.
Instale o servidor web antes do phpMyAdmin, para o instalador conseguir configurá-lo na hora.
Instalar o phpMyAdmin pelo apt
Atualize a lista de pacotes e instale:
sudo apt update
sudo apt install phpmyadmin
Durante a instalação, o guia do Ubuntu descreve uma pergunta sobre qual servidor web configurar para o phpMyAdmin. O guia usa o Apache2 como exemplo. Marque o seu servidor na lista; se o seu servidor não estiver na lista, não marque nenhum (veja a seção sobre Nginx).
O instalador também pode perguntar se deve configurar o banco do próprio phpMyAdmin com o dbconfig-common. Segundo a documentação do projeto, o pacote Debian e Ubuntu cria o armazenamento de configuração do phpMyAdmin por esse recurso. Aceitar (Yes) é o caminho usual, e o instalador pede uma senha para esse banco interno. Guarde essa senha em um gerenciador.
Essa senha do instalador é diferente da senha que você usará para entrar no painel. O login do phpMyAdmin usa um usuário do MySQL, e o passo a seguir mostra como preparar um.
Instalar o phpMyAdmin com Apache
Segundo a documentação do phpMyAdmin, o pacote configura sozinho o Apache e o lighttpd. Escolhendo o Apache na pergunta do instalador, o endereço já deve responder. Os arquivos de configuração ficam em /etc/phpmyadmin: o principal é /etc/phpmyadmin/config.inc.php e o do Apache é /etc/phpmyadmin/apache.conf.
Se o Apache não ficou configurado, o guia do Ubuntu indica estes três comandos:
sudo ln -s /etc/phpmyadmin/apache.conf /etc/apache2/conf-available/phpmyadmin.conf
sudo a2enconf phpmyadmin.conf
sudo systemctl reload apache2.service
Depois abra o endereço no navegador. Com um domínio apontado para a VPS, use o endereço abaixo; sem domínio, use o IP:
https://seudominio.com.br/phpmyadmin
http://203.0.113.10/phpmyadmin
Repare que o endereço com IP usa HTTP, sem criptografia. Use esse formato só para conferir que a página abre e passe a usar HTTPS antes de digitar uma senha de verdade (veja a seção de segurança).
Quer um endereço com o seu nome para acessar seus projetos? Busque e registre seu domínio na Eleven Host. Registrar domínio
Instalar o phpMyAdmin com Nginx
A documentação mostra que o pacote só configura Apache e lighttpd. Com Nginx, o pacote instala os arquivos, mas a configuração do servidor web fica por sua conta. O caminho é este:
- Na pergunta do instalador sobre o servidor web, não marque nenhuma opção.
- Configure à mão um
location /phpmyadminno seu blocoserver, apontando para a pasta do programa,/usr/share/phpmyadmin, e entregando os arquivos PHP ao PHP-FPM. - Teste a sintaxe antes de aplicar:
sudo nginx -t
- Se o teste passar, recarregue o Nginx:
sudo systemctl reload nginx
Este guia não traz um bloco de Nginx pronto. Se você prefere um caminho com menos configuração manual, o pacote configura o Apache sozinho.
Com qual usuário entrar no phpMyAdmin
O guia do Ubuntu diz para entrar com o root ou com um usuário MySQL que já exista. No Ubuntu, porém, o root do MySQL pode usar o plugin auth_socket. A documentação do MySQL descreve esse plugin: ele autentica clientes que conectam da máquina local pelo arquivo de socket e confere se o nome de usuário do sistema operacional é igual ao nome de usuário do MySQL.
Como o phpMyAdmin entra com senha, o root com auth_socket não consegue logar por ele. A solução é criar um usuário próprio. Entre no MySQL pelo terminal:
sudo mysql
E crie o usuário, trocando a senha de exemplo por uma senha forte:
CREATE USER 'admin_pma'@'localhost' IDENTIFIED BY 'SenhaForte';
GRANT ALL PRIVILEGES ON *.* TO 'admin_pma'@'localhost' WITH GRANT OPTION;
Esse usuário tem poder total sobre o servidor MySQL. Se você usa o phpMyAdmin para cuidar de um banco só, prefira dar privilégios apenas nele, por exemplo GRANT ALL PRIVILEGES ON loja.* TO .... O guia Criar usuário MySQL: como dar permissões com GRANT explica cada parte desses comandos.
Agora volte ao navegador, abra o endereço do phpMyAdmin e entre com admin_pma e a senha definida.
Como proteger o phpMyAdmin
Um painel que administra seus bancos é um alvo para tentativas de acesso. A seção de segurança da documentação do phpMyAdmin reúne medidas que você pode combinar:
- Servir só por HTTPS: a documentação diz literalmente para servir o phpMyAdmin apenas em HTTPS e recomenda também o HSTS. O guia Redirecionar HTTP para HTTPS: passo a passo no Nginx ajuda nesse ponto.
- Manter atualizado: acompanhe os avisos de segurança do projeto e atualize o pacote.
- Senha forte e usuário próprio: com a autenticação padrão, chamada
cookie, um usuário MySQL válido consegue entrar, então uma senha fraca em uma conta é uma porta aberta. - Proibir o root: a opção
AllowRootimpede o login do root pelo painel. - Camada extra de autenticação: a documentação sugere uma autenticação HTTP na frente, como o Basic auth do Apache com um arquivo criado pelo
htpasswd. - Verificação em duas etapas: ative o two-factor na sua conta do phpMyAdmin.
- Bloquear robôs de busca: use o
robots.txtou uma regra do servidor web. - Registrar logins que falham: as falhas vão para o syslog, configuradas pela opção
AuthLog, e ferramentas como o fail2ban podem usar esse registro para barrar tentativas repetidas. - Captcha no login: as opções
CaptchaLoginPublicKeyeCaptchaLoginPrivateKeyligam esse recurso. - Apagar a pasta setup: depois da configuração inicial. No Debian e no Ubuntu, o pacote já protege o setup.
Para proibir o root, edite /etc/phpmyadmin/config.inc.php e acrescente a linha:
$cfg['Servers'][$i]['AllowRoot'] = false;
Restringir por usuário e IP
A documentação de configuração permite limitar quem entra por usuário e endereço. O exemplo abaixo, também em /etc/phpmyadmin/config.inc.php, deixa o usuário admin_pma entrar apenas a partir do IP de exemplo 198.51.100.20:
$cfg['Servers'][$i]['AllowDeny']['order'] = 'explicit';
$cfg['Servers'][$i]['AllowDeny']['rules'] = ['allow admin_pma from 198.51.100.20'];
No modo explicit, o usuário e o endereço precisam estar nas regras de allow e fora das de deny. Troque o IP de exemplo pelo seu. Você também pode restringir por IP no próprio Apache, com Require ip, ou no firewall.
Trocar o endereço /phpmyadmin por outro nome, editando a linha Alias em /etc/phpmyadmin/apache.conf, reduz a visita de robôs, mas não é proteção. A documentação de segurança do phpMyAdmin não fala em trocar o endereço, então use essa troca só como complemento às medidas acima.
Erros comuns ao instalar o phpMyAdmin
- Página não encontrada em /phpmyadmin: o servidor web pode não ter ficado configurado. No Apache, rode os três comandos da seção correspondente. No Nginx, falta o
locationmanual. - Access denied ao entrar com o root: o root pode usar
auth_socket. Entre com o usuário criado na seção anterior. Se a mensagem for do MySQL, o artigo Erro 1045 MySQL: Access denied for user, como resolver detalha as causas. - Login recusado para um usuário que existe: confira o host da conta. O usuário
admin_pma@localhostsó vale para conexões locais. - Apache não recarrega: confira se os três comandos foram digitados exatamente como no guia, sem erro de nome no arquivo
phpmyadmin.conf. - Tela do instalador sem opção marcada: se você pulou a escolha do servidor web, use os comandos manuais do Apache mostrados acima.
Checklist do phpMyAdmin
- O MySQL está instalado e responde ao
sudo mysql. - O servidor web (Apache ou Nginx) está instalado e abre a página inicial.
- Rodei
sudo apt updateesudo apt install phpmyadmin. - Marquei o servidor web correto na pergunta do instalador.
- No Nginx, criei o
location /phpmyadmine testei comsudo nginx -t. - Criei um usuário MySQL próprio, com senha forte, em vez de usar o root.
- Dei privilégios só nos bancos que esse usuário precisa.
- Passei a acessar por HTTPS antes de digitar senhas.
- Ativei ao menos uma camada extra: IP permitido, Basic auth ou verificação em duas etapas.
Prefere ter um servidor só seu para seus projetos? A VPS Plano Bronze sai a partir de R$ 17,00/mês; confira na loja o que cada plano inclui. Ver planos de VPS
Perguntas frequentes
Preciso do MySQL antes de instalar o phpMyAdmin?
O guia do Ubuntu pede um MySQL acessível, no mesmo servidor ou pela rede. Confira isso antes de instalar.
Por que o root não entra no phpMyAdmin?
No Ubuntu, o root do MySQL pode usar o plugin auth_socket, que confere se o usuário do sistema coincide com o usuário do MySQL, em vez de pedir a senha. Crie um usuário próprio com senha, como mostrado acima.
Dá para usar o phpMyAdmin com Nginx?
Dá, mas a configuração é manual: o pacote só configura Apache e lighttpd. Não marque servidor na pergunta do instalador, crie o location e teste com sudo nginx -t.
É seguro deixar o phpMyAdmin aberto na internet?
Não trate isso como seguro. Use HTTPS, senha forte, usuário próprio e, de preferência, restrição por IP ou uma camada extra de autenticação.