Instale o phpMyAdmin com LAMP Stack 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 linguagem de programação PHP. Usando o phpMyAdmin, os administradores de banco de dados podem gerenciar facilmente servidores de banco de dados únicos e/ou múltiplos através de um navegador da web. Isso pode ser útil para aqueles que não se sentem confortáveis com o prompt do MySQL. O phpMyAdmin permite que os administradores de banco de dados realizem todos os tipos de tarefas de gerenciamento de banco de dados, como criar, editar, renomear, excluir bancos de dados, importar e exportar bancos de dados, criar tabelas, campos e campos, executar comandos SQL e muito mais. Neste tutorial, instalaremos o phpMyAdmin com pilha LAMP no sistema operacional de servidor Ubuntu 20.04 LTS.
Instale o phpMyAdmin com LAMP Stack no Ubuntu 20.04 LTS
Para instalar o phpMyAdmin no servidor Ubuntu 20.04 LTS, você deve ter uma pilha LAMP funcionando. Se você ainda não instalou a pilha LAMP, consulte o seguinte guia:
- Instalar pilha Apache, MySQL, PHP (LAMP) no Ubuntu 20.04 LTS
Depois de configurar a pilha LAMP, ative o repositório 'universe', se ainda não estiver ativado.
sudo add-apt-repository universe
sudo apt update
Agora instale o phpMyAdmin e todas as outras dependências necessárias no Ubuntu 20.04 usando comandos:
sudo apt install phpmyadmin php-mbstring php-zip php-gd php-json php-curl
A seguir, selecione o servidor web que deve ser configurado automaticamente para executar o phpMyAdmin. Escolha o servidor web com as setas PARA CIMA/PARA BAIXO e pressione a tecla BARRA DE ESPAÇO. Depois de escolher o servidor web, você verá um símbolo * (estrela) na frente dele. Pressione a tecla TAB para escolher OK e pressione novamente a tecla ENTER para continuar.
PhpMyAdmin requer um banco de dados instalado e configurado antes de poder ser usado. Você pode fazer isso com o comando dbconfig.
Escolha Sim para configurar o banco de dados para phpmyadmin com dbconfig-common:
Você precisa fornecer uma senha para o phpmyadmin se registrar no servidor de banco de dados MySQL. Se a senha não for fornecida, uma senha aleatória será gerada.
Digite uma senha forte e pressione ENTER para continuar:
Digite novamente a senha:
No momento em que escrevi este guia, quando tentei definir a senha do phpmyadmin, ocorreu o seguinte erro:
An error occurred while installing the database:
mysql said: ERROR 1819 (HY000) at line 1: Your password does not satisfy
the current policy requirements . Your options are:
* abort - Causes the operation to fail; you will need to downgrade,
reinstall, reconfigure this package, or otherwise manually intervene
to continue using it. This will usually also impact your ability to
install other packages until the installation failure is resolved.
* retry - Prompts once more with all the configuration questions
(including ones you may have missed due to the debconf priority
setting) and makes another attempt at performing the operation.
* retry (skip questions) - Immediately attempts the operation again,
skipping all questions. This is normally useful only if you have
solved the underlying problem since the time the error occurred.
* ignore - Continues the operation ignoring dbconfig-common errors.
This will usually leave this package without a functional database.
Este erro ocorre porque habilitamos o componente VALIDATE PASSWORD conforme descrito na seção intitulada "2.2 Alterar método de autenticação para usuário root do MySQL" no guia de instalação da pilha LAMP anexado acima.
Para corrigir esse problema, você precisa desativar temporariamente o componente Validar senha e reativá-lo após definir a senha para phymyadmin. Clique em OK para fechar a mensagem de erro acima e escolha "abortar" para cancelar a instalação do phpmyadmin.
Agora faça login no prompt do Mysql executando o seguinte comando:
mysql -u root -p
No prompt do mysql, execute o seguinte comando para desabilitar o plugin Validate Password:
mysql> UNINSTALL COMPONENT "file://component_validate_password";
Observe que o comando acima apenas desabilitará o plugin, mas não o removerá. Você pode habilitá-lo mais tarde. Em seguida, digite “exit” para sair do prompt do Mysql.
mysql> exit
Agora tente instalar o phpmyadmin novamente usando o comando:
sudo apt install phpmyadmin php-mbstring php-zip php-gd php-json php-curl
Escolha "Sim" e pressione ENTER para configurar o banco de dados para phpmyadmin com dbconfig-common. Desta vez, a instalação do phpmyadmin funcionará sem problemas.
Depois que o phpmyadmin estiver instalado, reative o plugin Validate Password. Para fazer isso, faça login no prompt do Mysql:
mysql -u root -p
No prompt do mysql, execute o seguinte comando para desabilitar o plugin Validate Password:
mysql> INSTALL COMPONENT "file://component_validate_password";
Digite exit para sair do prompt do mysql.
mysql> exit
Por fim, habilite a extensão php mbstring e reinicie o serviço Apache para atualizar as alterações conforme mostrado abaixo.
sudo phpenmod mbstring
sudo systemctl restart apache2
Agora você pode verificar se a extensão mbstring está habilitada ou não carregando o arquivo info.php do navegador da web.
Para fazer isso, navegue até http://endereço IP/info.php no seu navegador.
Você verá que o plugin mbstring está habilitado.
Crie um usuário dedicado para acessar o painel do phpMyAdmin
Assim que o phpMyAdmin for instalado, um usuário de banco de dados chamado 'phpmyadmin' será criado automaticamente com a senha administrativa que você definiu durante a instalação. Você pode fazer login no painel phpmyAdmin usando o usuário 'phpmyadmin' ou o usuário mysql root. Porém, é recomendado criar um usuário dedicado para gerenciar bancos de dados via interface web phpMyAdmin.
Para fazer isso, faça login no shell do mysql usando o comando:
mysql -u root -p
Digite sua senha root do mysql. Agora você estará no shell mysql.
Digite o seguinte comando para criar um novo usuário dedicado para phpmyadmin:
mysql> CREATE USER 'phpmyadminuser'@'localhost' IDENTIFIED BY 'Password123#@!';
Aqui, phpmyadmin é o novo usuário para acessar o painel do phpmyadmin. A senha do phpmyadminuser é Password123#@!. Substitua esses valores pelos seus.
Em seguida, conceda os privilégios apropriados ao 'phpmyadminuser' usando o comando:
mysql> GRANT ALL PRIVILEGES ON *.* TO 'phpmyadminuser'@'localhost' WITH GRANT OPTION;
Finalmente saia do shell mysql:
mysql> exit
Agora criamos um usuário dedicado para gerenciar os bancos de dados via interface web phpmyadmin. Vamos em frente e acessar o painel do phpmyadmin.
Acesse o painel do phpMyAdmin
Abra seu navegador e navegue até http://ip-address/phpmyadmin ou http://domain/phpmyadmin. Você deverá ver a página de login do phpmyadmin. Faça login na interface phmyadmin usando o usuário mysql root ou o novo usuário que criamos na etapa anterior.
Esta é a aparência do painel do phpMyAdmin:
A partir de agora, você pode gerenciar seus bancos de dados através da interface web do phpMyAdmin.
phpMyAdmin seguro
Esta seção fornece algumas dicas para proteger a instalação do PhpMyAdmin. Observe que as etapas a seguir não conseguiram proteger o phpMyAdmin 100% seguro. No entanto, eles irão pelo menos retardar qualquer tentativa de um criminoso de invadir seu painel do phpmyadmin.
Desative o login root do MySQL no painel do phpmyadmin
Permitir que o usuário root do mysql acesse o painel do phpMyAdmin não é seguro, especialmente ao gerenciar bancos de dados pela rede. É por isso que criamos um usuário dedicado na seção anterior. Como já temos um usuário dedicado, podemos desabilitar com segurança o login root do mysql para acessar o painel do phpmyadmin para minimizar os ataques.
Geralmente, o phpmyadmin é instalado no diretório /usr/share/phpmyadmin/ e seus arquivos de configuração são armazenados no diretório /etc/phpmyadmin.
Edite o arquivo de configuração do phpmyadmin:
sudo nano /etc/phpmyadmin/config.inc.php
Adicione/modifique os seguintes parâmetros:
[...]
$cfg['Servers'][$i]['auth_type'] = 'cookie';
$cfg['Servers'][$i]['AllowRoot'] = FALSE;
[...]
Salve e feche o arquivo.
Reinicie o servidor web Apache usando o comando:
sudo systemctl restart apache2
Agora tente fazer login no phpmyadmin como usuário root. Você receberá a mensagem de erro Acesso negado:
Página de login do phpMyAdmin protegida por senha
Como o phpMyAdmin é um alvo fácil para invasores, a próxima tarefa recomendada é proteger a página de login da web do phpyMyAdmin. A maneira mais comum de proteger o phpMyAdmin contra acesso não autorizado é usando as funcionalidades integradas de autenticação e autorização .htaccess do Apache.
Primeiro de tudo, habilite o uso de substituições de arquivo .htaccess editando o arquivo /phpmyadmin.conf:
sudo nano /etc/apache2/conf-available/phpmyadmin.conf
Adicione a linha "AllowOverride All" na seção
<Directory /usr/share/phpmyadmin>
Options SymLinksIfOwnerMatch
DirectoryIndex index.php
AllowOverride All
Pressione CTL+X seguido de Y para salvar e fechar o arquivo.
Reinicie o serviço Apache para atualizar as alterações usando o comando:
sudo systemctl restart apache2
Em seguida, crie um arquivo chamado .htaccess no diretório /usr/share/phpmyadmin/ usando o comando:
sudo nano /usr/share/phpmyadmin/.htaccess
Adicione as seguintes linhas nele:
AuthType Basic
AuthName "Restricted Files"
AuthUserFile /etc/phpmyadmin/.htpasswd
Require valid-user
Salve e feche o arquivo.
Agora, execute o seguinte comando para criar um novo usuário, por exemplo ostechnix:
sudo htpasswd -c /etc/phpmyadmin/.htpasswd ostechnix
Substitua 'ostechnix' por qualquer nome de usuário de sua escolha. Você será solicitado a fornecer uma senha para o novo usuário. Digite duas vezes.
Exemplo de resultado:
New password:
Re-type new password:
Adding password for user ostechnix
Agora adicionamos uma camada extra de segurança para acessar a interface web do phpMyAdmin. A partir de agora, sempre que tentar acessar a interface web do phpMyAdmin, você será solicitado a inserir o nome de usuário adicional e sua senha que acabou de configurar na etapa anterior.
Depois de inserir o nome de usuário e a senha corretos, você será redirecionado para a página de login de autenticação real do phpmyadmin. Basta inserir as credenciais do seu banco de dados para acessar o painel do Phpmyadmin.
Leitura relacionada:
- Instale o phpMyAdmin com pilha LEMP no Ubuntu 20.04 LTS