Pesquisa de site

Como instalar o PhpMyAdmin com Apache em sistemas RHEL


Neste artigo, orientaremos você no processo passo a passo de instalação da versão mais recente do PhpMyAdmin com servidor web Apache em distribuições baseadas em RHEL, como CentOS Stream , Fedora, Rocky Linux e Alma Linux.

O que é PhpMyAdmin?

PhpMyAdmin é uma ferramenta popular e poderosa de gerenciamento de banco de dados baseada na Web, e ter a versão mais recente garante que você tenha acesso aos recursos e melhorias de segurança mais atualizados. Ao final deste guia, você será capaz de gerenciar seus bancos de dados MySQL ou MariaDB com facilidade usando o PhpMyAdmin.

Pré-requisitos

Antes de começarmos, certifique-se de ter o seguinte:

  • Acesso a um sistema RHEL, CentOS Stream, Fedora, Rocky Linux ou AlmaLinux.
  • Certifique-se de fazer login como usuário root ou ter privilégios sudo para instalar o software.
  • Uma pilha LAMP existente, que inclui Apache, MySQL/MariaDB e PHP. Se você não possui o LAMP, siga estas etapas para configurá-lo.

Etapa 1: atualize o sistema

Antes de instalar qualquer software, é crucial garantir que seu sistema esteja atualizado executando o seguinte comando dnf.

sudo dnf update

Isso atualizará todos os pacotes do seu sistema para as versões mais recentes.

Etapa 2: Instale o servidor Web Apache

PhpMyAdmin é uma ferramenta baseada na web e, para usá-la, você precisa instalar o servidor web Apache usando o seguinte comando.

sudo dnf install httpd

Uma vez instalado, inicie o serviço Apache e habilite-o para iniciar na inicialização.

sudo systemctl start httpd
sudo systemctl enable httpd

Etapa 3: Instale MariaDB ou MySQL

Você também precisará de um servidor de banco de dados. Você pode optar por instalar o MariaDB ou o MySQL, mas usaremos o MariaDB neste exemplo.

sudo dnf install mariadb-server

Uma vez instalado, inicie o serviço MariaDB e habilite-o para iniciar na inicialização.

sudo systemctl start mariadb
sudo systemctl enable mariadb

Em seguida, proteja a instalação do MariaDB executando o script, que solicitará que você insira uma senha para o usuário root, proibirá logins root remotos e removerá usuários anônimos. Também removerá o banco de dados de teste, que por padrão pode ser acessado por usuários anônimos.

sudo mysql_secure_installation

Passo 4: Instale o PHP

PhpMyAdmin é construído com PHP, então precisamos instalar o PHP e algumas extensões necessárias usando o seguinte comando.

sudo dnf install php php-mysqlnd php-json php-mbstring

Etapa 5: Instale o PhpMyAdmin

Agora, vamos prosseguir com a instalação do PhpMyAdmin em nosso sistema Linux navegando até o diretório raiz do documento do servidor web /var/www/html conforme mostrado.

cd /var/www/html

Em seguida, baixe a versão mais recente do PhpMyAdmin usando o seguinte comando wget conforme mostrado.

sudo wget https://www.phpmyadmin.net/downloads/phpMyAdmin-latest-all-languages.tar.gz

Depois de baixado, extraia o arquivo baixado e renomeie o diretório por conveniência.

sudo tar -xvzf phpMyAdmin-latest-all-languages.tar.gz
sudo mv phpMyAdmin-*/ phpmyadmin

Crie um arquivo de configuração para PhpMyAdmin.

sudo cp /var/www/html/phpmyadmin/config.sample.inc.php /var/www/html/phpmyadmin/config.inc.php

Edite o arquivo de configuração:

sudo nano /var/www/html/phpmyadmin/config.inc.php

Encontre a seguinte linha e defina seu próprio blowfish_secret:

$cfg['blowfish_secret'] = 'your_secret';

Salve e saia do arquivo.

Etapa 6: abra a porta Apache no firewalld

Por padrão, o Apache normalmente usa as portas 80 e 443 para HTTP e HTTPS, respectivamente. Para abrir portas Apache e permitir acesso ao PhpMyAdmin em seu servidor, execute:

sudo firewall-cmd --zone=public --add-port=80/tcp --permanent
sudo firewall-cmd --zone=public --add-port=443/tcp --permanent
sudo firewall-cmd --reload

Esses comandos adicionam uma regra para permitir o tráfego de entrada na porta especificada e recarregam o firewall para aplicar as alterações.

Etapa 7: reinicie o servidor Web Apache

Finalmente, reinicie o Apache para aplicar as alterações:

sudo systemctl restart httpd

Etapa 8: acesse o PhpMyAdmin

Agora você pode acessar o PhpMyAdmin através do seu navegador navegando até o endereço IP ou nome de domínio do seu servidor seguido de “/phpmyadmin” no URL:

http://your_server_ip/phpmyadmin

Faça login usando suas credenciais MySQL ou MariaDB.

Etapa 9: permitir acesso externo no PhpMyAdmin

Abra o arquivo de configuração do PhpMyAdmin.

sudo vi /etc/httpd/conf/httpd.conf

Encontre a seção ou a seção onde seu PhpMyAdmin está configurado e atualize a diretiva Require para permitir todos os endereços IP para acessar o PhpMyAdmin.

<Directory "/var/www/html/phpmyadmin">
    ...
    Require all granted
    ...
</Directory>

A configuração acima permite o acesso de qualquer endereço IP, mas se você quiser restringir o acesso a IPs específicos, substitua Exigir todos concedidos por Exigir ip seu_ip.

Reinicie o Apache para aplicar as alterações.

sudo systemctl restart httpd

Agora, você deve conseguir acessar o PhpMyAdmin do mundo externo usando o endereço IP ou domínio do seu servidor.

http://your_server_ip/phpmyadmin

Lembre-se de que abrir o acesso ao PhpMyAdmin do mundo externo pode representar riscos de segurança. Certifique-se de ter um mecanismo de autenticação forte e considere usar HTTPS para comunicação criptografada. Além disso, restrinja o acesso apenas a endereços IP confiáveis, se possível, ou URL de login seguro do PhpMyAdmin.

Alterar URL de login do phpMyAdmin

O URL de login padrão do phpMyAdmin é previsível e comumente alvo de agentes mal-intencionados que tentam explorar vulnerabilidades. Alterar o URL de login adiciona uma camada adicional de segurança, tornando mais difícil para usuários não autorizados obter acesso à interface de gerenciamento de banco de dados.

Para fazer isso, crie um arquivo de configuração /etc/httpd/conf.d/phpMyAdmin.conf.

vi /etc/httpd/conf.d/phpMyAdmin.conf

Em seguida, adicione a seguinte configuração.

#Alias /phpMyAdmin /var/www/html/phpmyadmin
Alias /my /var/www/html/phpmyadmin

<Directory /var/www/htm/lphpmyadmin>
    AddDefaultCharset UTF-8

    <IfModule mod_authz_core.c>
        # Apache 2.4
        <RequireAny>
            Require all granted
            # Additional IP or hostname-based access control can be added here
        </RequireAny>
    </IfModule>

    <IfModule !mod_authz_core.c>
        # Apache 2.2
        Order Deny,Allow
        Deny from All
        Allow from 127.0.0.1
        Allow from ::1
        # Additional IP or hostname-based access control can be added here
    </IfModule>

</Directory>

Substitua /my pelo URL de login personalizado desejado. Salve as alterações e saia do editor de texto.

Após fazer alterações nos arquivos de configuração, reinicie o Apache para aplicar as modificações:

systemctl restart httpd

Abra seu navegador e navegue até o novo URL de login do phpMyAdmin.

http://yourdomain.com/my/

Configurando SSL para phpMyAdmin

Proteger a comunicação entre o servidor web Apache e o phpMyAdmin é crucial para proteger informações confidenciais, como credenciais de login e conteúdo do banco de dados. Uma maneira eficaz de conseguir isso é configurar o SSL (Secure Socket Layer) para o phpMyAdmin em um servidor web Apache.

Para fazer isso, primeiro instale o módulo mod_ssl em seu servidor.

yum install httpd mod_ssl openssl

Em seguida, crie um diretório para armazenar o certificado e gere um certificado SSL autoassinado e uma chave privada conforme mostrado.

mkdir /etc/httpd/ssl 
openssl req -x509 -nodes -days 365 -newkey rsa:2048 -keyout /etc/httpd/ssl/apache.key -out /etc/httpd/ssl/apache.crt

Após criar o certificado SSL e a chave, abra o arquivo de configuração Apache SSL.

vi /etc/httpd/conf.d/ssl.conf

Em seguida, adicione as seguintes linhas ao arquivo de configuração.

SSLEngine on
SSLCertificateFile /etc/httpd/ssl/apache.crt
SSLCertificateKeyFile /etc/httpd/ssl/apache.key

Salve as alterações e reinicie o servidor web Apache.

systemctl restart httpd

Agora, abra o arquivo de configuração do phpMyAdmin.

vi /var/www/html/phpmyadmin/config.inc.php

Adicione as seguintes linhas para forçar SSL para phpMyAdmin.

$cfg['ForceSSL'] = true;

Salve as alterações e saia do editor de texto.

Por fim, abra seu navegador e navegue até o seguinte URL para acessar o phpMyAdmin por meio de uma conexão SSL segura.

https://yourdomain.com/my/

Esteja ciente de que a mensagem indicando uma conexão insegura se deve exclusivamente à utilização de um certificado autoassinado. Para prosseguir, clique em “Avançado” e confirme a exceção de segurança.

Conclusão

Parabéns! Você instalou com sucesso o PhpMyAdmin com Apache em seu sistema RHEL, CentOS Stream, Rocky Linux ou AlmaLinux. Esta ferramenta baseada na web simplifica o gerenciamento de seus bancos de dados, facilitando tarefas como criação de banco de dados, consultas e gerenciamento de dados.