Cómo instalar PhpMyAdmin con Nginx y Let’s Encrypt SSL en Ubuntu 24.04

phpMyAdmin en Ubuntu es una interfaz basada en web que simplifica la gestión de bases de datos MySQL o MariaDB. Permite a los usuarios realizar operaciones de base de datos como crear, editar y eliminar bases de datos, tablas y registros sin interactuar directamente con la línea de comandos. Diseñado pensando en la facilidad de uso, phpMyAdmin es especialmente útil para los usuarios que no se sienten cómodos con los comandos SQL. En Ubuntu, se puede instalar como parte de la pila LAMP (Linux, Apache, MySQL, PHP), proporcionando una interfaz gráfica a la que se puede acceder a través de un navegador web, lo que lo convierte en una opción popular para desarrolladores y administradores que gestionan bases de datos en un entorno Linux.

En este tutorial, te mostraremos cómo instalar phpMyAdmin con Nginx en Ubuntu 24.04 e incluiremos algunos consejos adicionales para una configuración óptima.

Requisitos previos

  • Un servidor que ejecute Ubuntu 24.04.
  • Un nombre de dominio válido apuntando a tu servidor.
  • Acceso SSH con un usuario no root que tenga privilegios sudo.

Instalar Nginx, MariaDB y PHP

Antes de empezar, asegúrate de que tu lista de paquetes está actualizada:

sudo apt update && sudo apt upgrade -y

A continuación, instala Nginx, MariaDB, PHP y las extensiones PHP esenciales:

sudo apt install nginx mariadb-server php php-cli php-mysql php-mbstring php-zip php-gd php-json php-curl php-fpm -y

Comprueba que cada servicio se está ejecutando:

systemctl status nginx
systemctl status mariadb

Consejo: Instala unattended-upgrades para asegurarte de que las actualizaciones de seguridad se aplican automáticamente:

sudo apt install unattended-upgrades -y

Instala phpMyAdmin

El paquete phpMyAdmin está disponible en el repositorio por defecto de Ubuntu 24.04. Instálalo con:

sudo apt install phpmyadmin -y

Asegúrate de que está seleccionada la opción «Sin servidor web», a menos que utilices explícitamente Apache en el mismo servidor.

Configurar phpMyAdmin manualmente para Nginx

Crea un enlace simbólico en el directorio web de Nginx:

sudo ln -s /usr/share/phpmyadmin /var/www/html/phpmyadmin

Asegurar MariaDB

Ejecuta el script de seguridad para mejorar la configuración por defecto de MariaDB:

sudo mysql_secure_installation

Sigue las indicaciones en pantalla:

  • Establece una contraseña de root.
  • Elimina los usuarios anónimos.
  • No permitir el inicio de sesión de root de forma remota.
  • Elimina la base de datos de prueba.

Crea un usuario de base de datos dedicado para phpMyAdmin:

sudo mysql -u root -p

CREATE USER 'admin'@'localhost' IDENTIFIED BY 'your_strong_password';
GRANT ALL PRIVILEGES ON *.* TO 'admin'@'localhost' WITH GRANT OPTION;
FLUSH PRIVILEGES;
EXIT;

Configurar Nginx para phpMyAdmin

Crea un archivo de configuración de Nginx para phpMyAdmin:

sudo nano /etc/nginx/conf.d/phpmyadmin.conf

Añade la siguiente configuración:

server {
    listen 80;
    server_name phpmyadmin.example.com;
    root /usr/share/phpmyadmin;

    index index.php index.html;

    location / {
        try_files $uri $uri/ =404;
    }

    location ~ \.php$ {
        include snippets/fastcgi-php.conf;
        fastcgi_pass unix:/var/run/php/php8.3-fpm.sock;
    }

    location ~ /\.ht {
        deny all;
    }
}

Comprueba que la configuración no contenga errores de sintaxis:

sudo nginx -t

Recarga Nginx para aplicar los cambios:

sudo systemctl reload nginx

Asegura phpMyAdmin con Let’s Encrypt SSL

Asegúrate de que Certbot está instalado para gestionar los certificados SSL:

sudo apt install certbot python3-certbot-nginx -y

Utiliza Certbot para obtener e instalar un certificado:

sudo certbot --nginx -d phpmyadmin.example.com

Sigue los pasos para configurar SSL, incluyendo la selección de la opción para redirigir todo el tráfico HTTP a HTTPS.

Renovación automática de certificados

Configura una tarea cron para renovar automáticamente los certificados SSL:

echo "0 3 * * * /usr/bin/certbot renew --quiet" | sudo tee /etc/cron.d/certbot-renew

Pasos finales

Cambia los permisos de propiedad:

sudo chown -R www-data:www-data /usr/share/phpmyadmin
sudo chmod -R 755 /usr/share/phpmyadmin

Accede a phpMyAdmin

Abre tu navegador web y navega hasta https://phpmyadmin.example.com. Accede con tus credenciales de administrador. Deberías ver el panel de phpMyAdmin.

Conclusión

¡Enhorabuena! Has instalado y asegurado correctamente phpMyAdmin con Nginx en Ubuntu 24.04. Recuerda actualizar regularmente los paquetes de tu servidor y hacer copias de seguridad de tus bases de datos.

Consejo avanzado: Para mejorar la seguridad, considera la posibilidad de configurar la autenticación de dos factores (2FA) para las operaciones sensibles en phpMyAdmin.

También te podría gustar...