PhpMyAdmin es una herramienta de administración de base de datos basada en web gratuita y de código abierto escrita en lenguaje de programación PHP. Con phpMyAdmin, los administradores de la base de datos pueden administrar fácilmente servidores de bases de datos únicos o múltiples, ya sea a través de un navegador web. Esto puede ser útil para aquellos que no se sienten cómodos con el indicador de MySQL. phpMyAdmin permite a los administradores de bases de datos realizar todo tipo de tareas de administración de bases de datos, como crear, editar, renombrar, eliminar bases de datos, importar y exportar bases de datos, crear tablas, campos y campos, ejecutar comandos SQL y muchos más. En este tutorial, vamos a instalar phpMyAdmin con la pila LAMP en el sistema operativo del servidor Ubuntu 20.04 LTS.
Instalar phpMyAdmin con LAMP Stack en Ubuntu 20.04 LTS
Para instalar phpMyAdmin en el servidor Ubuntu 20.04 LTS, debe tener una pila LAMP en funcionamiento. Si aún no ha instalado LAMP stack, consulte la siguiente guía:
- Instalar la pila Apache, MySQL, PHP (LAMP) en Ubuntu 20.04 LTS
Una vez que haya configurado la pila LAMP, habilite el repositorio 'universo' , si aún no está habilitado.
$ sudo add-apt-repository universe
$ sudo apt update
Ahora instale phpMyAdmin y todas las demás dependencias requeridas en Ubuntu 20.04 usando los comandos:
$ sudo apt install phpmyadmin php-mbstring php-zip php-gd php-json php-curl
A continuación, seleccione el servidor web que debe configurarse automáticamente para ejecutar phpMyAdmin. Elija el servidor web con las flechas ARRIBA/ABAJO y presione la tecla BARRA ESPACIADORA. Una vez que elija el servidor web, verá un símbolo * (estrella) delante de él. Presiona la tecla TAB para elegir Aceptar y nuevamente presiona la tecla ENTER para continuar.
PhpMyAdmin requiere una base de datos instalada y configurada antes de que pueda usarse. Puede hacerlo con el comando dbconfig.
Elija Sí para configurar la base de datos para phpmyadmin con dbconfig-common:
Debe proporcionar una contraseña para que phpmyadmin se registre en el servidor de base de datos MySQL. Si no se proporciona la contraseña, se generará una contraseña aleatoria.
Ingrese una contraseña segura y presione ENTER para continuar:
Vuelva a introducir la contraseña:
Al momento de escribir esta guía, cuando traté de configurar la contraseña para phpmyadmin, arroja el siguiente error:
An error occurred while installing the database: mysql said: ERROR 1819 (HY000) at line 1: Your password does not satisfy the current policy requirements . Your options are: * abort - Causes the operation to fail; you will need to downgrade, reinstall, reconfigure this package, or otherwise manually intervene to continue using it. This will usually also impact your ability to install other packages until the installation failure is resolved. * retry - Prompts once more with all the configuration questions (including ones you may have missed due to the debconf priority setting) and makes another attempt at performing the operation. * retry (skip questions) - Immediately attempts the operation again, skipping all questions. This is normally useful only if you have solved the underlying problem since the time the error occurred. * ignore - Continues the operation ignoring dbconfig-common errors. This will usually leave this package without a functional database.
Este error se produce porque hemos habilitado la VALIDAR CONTRASEÑA como se describe en la sección titulada "2.2 Cambiar el método de autenticación para el usuario root de MySQL" en la guía de instalación de LAMP stack adjunta arriba.
Para solucionar este problema, debe deshabilitar temporalmente el componente Validar contraseña y volver a habilitarlo después de configurar la contraseña para phymyadmin. Haga clic en Aceptar para cerrar el mensaje de error anterior y elija "cancelar" para cancelar la instalación de phpmyadmin.
Ahora inicie sesión en el indicador de Mysql ejecutando el siguiente comando:
$ mysql -u root -p
Desde el indicador de mysql, ejecute el siguiente comando para deshabilitar el complemento Validar contraseña:
mysql> UNINSTALL COMPONENT "file://component_validate_password";
Tenga en cuenta que el comando anterior solo deshabilitará el complemento, pero no lo eliminará. Puedes habilitarlo más tarde. Luego escriba "salir" para salir del indicador de Mysql.
mysql> exit
Ahora intente instalar phpmyadmin nuevamente usando el comando:
$ sudo apt install phpmyadmin php-mbstring php-zip php-gd php-json php-curl
Elija "Sí" y presione ENTER para configurar la base de datos para phpmyadmin con dbconfig-common. Esta vez, la instalación de phpmyadmin funcionará sin problemas.
Una vez que phpmyadmin esté instalado, vuelva a habilitar el complemento Validar contraseña. Para hacerlo, inicie sesión en su indicador Mysql:
$ mysql -u root -p
Desde el indicador de mysql, ejecute el siguiente comando para deshabilitar el complemento Validar contraseña:
mysql> INSTALL COMPONENT "file://component_validate_password";
Escriba exit para salir del indicador de mysql.
mysql> exit
Finalmente, habilite mbstring php y reinicie el servicio Apache para actualizar los cambios como se muestra a continuación.
$ sudo phpenmod mbstring
$ sudo systemctl restart apache2
Ahora puede verificar si la extensión mbstring está habilitada o no cargando el archivo info.php desde el navegador web.
Para hacerlo, vaya a http://dirección-IP/info.php desde su navegador.
Verá que el complemento mbstring está habilitado.
Cree un usuario dedicado para acceder al panel de phpMyAdmin
Una vez que se instala phpMyAdmin, un usuario de la base de datos llamado 'phpmyadmin' se creará automáticamente con la contraseña administrativa que estableció durante la instalación. Puede iniciar sesión en el panel de phpmyAdmin usando el usuario 'phpmyadmin' o mysql root usuario. Sin embargo, se recomienda crear un usuario dedicado para administrar las bases de datos a través de la interfaz web de phpMyAdmin.
Para hacerlo, inicie sesión en mysql shell usando el comando:
$ mysql -u root -p
Ingrese su contraseña raíz mysql. Ahora estará en mysql shell.
Ingrese el siguiente comando para crear un nuevo usuario dedicado para phpmyadmin:
mysql> CREATE USER 'phpmyadminuser'@'localhost' IDENTIFIED BY 'Password123#@!';
Aquí, phpmyadmin es el nuevo usuario para acceder al panel de phpmyadmin. La contraseña para phpmyadminuser es Password123#@! . Reemplace estos valores con los suyos propios.
Luego otorgue los privilegios apropiados al 'phpmyadminuser' usando el comando:
mysql> GRANT ALL PRIVILEGES ON *.* TO 'phpmyadminuser'@'localhost' WITH GRANT OPTION;
Finalmente salga del shell mysql:
mysql> exit
Ahora hemos creado un usuario dedicado para administrar las bases de datos a través de la interfaz web phpmyadmin. Avancemos y accedamos al panel de control de phpmyadmin.
Acceder al panel de phpMyAdmin
Abra su navegador web y vaya a http://ip-address/phpmyadmin o http://dominio/phpmyadmin . Debería ver la página de inicio de sesión de phpmyadmin. Inicie sesión en la interfaz de phmyadmin usando mysql root usuario o el nuevo usuario que creamos en el paso anterior.
Así es como se ve el tablero de phpMyAdmin:
A partir de ahora, puede administrar sus bases de datos a través de la interfaz web de phpMyAdmin.
phpMyAdmin seguro
Esta sección proporciona algunos consejos para asegurar la instalación de PhpMyAdmin. Tenga en cuenta que los siguientes pasos no pudieron proteger phpMyAdmin de forma 100 % segura. Sin embargo, al menos ralentizarán cualquier intento de un perpetrador de entrar en su panel de phpmyadmin.
Deshabilitar el inicio de sesión raíz de MySQL en el panel de phpmyadmin
Permitir que el usuario raíz de mysql acceda al panel de phpMyAdmin no es seguro, especialmente cuando se administran bases de datos a través de la red. Es por eso que creamos un usuario dedicado en la sección anterior. Dado que ya tenemos un usuario dedicado, podemos deshabilitar de forma segura el inicio de sesión raíz de mysql para acceder al panel de control de phpmyadmin para minimizar los ataques.
Generalmente, phpmyadmin se instala en /usr/share/phpmyadmin/ El directorio y sus archivos de configuración se almacenan en el directorio /etc/phpmyadmin.
Edite el archivo de configuración de phpmyadmin:
$ sudo nano /etc/phpmyadmin/config.inc.php
Agregue/modifique los siguientes parámetros:
[...] $cfg['Servers'][$i]['auth_type'] = 'cookie'; $cfg['Servers'][$i]['AllowRoot'] = FALSE; [...]
Guarde y cierre el archivo.
Reinicie el servidor web Apache usando el comando:
$ sudo systemctl restart apache2
Ahora intente iniciar sesión en phpmyadmin como usuario raíz. Obtendrá el Acceso denegado mensaje de error:
Proteger con contraseña la página de inicio de sesión de phpMyAdmin
Dado que phpMyAdmin es un objetivo fácil para los atacantes, la siguiente tarea recomendada es asegurar la página de inicio de sesión web de phpyMyAdmin. La forma más común de proteger phpMyAdmin del acceso no autorizado es mediante el .htaccess integrado de Apache. funcionalidades de autenticación y autorización.
En primer lugar, habilite el uso de .htaccess anula el archivo editando el /phpmyadmin.conf archivo:
$ sudo nano /etc/apache2/conf-available/phpmyadmin.conf
Agregue "Permitir anular todo" línea dentro del
<Directory /usr/share/phpmyadmin> Options SymLinksIfOwnerMatch DirectoryIndex index.php AllowOverride All
Presiona CTL+X seguido de Y para guardar y cerrar el archivo.
Reinicie el servicio de apache para actualizar los cambios usando el comando:
$ sudo systemctl restart apache2
A continuación, cree un archivo llamado .htaccess dentro de /usr/share/phpmyadmin/ directorio usando el comando:
$ sudo nano /usr/share/phpmyadmin/.htaccess
Agregue las siguientes líneas en él:
AuthType Basic AuthName "Restricted Files" AuthUserFile /etc/phpmyadmin/.htpasswd Require valid-user
Guarde y cierre el archivo.
Ahora, ejecute el siguiente comando para crear un nuevo usuario, por ejemplo ostechnix :
$ sudo htpasswd -c /etc/phpmyadmin/.htpasswd ostechnix
Reemplace 'ostechnix' con cualquier nombre de usuario de su elección. Se le pedirá que proporcione una contraseña para el nuevo usuario. Introdúcelo dos veces.
Salida de muestra:
New password: Re-type new password: Adding password for user ostechnix
Ahora hemos agregado una capa adicional de seguridad para acceder a la interfaz web de phpMyAdmin. De ahora en adelante, cada vez que intente acceder a la interfaz web de phpMyAdmin, se le pedirá que ingrese el nombre de usuario adicional y su contraseña que acaba de configurar en el paso anterior.
Una vez que haya ingresado el nombre de usuario y la contraseña correctos, será redirigido a la página de inicio de sesión de autenticación de phpmyadmin. Simplemente ingrese las credenciales de su base de datos para acceder al panel de Phpmyadmin.
Lectura relacionada:
- Instalar phpMyAdmin con LEMP Stack en Ubuntu 20.04 LTS