Como instalar o phpMyAdmin com Nginx (LEMP) no Ubuntu 20.04 LTS
Este tutorial mostrará como instalar o phpMyAdmin com Nginx, MariaDB e PHP7.4 (LEMP) no Ubuntu 20.04. phpMyAdmin é uma ferramenta de gerenciamento de banco de dados baseada na web, gratuita e de código aberto, escrita em PHP. Ele fornece uma interface gráfica da web para os usuários gerenciarem bancos de dados MySQL ou MariaDB.
phpMyAdmin permite que os administradores:
- navegar em bancos de dados e tabelas;
- criar, copiar, renomear, alterar e eliminar bancos de dados;
- criar, copiar, renomear, alterar e eliminar tabelas;
- realizar manutenção de mesa;
- adicionar, editar e eliminar campos;
- execute qualquer instrução SQL, até mesmo consultas múltiplas;
- criar, alterar e eliminar índices;
- carregar arquivos de texto em tabelas;
- criar e ler dumps de tabelas ou bancos de dados;
- exportar dados para os formatos SQL, CSV, XML, Word, Excel, PDF e LaTeX;
- administrar vários servidores;
- gerenciar usuários e privilégios do MySQL;
- verifique as configurações do servidor e as informações de tempo de execução com dicas de configuração;
- verificar integridade referencial em tabelas MyISAM;
- crie consultas complexas usando consulta por exemplo (QBE), automaticamente
- conectando tabelas necessárias;
- criar gráficos em PDF do layout do banco de dados;
- pesquisar globalmente em um banco de dados ou em um subconjunto dele;
- transformar dados armazenados em qualquer formato usando um conjunto de funções predefinidas, como exibir dados BLOB como imagem ou link para download;
- gerenciar tabelas InnoDB e chaves estrangeiras;
Pré-requisitos
Para seguir este tutorial, você precisa ter um sistema operacional Ubuntu 20.04 em execução no seu computador local ou em um servidor remoto.
Se você estiver procurando por um VPS (servidor virtual privado), poderá clicar neste link especial para obter crédito grátis de $100 na DigitalOcean. (Apenas para novos usuários). Se você já é usuário da DigitalOcean, pode clicar neste link especial para obter crédito grátis de $50 no Vultr (somente para novos usuários).
Presume-se que você já instalou a pilha LEMP no Ubuntu 20.04. Caso contrário, confira o seguinte tutorial.
- Como instalar a pilha LEMP (Nginx, MariaDB, PHP7.4) no Ubuntu 20.04
Com isso resolvido, vamos começar a instalar o phpMyAdmin.
Etapa 1: Baixe e instale o phpMyAdmin no Ubuntu 20.04
phpMyAdmin está incluído no repositório de software Ubuntu 20.04, então podemos instalá-lo facilmente com o seguinte comando.
sudo apt update
sudo apt install phpmyadmin
O comando acima instalará todas as dependências necessárias, incluindo extensões PHP7. Durante a instalação, ele perguntará se você deseja usar dbconfig-common
para configurar o banco de dados. Pressione a tecla Tab para selecionar Sim.
Isso também criará um novo usuário de banco de dados chamado phpmyadmin
. Dê uma senha a este usuário.
Em seguida, você será solicitado a selecionar um servidor web para configurar. Nginx não está na lista, então pressione a tecla Tab e clique em OK para pular esta etapa.
Feito isso, um novo banco de dados chamado phpmyadmin
é criado e o usuário do banco de dados phpmyadmin
possui os privilégios necessários para gerenciar este banco de dados. Se você estiver curioso como eu, você pode entrar no MariaDB e verificar quais privilégios o usuário phpmyadmin
recebeu.
Você pode usar o seguinte comando para fazer login no servidor MariaDB.
sudo mysql -u root
Em seguida, verifique os privilégios.
show grants for phpmyadmin@localhost;
Saída :
Como você pode ver, o usuário phpmyadmin
possui todos os privilégios no banco de dados phpmyadmin
. Agora você pode sair executando:
exit;
Etapa 2: Criar bloco de servidor Nginx para phpMyAdmin
Para poder acessar a interface web do phpMyAdmin, precisamos criar um bloco de servidor Nginx executando o seguinte comando.
sudo nano /etc/nginx/conf.d/phpmyadmin.conf
Iremos configurá-lo para que possamos acessar o phpMyAdmin através de um subdomínio. Cole o seguinte texto no arquivo. Substitua pma.example.com
pelo seu subdomínio real e não se esqueça de criar um registro DNS A para ele.
server {
listen 80;
listen [::]:80;
server_name pma.example.com;
root /usr/share/phpmyadmin/;
index index.php index.html index.htm index.nginx-debian.html;
access_log /var/log/nginx/phpmyadmin_access.log;
error_log /var/log/nginx/phpmyadmin_error.log;
location / {
try_files $uri $uri/ /index.php;
}
location ~ ^/(doc|sql|setup)/ {
deny all;
}
location ~ \.php$ {
fastcgi_pass unix:/run/php/php7.4-fpm.sock;
fastcgi_param SCRIPT_FILENAME $document_root$fastcgi_script_name;
include fastcgi_params;
include snippets/fastcgi-php.conf;
}
location ~ /\.ht {
deny all;
}
}
Seus arquivos phpMyAdmin estão no diretório /usr/share/phpmyadmin/
. Salve e feche o arquivo. Em seguida, teste as configurações do Nginx.
sudo nginx -t
Se o teste for bem-sucedido, recarregue o Nginx para que as alterações tenham efeito.
sudo systemctl reload nginx
Agora você deve conseguir acessar a interface web do phpMyAdmin via
pma.example.com
Etapa 3: instalação do certificado TLS
Para proteger a interface web do phpMyadmin, podemos instalar um certificado Let’s Encrypt TLS gratuito. Instale o cliente Let’s Encrypt do repositório de software Ubuntu 20.04 como abaixo:
sudo apt install certbot python3-certbot-nginx
Python3-certbot-nginx
é o plugin Nginx para Certbot. Agora execute o seguinte comando para obter e instalar o certificado TLS.
sudo certbot --nginx --agree-tos --redirect --hsts --staple-ocsp -d pma.example.com --email [email
Onde :
- –nginx: Use o autenticador e instalador Nginx
- –agree-tos: concorda com os termos de serviço do Let’s Encrypt
- –redirect: impõe HTTPS por redirecionamento 301.
- –hsts: adicione o cabeçalho Strict-Transport-Security a cada resposta HTTP.
- –staple-ocsp: Ativa o grampeamento OCSP.
- –must-staple: Adiciona a extensão OCSP Must Staple ao certificado.
- O sinalizador -d é seguido por uma lista de nomes de domínio, separados por vírgula. Você pode adicionar até 100 nomes de domínio.
- –email: E-mail utilizado para cadastro e contato de recuperação.
Você será perguntado se deseja receber e-mails da EFF (Electronic Frontier Foundation). Após escolher S ou N, seu certificado TLS será automaticamente obtido e configurado para você, o que é indicado pela mensagem abaixo.
Etapa 4: teste seu certificado TLS
Acesse ssllabs.com para testar seu certificado e configuração TLS. Você deve obter A+ porque o HSTS está ativado.
Etapa 5: solucionar erro de login do phpMyAdmin
Se você fizer login com a conta root MariaDB, poderá ver o seguinte erro.
#1698 - Access denied for user 'root '@'localhost'
e
mysqli_real_connect(): (HY000/1698): Access denied for user 'root '@'localhost'
Se você fizer login com o usuário phpmyadmin
, não verá o erro acima. Entretanto, o usuário phpmyadmin
só pode ser usado para administrar o banco de dados phpmyadmin
. A causa do erro é que por padrão o usuário root do MariDB é autenticado através do plugin unix_socket, em vez de usar o plugin mysql_native_password
. Para contornar esse problema, podemos criar outro usuário administrador e conceder todos os privilégios ao novo usuário administrador.
Faça login no servidor MariaDB a partir da linha de comando.
sudo mariadb -u root
Crie um usuário administrador com autenticação por senha.
create user admin@localhost identified by 'your-chosen-password';
Conceda todos os privilégios em todos os bancos de dados.
grant all privileges on *.* to admin@localhost with grant option;
Liberar privilégios e sair;
flush privileges;
exit;
Agora você pode entrar no phpMyAdmin com a conta de administrador e gerenciar todos os bancos de dados.
Renovação automática de certificado TLS
Para renovar automaticamente o certificado Let’s Encrypt, basta editar o arquivo crontab do usuário root.
sudo crontab -e
Em seguida, adicione a seguinte linha na parte inferior.
@daily certbot renew --quiet && systemctl reload nginx
É necessário recarregar o Nginx para que ele receba o novo certificado para os clientes.
Use Webmin para gerenciar bancos de dados MySQL/MariaDB
Webmin é um painel de administração geral de servidores Linux. Ele também permite gerenciar bancos de dados MySQL/MariaDB a partir de uma interface gráfica de usuário, embora não seja tão rico em recursos quanto o phpMyAdmin quando se trata de gerenciamento de banco de dados.
- Criar bancos de dados
- Criar usuários de banco de dados
- Conceda permissões aos usuários do banco de dados.
Como instalar o Webmin no servidor Ubuntu
Empacotando
Espero que este tutorial tenha ajudado você a instalar o phpMyAdmin com Nginx no Ubuntu 20.04 LTS. Como sempre, se você achou esta postagem útil, assine nosso boletim informativo gratuito para obter mais dicas e truques. Tomar cuidado:)