Como instalar o phpMyAdmin com Apache (LAMP) no Ubuntu 20.04
Este tutorial mostrará como instalar o phpMyAdmin com Apache, MariaDB, PHP7.4 (pilha LAMP) no Ubuntu 20.04 LTS. 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 de 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á criar uma conta no Vultr através do meu link de indicação para obter crédito grátis de $50 (somente para novos usuários). E se você precisar configurar o phpMyAdmin com um nome de domínio, recomendo comprar nomes de domínio do NameCheap porque o preço é baixo e eles oferecem proteção de privacidade whois gratuitamente.
Presume-se que você já instalou a pilha LAMP no Ubuntu 20.04. Caso contrário, confira o seguinte tutorial.
- Como instalar a pilha LAMP (Apache, MariaDB, PHP7.4) no Ubuntu 20.04 LTS
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. para que possamos instalá-lo facilmente com o comando abaixo.
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, você será solicitado a selecionar um servidor web para configurar. Clique na barra espaço
para selecionar apache2. (Um asterisco indica que o item está selecionado). Em seguida, pressione a tecla Tab
e Enter
para confirmar sua escolha.
Na próxima tela, selecione Sim
para configurar um banco de dados para phpMyAdmin com dbconfig-common
.
Em seguida, defina uma senha para o usuário phpmyadmin
no MariaDB/MySQL.
Uma vez concluída esta etapa, 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 do usuário phpmyadmin
.
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;
Agora execute o seguinte comando para verificar se o arquivo /etc/apache2/conf-enabled/phpmyadmin.conf
existe.
file /etc/apache2/conf-enabled/phpmyadmin.conf
Se não houver erro no processo de instalação, você deverá ver a seguinte saída de comando.
/etc/apache2/conf-enabled/phpmyadmin.conf: symbolic link to ../conf-available/phpmyadmin.conf
Se este arquivo não existir em seu servidor, é provável que você não tenha selecionado o servidor web Apache no assistente de configuração do phpMyAdmin. Você pode consertar isso com os seguintes comandos.
sudo ln -s /etc/phpmyadmin/apache.conf /etc/apache2/conf-available/phpmyadmin.conf
sudo a2enconf phpmyadmin
sudo systemctl reload apache2
Etapa 2: Acessando o phpMyAdmin de um subdiretório
Ao instalar o phpMyAdmin, um arquivo de configuração é colocado em /etc/apache2/conf-enabled/phpmyadmin.conf
, que nos permite acessar o phpMyAdmin via subdiretório. Se você instalou outros aplicativos da web como WordPress no mesmo servidor Ubuntu 20.04, basta adicionar /phpmyadmin
após o nome de seu domínio na barra de endereço do navegador.
example.com/phpmyadmin
Se o phpMyAdmin estiver instalado em seu computador Ubuntu local, você poderá acessar a interface web do phpMyAdmin digitando o seguinte texto na barra de endereço do navegador.
localhost/phpmyadmin
Se a conexão for recusada ou não for concluída, poderá haver um firewall impedindo solicitações HTTP. Se você estiver usando o firewall iptables, será necessário executar os seguintes comandos para abrir as portas TCP 80 e 443.
sudo iptables -I INPUT -p tcp --dport 80 -j ACCEPT
sudo iptables -I INPUT -p tcp --dport 443 -j ACCEPT
Se você estiver usando o firewall UFW, execute este comando para abrir as portas TCP 80 e 443.
sudo ufw allow 80,443/tcp
Agora você pode usar o nome de usuário e senha MariaDB/MySQL para fazer login no phpMyAdmin. Se você não conseguir fazer login como root, vá para a etapa 5 para solucionar esse problema.
Etapa 3: acesse o phpMyAdmin de um subdomínio
Se o seu servidor Ubuntu 20.04 não tiver outro host virtual Apache, você pode querer usar um subdomínio para acessar a interface web do phpMyAdmin. Dessa forma, você pode ativar o HTTPS para criptografar o tráfego.
Primeiro, precisamos criar um host virtual Apache para phpMyAdmin. O snippet de configuração existente do phpMyAdmin pode ser usado como modelo. Vamos copiá-lo para um novo arquivo.
sudo cp /etc/apache2/conf-enabled/phpmyadmin.conf /etc/apache2/sites-available/phpmyadmin.conf
Em seguida, edite o novo arquivo com um editor de texto de linha de comando, como o Nano.
sudo nano /etc/apache2/sites-available/phpmyadmin.conf
Este arquivo não possui tags
, então precisamos adicionar as seguintes linhas no início deste arquivo. Substitua pma.example.com
pelo seu subdomínio preferido para phpMyAdmin. Não se esqueça de criar um registro DNS A para este subdomínio.
<VirtualHost *:80>
ServerName pma.example.com
DocumentRoot /usr/share/phpmyadmin
ErrorLog ${APACHE_LOG_DIR}/pma.error.log
CustomLog ${APACHE_LOG_DIR}/pma.access.log combined
Adicione a seguinte linha no final deste arquivo para fechar a tag
.
</VirtualHost>
Salve e feche o arquivo. (Para salvar um arquivo no editor de texto Nano, pressione Ctrl+O
e pressione Enter para confirmar. Para sair, pressione Ctrl+X
.) Em seguida, habilite este host virtual.
sudo a2ensite phpmyadmin.conf
Recarregue o servidor web Apache para que esta alteração tenha efeito.
sudo systemctl reload apache2
Agora você deve conseguir acessar a interface web do phpMyAdmin via
pma.example.com
Antes de inserir as credenciais do usuário no formulário de login, vamos habilitar o HTTPS.
Etapa 4: Habilite HTTPS no phpMyAdmin com Apache
Para proteger a interface web do phpMyadmin, podemos instalar um certificado Let’s Encrypt TLS gratuito. Execute o seguinte comando para instalar o cliente Let’s Encrypt (certbot) do repositório de software Ubuntu 20.04.
sudo apt install certbot python3-certbot-apache
Python3-certbot-apache
é o plugin Apache para Certbot. Agora execute o seguinte comando para obter e instalar o certificado TLS.
sudo certbot --apache --agree-tos --redirect --hsts --staple-ocsp --must-staple -d pma.example.com --email [email
Onde :
- –apache: Use o autenticador e instalador Apache
- –agree-tos: concorda com os termos de serviço do Let’s Encrypt
- –redirect: aplique HTTPS adicionando redirecionamento 301 permanente.
- –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 5: solucionar erro de login do phpMyAdmin
Se você tentar fazer login no phpMyAdmin com a conta root MariaDB, poderá ver o seguinte erro.
#1698 - Access denied for user 'root '@'localhost'
ou
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 gerenciar 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 resolver este 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 mysql -u root
Crie um usuário administrador com autenticação por senha.
create user admin@localhost identified by 'your-preferred-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 phpMyAmin com a conta admin
e gerenciar todos os bancos de dados.
Empacotando
Espero que este tutorial tenha ajudado você a instalar o phpMyAdmin com LAMP no Ubuntu 20.04. Como sempre, se você achou esta postagem útil, assine nosso boletim informativo gratuito para obter mais dicas e truques. Se cuide 🙂