Cómo instalar y proteger phpMyAdmin en Alma Linux 8
phpMyAdmin es una aplicación de gestión de bases de datos gratuita y de código abierto para MySQL y MariaDB. Te permite gestionar, realizar diversas tareas relacionadas con las bases de datos y ejecutar consultas desde una interfaz basada en web. Está escrito en PHP y proporciona una interfaz robusta y fácil de usar para gestionar bases de datos a través de un navegador web. Es multiplataforma y puede ejecutarse en muchos sistemas operativos, como Windows, macOS, Linux y BSD.
En este tutorial, aprenderás a instalar phpMyAdmin en Alma Linux 8.
Requisitos previos
- Un servidor que ejecute Alma Linux 8.
- Nombre de dominio válido apuntado con la IP de tu servidor.
- Una contraseña de root configurada en el servidor.
Instalar el servidor LEMP
En primer lugar, instala el servidor web Nginx y el servidor de base de datos MariaDB con el siguiente comando:
dnf install nginx mariadb -y
A continuación, instala el repositorio Remi PHP con el siguiente comando:
dnf -y install http://rpms.remirepo.net/enterprise/remi-release-8.rpm
A continuación, desactiva el módulo PHP por defecto y activa el módulo PHP de Remi con el siguiente comando:
dnf module -y reset php dnf module install php:remi-7.4 -y
A continuación, instala PHP con otras extensiones necesarias mediante el siguiente comando:
dnf install php php-cli php-common php-fpm php-curl php-gd php-mbstring php-process php-snmp php-xml php-zip php-memcached php-mysqlnd php-json php-mbstring php-pdo php-pdo-dblib php-xml unzip wget -y
Una vez instalados todos los paquetes, edita el archivo de configuración PHP-FPM:
nano /etc/php-fpm.d/www.conf
Cambia el usuario y grupo de apache a Nginx:
user = nginx group = nginx
Guarda y cierra el archivo y, a continuación, inicia y habilita los servicios Nginx, MariaDB y PHP-FPM con el siguiente comando:
systemctl start nginx php-fpm mariadb systemctl enable nginx php-fpm mariadb
Crear un usuario para phpMyAdmin
A continuación, se recomienda crear un usuario independiente para phpMyAdmin que realice todas las tareas de gestión de la base de datos. En primer lugar, asegura MariaDB ejecutando el siguiente comando:
mysql_secure_installation
Este script establecerá una contraseña de root, eliminará los usuarios anónimos, no permitirá el inicio de sesión de root de forma remota y eliminará la base de datos de prueba, como se muestra a continuación:
Set root password? [Y/n] n Remove anonymous users? [Y/n] y Disallow root login remotely? [Y/n] y Remove test database and access to it? [Y/n] y Reload privilege tables now? [Y/n] y
A continuación, inicia sesión en la MariaDB con el siguiente comando:
mysql
Una vez que hayas iniciado sesión, crea una base de datos y un usuario con el siguiente comando:
MariaDB [(none)]> CREATE DATABASE phpmyadmin CHARACTER SET utf8 COLLATE utf8_unicode_ci; MariaDB [(none)]> CREATE USER 'phpmyadmin'@'%' IDENTIFIED BY 'password';
A continuación, concede todos los privilegios al usuario admin:
MariaDB [(none)]> GRANT ALL PRIVILEGES ON *.* TO 'phpmyadmin'@'%';
A continuación, vacía los privilegios y sal de la consola MariaDB con el siguiente comando:
MariaDB [(none)]> FLUSH PRIVILEGES; MariaDB [(none)]> EXIT;
Instalar phpMyAdmin en Alma Linux 8
A continuación, descarga la última versión de phpMyAdmin desde su sitio web oficial:
wget https://files.phpmyadmin.net/phpMyAdmin/5.1.3/phpMyAdmin-5.1.3-all-languages.zip
Una vez finalizada la descarga, descomprime el archivo descargado con el siguiente comando:
unzip phpMyAdmin-5.1.3-all-languages.zip
A continuación, mueve el directorio extraído al directorio raíz de la web Nginx:
mv phpMyAdmin-5.1.3-all-languages /usr/share/nginx/phpmyadmin
A continuación, copia el archivo de configuración de ejemplo utilizando el siguiente comando:
cp /usr/share/nginx/phpmyadmin/config{.sample,}.inc.php
A continuación, edita el archivo de configuración utilizando el siguiente comando:
nano /usr/share/nginx/phpmyadmin/config.inc.php
Define tu secreto como se muestra a continuación:
$cfg['blowfish_secret'] = 'securekey';
Guarda y cierra el archivo y, a continuación, cambia la propiedad del directorio phpMyAdmin:
chown -R nginx:nginx /usr/share/nginx/phpmyadmin chown -R nginx:nginx /var/lib/php/session/
Configurar Nginx para phpMyAdmin
A continuación, tendrás que crear un archivo de configuración del host virtual Nginx para phpMyAdmin. Puedes crearlo con el siguiente comando:
nano /etc/nginx/conf.d/phpmyadmin.conf
Añade las siguientes líneas:
server {
listen 80;
server_name phpmyadmin.example.com;
root /usr/share/nginx/phpmyadmin;
access_log /var/log/nginx/phpmyadmin_access.log;
error_log /var/log/nginx/phpmyadmin_error.log;
index index.php;
location / {
try_files $uri $uri/ /index.php?$args;
}
location ~ \.php$ {
try_files $uri =404;
fastcgi_intercept_errors on;
include fastcgi_params;
fastcgi_param SCRIPT_FILENAME $document_root$fastcgi_script_name;
fastcgi_pass unix:/run/php-fpm/www.sock;
}
}
Guarda y cierra el archivo y, a continuación, comprueba si Nginx tiene algún error de configuración sintáctica con el siguiente comando:
nginx -t
Obtendrás la siguiente salida:
nginx: the configuration file /etc/nginx/nginx.conf syntax is ok nginx: configuration file /etc/nginx/nginx.conf test is successful
A continuación, reinicia el servicio Nginx para aplicar los cambios:
systemctl restart nginx php-fpm
Ahora puedes verificar el estado de Nginx con el siguiente comando:
systemctl status nginx
Deberías ver la siguiente salida:
? nginx.service - The nginx HTTP and reverse proxy server
Loaded: loaded (/usr/lib/systemd/system/nginx.service; disabled; vendor preset: disabled)
Drop-In: /usr/lib/systemd/system/nginx.service.d
??php-fpm.conf
Active: active (running) since Fri 2022-04-15 10:06:39 UTC; 3s ago
Process: 85445 ExecStart=/usr/sbin/nginx (code=exited, status=0/SUCCESS)
Process: 85443 ExecStartPre=/usr/sbin/nginx -t (code=exited, status=0/SUCCESS)
Process: 85442 ExecStartPre=/usr/bin/rm -f /run/nginx.pid (code=exited, status=0/SUCCESS)
Main PID: 85449 (nginx)
Tasks: 2 (limit: 11412)
Memory: 3.8M
CGroup: /system.slice/nginx.service
??85449 nginx: master process /usr/sbin/nginx
??85450 nginx: worker process
Apr 15 10:06:39 linux systemd[1]: nginx.service: Succeeded.
Apr 15 10:06:39 linux systemd[1]: Stopped The nginx HTTP and reverse proxy server.
Apr 15 10:06:39 linux systemd[1]: Starting The nginx HTTP and reverse proxy server...
Apr 15 10:06:39 linux nginx[85443]: nginx: the configuration file /etc/nginx/nginx.conf syntax is ok
Apr 15 10:06:39 linux nginx[85443]: nginx: configuration file /etc/nginx/nginx.conf test is successful
Apr 15 10:06:39 linux systemd[1]: nginx.service: Failed to parse PID from file /run/nginx.pid: Invalid argument
Apr 15 10:06:39 linux systemd[1]: Started The nginx HTTP and reverse proxy server.
Configurar el cortafuegos
A continuación, tendrás que permitir el servicio HTTP a través del cortafuegos. Puedes permitirlo con el siguiente comando:
firewall-cmd --permanent --zone public --add-service http
A continuación, recarga el cortafuegos para aplicar los cambios:
firewall-cmd --reload
Acceder a la interfaz web de phpMyAdmin
Ahora, abre tu navegador web y accede a phpMyAdmin utilizando la URL http://phpmyadmin.example.com. Deberías ver la página de inicio de sesión de phpMyAdmin:

Introduce tu nombre de usuario y contraseña de administrador, y haz clic en el botón Ir. Una vez que hayas iniciado sesión, deberías ver el panel de phpMyAdmin:

Haz clic en el botón Bases de datos. Deberías ver la siguiente página:

Indica el nombre de la base de datos que deseas crear y pulsa el botón Crear.

Selecciona las bases de datos que quieras eliminar y haz clic en el botón Eliminar para eliminar una base de datos. Deberías ver la página siguiente:

Haz clic en el botón Aceptar para confirmar y eliminar las bases de datos seleccionadas.
Conclusión
Enhorabuena! has instalado correctamente phpMyAdmin con Nginx en Alma Linux 8. Ahora puedes gestionar tus bases de datos MySQL y MariaDB a través de un navegador web. No dudes en preguntarme si tienes alguna duda.