Cómo instalar y proteger phpMyAdmin con Nginx en Ubuntu 16.04

Cómo instalar y proteger phpMyAdmin con Nginx en Ubuntu 16.04

Introducción

phpMyAdmin es una interfaz gráfica basada en la web utilizada para administrar bases de datos MySQL/MariaDB. Es una herramienta esencial para administrar bases de datos, ya que proporciona una interfaz fácil de usar que simplifica las tareas de administración de bases de datos complejas. En este tutorial, te guiaremos paso a paso sobre cómo instalar y proteger phpMyAdmin con Nginx en un servidor Ubuntu 16.04.

Requisitos previos

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

– Un servidor Ubuntu 16.04 actualizado
– Un servidor web Nginx instalado
– MySQL/MariaDB instalado y configurado
– Un nombre de dominio registrado y apuntando a tu servidor

Paso 1: Instalar LAMP Stack

LAMP Stack es una colección de software que incluye Linux, Apache, MySQL y PHP. Instalaremos Apache para servir archivos phpMyAdmin estáticos.


sudo apt-get update
sudo apt-get install lamp-server^

Paso 2: Instalar phpMyAdmin


sudo apt-get install phpmyadmin

Durante la instalación, se te pedirá a que elijas un servidor web. Selecciona apache2.

Paso 3: Configurar Nginx para phpMyAdmin

Edita el archivo de configuración predeterminado de Nginx:


sudo nano /etc/nginx/sites-available/default

Agrega el siguiente bloque al final del archivo:


location /phpmyadmin {
root /usr/share/phpmyadmin;
index index.php index.html;
try_files $uri $uri/ =404;

location ~ \.php$ {
fastcgi_pass unix:/run/php/php7.2-fpm.sock;
fastcgi_index index.php;
fastcgi_param SCRIPT_FILENAME $document_root$fastcgi_script_name;
include fastcgi_params;
}
}

Paso 4: Habilitar el módulo rewrite

El módulo rewrite es necesario para el redireccionamiento de URL de phpMyAdmin. Habilítalo ejecutando:


sudo a2enmod rewrite

Paso 5: Proteger phpMyAdmin

5.1 Configurar la autenticación

Edita el archivo de configuración de phpMyAdmin:


sudo nano /etc/phpmyadmin/config.inc.php

Busca la línea:


<!-- Authentication type -->

Y reemplaza el valor de $cfg['Servers'][$i]['auth_type'] con cookie.

5.2 Crear un usuario de la base de datos

Crea un usuario de la base de datos MySQL para phpMyAdmin:


mysql -u root -p
CREATE USER 'phpmyadmin'@'localhost' IDENTIFIED BY 'contraseña_segura';
GRANT ALL PRIVILEGES ON . TO 'phpmyadmin'@'localhost';
FLUSH PRIVILEGES;
EXIT;

5.3 Configurar el archivo de configuración de phpMyAdmin

En el archivo de configuración de phpMyAdmin, reemplaza el valor de $cfg['Servers'][$i]['user'] con phpmyadmin y el valor de $cfg['Servers'][$i]['password'] con la contraseña que creaste.

Paso 6: Reiniciar los servicios

Reinicia Apache y Nginx para que los nuevos cambios surtan efecto:


sudo service apache2 restart
sudo service nginx restart

Paso 7: Verificar la instalación

Apunta tu navegador a http://tu_dominio/phpmyadmin y deberías ver la interfaz de phpMyAdmin. Inicia sesión con el usuario y la contraseña que configuraste.

Conclusión

Has instalado y protegido con éxito phpMyAdmin con Nginx en Ubuntu 16.04. Ahora puedes administrar tus bases de datos MySQL/MariaDB de forma segura y sencilla a través de una interfaz gráfica. Recuerda mantener tu software actualizado y realizar copias de seguridad periódicas para garantizar la integridad y la seguridad de tus datos.

Preguntas frecuentes

1. ¿Qué es phpMyAdmin?
phpMyAdmin es una interfaz gráfica basada en la web utilizada para administrar bases de datos MySQL/MariaDB.

2. ¿Por qué debería usar Nginx sobre Apache para servir phpMyAdmin?
Nginx es conocido por su alto rendimiento y su bajo uso de recursos, por lo que es una buena opción para servir archivos estáticos como los archivos phpMyAdmin.

3. ¿Cómo puedo cambiar la contraseña de phpMyAdmin?
Puedes cambiar la contraseña editando el archivo de configuración de phpMyAdmin (/etc/phpmyadmin/config.inc.php) y modificando el valor $cfg['Servers'][$i]['password'].

4. ¿Cómo puedo habilitar el acceso remoto a phpMyAdmin?
Para habilitar el acceso remoto, debes editar el archivo de configuración de Nginx (/etc/nginx/sites-available/default) y configurar el bloque location /phpmyadmin para permitir el acceso desde direcciones IP específicas.

5. ¿Cómo puedo proteger aún más phpMyAdmin?
Puedes usar técnicas adicionales de seguridad como el filtrado de direcciones IP, el uso de certificados SSL y la implementación de un firewall para proteger aún más phpMyAdmin.

6. ¿Qué debo hacer si no puedo iniciar sesión en phpMyAdmin?
Verifica que el usuario y la contraseña que estás utilizando sean correctos. Si has olvidado tu contraseña, puedes restablecerla ejecutando el comando mysql -u root -p y luego usando el comando ALTER USER 'phpmyadmin'@'localhost' IDENTIFIED BY 'nueva_contraseña';.

7. ¿Cómo puedo actualizar phpMyAdmin?
Puedes actualizar phpMyAdmin ejecutando el siguiente comando:

sudo apt-get update
sudo apt-get install phpmyadmin

8. ¿Dónde puedo obtener más información sobre phpMyAdmin?
Puedes encontrar más información sobre phpMyAdmin en el sitio web oficial: https://www.phpmyadmin.net/