Cómo instalar PhpMyAdmin con Apache en sistemas RHEL

En este artículo, te guiaremos a través del proceso paso a paso de instalar la versión más reciente de PhpMyAdmin con servidor web Apache en distribuciones basadas en RHEL como CentOS Stream, Fedora, Rocky Linux y Alma Linux.

¿Qué es PhpMyAdmin?

PhpMyAdmin es una herramienta de administración de bases de datos web basada en web popular y potente, y tener la versión más reciente garantiza que tenga acceso a las funciones más actualizadas y mejoras de seguridad. Al final de esta guía, podrás administrar tus bases de datos MySQL o MariaDB con facilidad utilizando PhpMyAdmin.

Requisitos previos

Antes de comenzar, asegúrese de tener lo siguiente:

  • Acceso a un RHEL, CentOS Stream, Fedora, Rocky Linux o AlmaLinux.
  • Asegúrese de que puede iniciar sesión como el usuario root o tener privilegios sudo para instalar software.
  • Una pila LAMP existente, que incluye Apache, MySQL/MariaDB y PHP. Si no tienes LAMP, puedes seguir estos pasos para configurarlo.

Paso 1: Actualizar el Sistema

Antes de instalar cualquier software, es crucial asegurarse de que tu sistema esté actualizado ejecutando el siguiente comando dnf.

sudo dnf update
Update Linux System

Esto actualizará todos los paquetes en tu sistema a las versiones más recientes.

Paso 2: Instalar el Servidor Web Apache

PhpMyAdmin es una herramienta basada en web, y para usarla, necesitas instalar el servidor web Apache utilizando el siguiente comando.

sudo dnf install httpd
Install Apache in Linux

Una vez instalado, inicia el servicio Apache y habilítalo para que inicie en el arranque.

sudo systemctl start httpd
sudo systemctl enable httpd

Paso 3: Instalar MariaDB o MySQL

También necesitarás un servidor de bases de datos. Puedes elegir instalar MariaDB o MySQL, pero en este ejemplo nos decidiremos por MariaDB.

sudo dnf install mariadb-server
Install MariaDB in Linux

Una vez instalado, inicia el servicio MariaDB y habilítalo para que inicie en el arranque.

sudo systemctl start mariadb
sudo systemctl enable mariadb

A continuación, asegura tu instalación de MariaDB ejecutando el script, que te pedirá que ingreses una contraseña para el usuario root, deshabilite las conexiones remotas de root y elimine a los usuarios anónimos. También eliminará la base de datos de prueba, que de manera predeterminada puede ser accedida por usuarios anónimos.

sudo mysql_secure_installation
Secure MariaDB in Linux

Paso 4: Instalar PHP

PhpMyAdmin está construido con PHP, por lo que necesitamos instalar PHP y algunas extensiones requeridas usando el siguiente comando.

sudo dnf install php php-mysqlnd php-json php-mbstring
Install PHP in Linux

Paso 5: Instalar PhpMyAdmin

Ahora, procedamos a instalar PhpMyAdmin en nuestro sistema Linux navegando al directorio raíz del servidor web /var/www/html como se muestra.

cd /var/www/html

A continuación, descargue la versión más reciente de PhpMyAdmin usando el siguiente comando wget como se muestra.

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

Una vez descargado, extraiga el archivo descargado y renombre el directorio para mayor comodidad.

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

Cree un archivo de configuración para PhpMyAdmin.

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

Edite el archivo de configuración:

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

Encuentre la siguiente línea y establezca su propio blowfish_secret:

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

Guarde y salga del archivo.

Paso 6: Abrir el puerto de Apache en firewalld

Por defecto, Apache comúnmente utiliza los puertos 80 y 443 para HTTP y HTTPS, respectivamente. Para abrir los puertos de Apache y permitir el acceso a PhpMyAdmin en su servidor, ejecute:

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

Estos comandos agregan una regla para permitir el tráfico entrante en el puerto especificado y vuelven a cargar el firewall para aplicar los cambios.

Paso 7: Reiniciar el Servidor Web Apache

Finalmente, reinicie Apache para aplicar los cambios:

sudo systemctl restart httpd

Paso 8: Acceder a PhpMyAdmin

Ahora puede acceder a PhpMyAdmin a través de su navegador web navegando a la dirección IP de su servidor o nombre de dominio seguido de “/phpmyadmin” en la URL:

http://your_server_ip/phpmyadmin

Inicie sesión utilizando sus credenciales de MySQL o MariaDB.

PHPMyAdmin Login
PHPMyAdmin Dashboard

Paso 9: Permitir el Acceso Externo en PhpMyAdmin

Abra el archivo de configuración de PhpMyAdmin.

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

Encuentre la sección <Directory "/var/www/html"> o la sección donde su PhpMyAdmin está configurado y actualice la directiva Require para permitir que todas las direcciones IP accedan a PhpMyAdmin.

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

La configuración anterior permite el acceso desde cualquier dirección IP, pero si desea restringir el acceso a direcciones IP específicas, reemplace Require all granted con Require ip tu_ip.

Reinicie Apache para aplicar los cambios.

sudo systemctl restart httpd

Ahora, debería poder acceder a PhpMyAdmin desde el exterior utilizando la dirección IP de su servidor o dominio.

http://your_server_ip/phpmyadmin

Recuerde, abrir el acceso a PhpMyAdmin desde el exterior puede representar riesgos de seguridad. Asegúrese de tener un mecanismo de autenticación sólido en su lugar y considere el uso de HTTPS para la comunicación cifrada. Además, restrinja el acceso solo a direcciones IP de confianza si es posible o proteja la URL de inicio de sesión de PhpMyAdmin.

Cambiar la URL de inicio de sesión de phpMyAdmin

La URL de inicio de sesión predeterminada para phpMyAdmin es predecible y comúnmente es objeto de actores maliciosos que intentan explotar vulnerabilidades. Cambiar la URL de inicio de sesión añade una capa adicional de seguridad, dificultando a los usuarios no autorizados el acceso a su interfaz de administración de bases de datos.

Para ello, cree un archivo de configuración /etc/httpd/conf.d/phpMyAdmin.conf.

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

A continuación, agregue la siguiente configuración.

#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>

Reemplace /my con su URL de inicio de sesión personalizada deseada. Guarde los cambios y salga del editor de texto.

Después de realizar cambios en los archivos de configuración, reinicie Apache para aplicar las modificaciones:

systemctl restart httpd

Abra su navegador web y navegue hasta la nueva URL de inicio de sesión de phpMyAdmin.

http://yourdomain.com/my/
phpMyAdmin Login URL

Configurar SSL para phpMyAdmin

Garantizar la comunicación segura entre el servidor web Apache y phpMyAdmin es fundamental para proteger información sensible como credenciales de inicio de sesión y contenido de la base de datos. Una forma efectiva de lograr esto es configurando SSL (Secure Socket Layer) para phpMyAdmin en un servidor web Apache.

Para hacerlo, primero instale el módulo mod_ssl en su servidor.

yum install httpd mod_ssl openssl

A continuación, cree un directorio para almacenar el certificado y genere un certificado SSL autofirmado y una clave privada como se muestra.

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
Create SSL Certificate for PhpMyAdmin

Después de crear el certificado SSL y la clave, abra el archivo de configuración SSL de Apache.

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

A continuación, agregue las siguientes líneas al archivo de configuración.

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

Guarde los cambios y reinicie el servidor web Apache.

systemctl restart httpd

Ahora, abra el archivo de configuración de phpMyAdmin.

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

Agregue las siguientes líneas para forzar SSL para phpMyAdmin.

$cfg['ForceSSL'] = true;

Guarde los cambios y salga del editor de texto.

Finalmente, abra su navegador web y navegue a la siguiente URL para acceder a phpMyAdmin a través de una conexión SSL segura.

https://yourdomain.com/my/

Tenga en cuenta que el mensaje que indica una conexión insegura se debe únicamente al uso de un certificado autofirmado. Para continuar, haga clic en “Avanzado” y confirme la excepción de seguridad.

SSL Warning
Secure phpMyAdmin Login
Conclusión

¡Felicidades! Has instalado exitosamente PhpMyAdmin con Apache en tu sistema RHEL, CentOS Stream, Rocky Linux o AlmaLinux. Esta herramienta basada en web simplifica la administración de tus bases de datos, facilitando tareas como la creación de bases de datos, consultas y administración de datos.

Source:
https://www.tecmint.com/install-phpmyadmin-rhel-centos-fedora-linux/