Image

Base de conocimientos → Instalación y configuración de phpMyAdmin en Lemp Debian 12

[Servidores virtuales]
Fecha de publicación: 12.07.2023

Para trabajar con bases de datos a través de la interfaz web, existe un editor web phpMyAdmin. Esta herramienta se conecta a la base de datos MariaDB y muestra las bases de datos existentes, le permite crear nuevas, editar datos en tablas. En general, todo es igual a lo que se puede hacer en la consola mysql, pero mucho más conveniente y claro, especialmente cuando se trabaja con datos con frecuencia. Considere instalar phpMyAdmin en Debian 12 Linux Server con Nginx + MariaDB + PHP (LEMP) preconfigurado.

Realizamos todas las configuraciones desde el usuario raíz, si está utilizando un usuario normal, agregue antes del comando sudo.

1. Instale los componentes necesarios y el propio editor de base de datos

apt install php-mbstring
apt install phpmyadmin


Durante el proceso de instalación, se le pedirá al usuario que seleccione para qué servidor web debe configurarse el editor.

  • []apache2
  • []lighttpd

En nuestro caso, el servidor tiene preinstalado LEMP y dejamos ambos campos vacíos y pulsamos Ok.

A continuación, se propondrá crear una base de datos para el propio editor de bases de datos, donde se almacenarán las configuraciones de usuario del editor y otros datos necesarios para su funcionamiento. Aquí seleccionamos la opción Sí y en la siguiente ventana se le pedirá que cree una contraseña para el usuario phpmyadmin. Ingresamos la contraseña y la confirmamos en la siguiente ventana para evitar errores de ingreso.

2. Ajustes básicos

Sigamos el enlace http://server-ip/phpmyadmin para verificar el trabajo, podemos ingresar el nombre de usuario y la contraseña de cualquier base de datos, por ejemplo, la recién creada, el nombre de usuario de phpmyadmin y la contraseña que configuramos. A veces, por conveniencia, se requiere trabajar con varias bases de datos a la vez, para mostrarlas en un solo usuario, debemos crear una y delegar los derechos del usuario raíz.

mysql -u root -p

CREATE USER 'alldbuser'@'localhost' IDENTIFIED BY 'password'; GRANT ALL PRIVILEGES ON . TO 'alldbuser'@'localhost'; FLUSH PRIVILEGES;

Ahora, al autorizar bajo el usuario alldbuser, se muestran todas las bases de datos creadas en este servidor.

Si necesita establecer una contraseña para el usuario root, use los siguientes comandos:

mysql -u root
use mysql;
FLUSH PRIVILEGES;
ALTER USER 'root'@'localhost' IDENTIFIED BY 'YOURNEWPASSWORD';
FLUSH PRIVILEGES;
exit

Agreguemos un enlace a la carpeta phpMyAdmin en el directorio raíz del servidor web nginx:

ln -s /usr/share/phpmyadmin /usr/share/nginx/html

3. Configuración de seguridad
Para proteger al editor de la base de datos de adivinar contraseñas y posibles vulnerabilidades, agreguemos autorización en el nivel sin servidor.

vi /etc/nginx/conf.d/default.conf

location /phpmyadmin { auth_basic "Admin Login"; auth_basic_user_file /etc/nginx/pma_pass; }

Agregue un usuario y especifique una contraseña para él:

htpasswd -c /etc/nginx/pma_pass pma_username

Reinicie el servicio nginx:

systemctl restart nginx

Ahora, cuando haga clic en el enlace http://server-ip/phpmyadmin, aparecerá una ventana para ingresar su nombre de usuario y contraseña. En nuestro caso, el inicio de sesión será pma_username.

La configuración está completa, le recomendamos encarecidamente que ingrese contraseñas solo usando el protocolo https con un certificado SSL, para evitar la interceptación de datos.





Marcos
12.12.2023 23:42
y cuando da error desde el segundo renglon???
Support Synay
12.12.2023 23:47
¿Qué error exactamente?
maximo
30.12.2023 18:33
instalo todo sin problemas pero no abre la web de phpmyadmin, me parece que falta algu paso para indicarle a nginx de la web de phpmyadmin
Synay Support
30.12.2023 18:56
Tienes razón, en comparación con la versión en inglés, falta la línea, además no olvides reiniciar Nginx y verificar las rutas.

Agreguemos un enlace a la carpeta phpMyAdmin en el directorio raíz del servidor web nginx:

ln -s /usr/share/phpmyadmin /usr/share/nginx/html