Introducción
phpMyAdmin es una herramienta de administración de bases de datos para MySQL y MariaDB, escrita en lenguaje PHP. Se utiliza principalmente para gestionar bases de datos a través de una interfaz web, lo que permite realizar tareas como crear y eliminar bases de datos, crear y eliminar tablas, insertar y consultar datos, etcétera (sin la necesidad de utilizar comandos).
Ofrece una gran cantidad de opciones, como la posibilidad de importar y exportar bases de datos, optimizar tablas, gestionar usuarios y permisos, etc. Esto lo convierte en una herramienta muy útil tanto para administradores de bases de datos como para desarrolladores web que utilizan MySQL como motor de base de datos.
En este artículo se explicará cómo instalar phpMyAdmin y configurarlo utilizando como servidor Web NGINX, también un breve explicación de cómo crear un usuario para iniciar sesión en la herramienta y tener acceso a todas las bases de datos. Se utilizará una pila LEMP previamente configurada para el escenario, para conocer más detalles de Cómo instalar NGINX MariaDB y PHP (LEMP) haz clic en hipervínculo.
Instalación phpmyadmin
En las distribuciones más habituales, esta añadido en el repositorio oficial el paquete para la instalación de phpMyAdmin y únicamente deberás utilizar la herramienta de gestor de paquetes que incluye el propio sistema operativo.
En Debian o distribuciones basadas en él como Ubuntu, simplemente ejecuta lo siguiente:
# apt install phpmyadmin -y --no-install-recommends
Se instalará utilizando el gestor de paquetes "Advanced Package Tool" nativo.
En RHEL o distribuciones basadas en él como CentOS, simplemente ejecuta lo siguiente:
# yum install phpmyadmin -y
Se instalará utilizando el gestor de paquetes "Yellowdog Updater (Modified)" nativo.
Configuración de phpMyAdmin
Por defecto, la ruta de instalación de phpmyadmin es en /usr/share y puedes añadirlo con el parámetro location para configurarlo en NGINX. También puedes decidir si implementarlo para un sitio en concreto modificando su archivo de configuración o añadirlo en la configuración global para acceder con la dirección, creando un archivo de configuración.
Para configurarlo para un sitio en concreto, simplemente en el archivo de su configuración añade las siguientes líneas dentro del server y puedes directamente utilizar un editor para realizarlo:
# nano /etc/nginx/sites-enabled/ejemplo.conf
Deberás añadir el siguiente contenido en el archivo en el bloque de server, entre dentro de sus llaves:
location /phpmyadmin {
root /usr/share/;
index index.php index.html index.htm;
location ~ ^/phpmyadmin/(.+\.php)$ {
try_files $uri =404;
root /usr/share/;
fastcgi_pass unix:/run/php/php7.4-fpm.sock;
fastcgi_index index.php;
fastcgi_param SCRIPT_FILENAME $document_root$fastcgi_script_name;
include /etc/nginx/fastcgi_params;
}
location ~* ^/phpmyadmin/(.+\.(jpg|jpeg|gif|css|png|js|ico|html|xml|txt))$ {
root /usr/share/;
}
}
Para que se pueda acceder a phpMyAdmin utilizando la dirección IP del servidor. Primero, verifica si tienes incluido el directorio conf.d en la configuración de NGINX:
# grep conf.d /etc/nginx/nginx.conf
Debería aparecer el siguiente resultado:
include /etc/nginx/conf.d/*.conf;
En caso de no aparecer ningún resultado, crea el directorio y añade el include en archivo de nginx.conf.
Posteriormente, crea el archivo de configuración para phpMyAdmin dentro del directorio y puedes directamente utilizar un editor para realizarlo:
# nano /etc/nginx/conf.d/phpmyadmin.conf
Deberás añadir la siguiente configuración en el archivo:
server {
location /phpmyadmin {
root /usr/share/;
index index.php index.html index.htm;
location ~ ^/phpmyadmin/(.+\.php)$ {
try_files $uri =404;
root /usr/share/;
fastcgi_pass unix:/run/php/php7.4-fpm.sock;
fastcgi_index index.php;
fastcgi_param SCRIPT_FILENAME $document_root$fastcgi_script_name;
include /etc/nginx/fastcgi_params;
}
location ~* ^/phpmyadmin/(.+\.(jpg|jpeg|gif|css|png|js|ico|html|xml|txt))$ {
root /usr/share/;
}
}
}
Aunque recuerda modificar el valor del parámetro fastcgi_pass en caso necesario. Por ejemplo para otra versión de PHP, cámbialo por el sock del FPM por la versión correspondiente:
fastcgi_pass unix:/run/php/php8.0-fpm.sock;
Adicionalmente, puedes añadir más seguridad filtrando por dirección IP en la configuración de NGINX o incluso crear una redundancia con auth_basic. Tienes más información en: Cómo configurar una autentificación para un directorio web en NGINX.
Por último, faltará aplicar la configuración y simplemente puedes reiniciar el servicio para ello:
# systemd restart nginx
Una vez realizada la configuración e implementada, el servidor Web debería mostrar el inicio de sesión de phpMyAdmin añadiendo phpmyadmin en la raíz en el navegador Web.
Crear usuario para phpMyAdmin
En caso que no tengas ningún usuario creado, puedes ejecutar lo siguiente desde un cliente MySQL:
CREATE USER 'admin'@'localhost' IDENTIFIED BY 'contraseña';
Crearás un usuario con nombre "admin" y recuerda modificar la contraseña del ejemplo, posteriormente otorga permisos al usuario. Puedes utilizar el siguiente comando para darle todos los permisos en todas las bases de datos:
GRANT ALL PRIVILEGES ON *.* TO 'admin'@'localhost';
Una vez creado el usuario y con permisos, podrás utilizarlo para acceder a phpMyAdmin. Tienes más información en el artículo de Cómo administrar usuarios y permisos en MySQL.
Esperamos haberte ayudado con este tutorial 🙂. Recuerda, si tienes consultas sobre esta u otra cuestión relacionada con tus servidores en Clouding, no dudes en escribir a soporte@clouding.io ¡Estamos a tu lado para lo que necesites!