En este artículo vamos a ver cómo instalar phpMyAdmin en Debian 9 Stretch paso a paso, una fantástica opción para poder administrar local o remotamente el servicio MariaDB o MySQL de tu servidor o VPS Debian, de forma muy visual gracias a su interfaz web.
Por citar algunas ventajas:
- No es necesario tener activado el acceso remoto a MariaDB o MySQL Server, lo que evita ataques directos.
- Se puede administrar MariaDB o MySQL vía web desde cualquier lugar sin necesitar un cliente específico.
Interesante, ¿verdad? Pues vamos a dejarlo todo preparado en escasos minutos.
Tabla de contenidos
Antes de instalar phpMyAdmin en Debian 9 Stretch
Para poder seguir esta guía de instalación de phpMyAadmin en Debian 9 Stretch necesitas lo siguiente:
- Un sistema Debian 9 Stretch actualizado.
- Tener instalada una pila tipo LAMP o, lo que es lo mismo, servicio web con MariaDB/MySQL y PHP (a partir de la versión 7.2 hasta la 8.1).
- Acceso a línea de comandos como root o usuario con permisos de sudo.
- Conexión a Internet.
Si aún no tienes instalado este tipo de entorno, puedes consultar la guía de instalación LAMP en Debian 9 Stretch. Es importante tener configurado el acceso HTTPS para el servicio web, aunque por motivos didácticos excepcionalmente en esta guía trabajamos sobre HTTP.
Además necesitaremos algunas herramientas del sistema que obtendremos de los directorios de Debian 9, para lo que actualizamos las listas de paquetes:
~$ sudo apt update
E instalamos dichas herramientas:
~$ sudo apt install -y ca-certificates wget
Como ves no necesitamos muchas cosas en Debian 9 para instalar phpMyAdmin, así que vamos a ponernos manos a la obra.
Cómo descargar phpMyAdmin para Debian 9 Stretch
Vamos a descargar phpMyAdmin para Debian 9 Stretch desde el sitio oficial del proyecto, ya que la versión disponible en los repositorios del sistema ya está algo anticuada (pertenece a la rama 4.6). Visitando la sección de descargas encontramos la última versión estable:
Encontraremos distintos formatos de compresión del paquete de phpMyAdmin, como .zip, .tar.gz o .tar.xz. Puedes elegir el que te interese y realizar la descarga directamente desde el navegador, aunque en este tutorial vamos a copiar el enlace del paquete con formato .tar.xz para descargarlo desde consola con el comando wget:
~$ wget https://files.phpmyadmin.net/phpMyAdmin/5.2.0/phpMyAdmin-5.2.0-all-languages.tar.xz
Cómo instalar phpMyAdmin en Debian 9 Stretch
El proceso de instalar phpMyAdmin en Debian 9 Stretch requiere la realización de una serie de tareas y pasos concretos que vamos a ir detallando a continuación.
Archivos de phpMyAdmin
Descomprimiremos el paquete que acabamos de descargar en el paso anterior directamente en la ubicación definitiva para la aplicación:
~$ sudo tar xf phpMyAdmin-5.2.0-all-languages.tar.xz -C /var/www/
El nombre del subdirectorio que se crea contiene el número de versión de phpMyAdmin, así que es buena práctica crear un enlace simbólico que no contenga la versión, para facilitar el mantenimiento y configuración de la aplicación:
~$ sudo ln -s /var/www/phpMyAdmin-5.2.0-all-languages/ /var/www/phpMyAdmin
Como phpMyAdmin debe poder escribir en su propio directorio de instalación, concederemos la propiedad de dicho directorio al usuario con el que corre el servicio web:
~$ sudo chown www-data: /var/www/phpMyAdmin/
Servicio web
Como la ubicación de phpMyAdmin que hemos elegido está fuera del alcance de la navegación web, crearemos una configuración de Apache exclusiva para la aplicación:
~$ sudo nano /etc/apache2/sites-available/phpmyadmin.conf
La configuración consiste en la creación del alias que apunta al directorio de phpMyAdmin:
Alias /phpmyadmin /var/www/phpMyAdmin
Guardamos el archivo y habilitamos la nueva configuración:
~$ sudo a2ensite phpmyadmin
Y recargamos la configuración del servicio web para que el alias esté disponible:
~$ sudo systemctl reload apache2
PHP
PhpMyAdmin requiere ciertas extensiones en Debian 9 que instalaremos con apt. Como por la versión mínima exigida de PHP usaremos forzosamente alguna del repositorio alternativo, indicaremos el número de versión instalado en nuestro sistema en los nombres de los paquetes. Por ejemplo, para la versión 7.4:
~$ sudo apt install -y php7.4-bz2 php7.4-mbstring php7.4-xml php7.4-zip
O para la 8.0:
~$ sudo apt install -y php8.0-bz2 php8.0-mbstring php8.0-xml php8.0-zip
Para cualquier otra versión, sustituye en los comandos anteriores el prefijo phpX.X- por lo que corresponda.
Terminada la instalación, recargaremos la configuración del servicio web o PHP, según corresponda:
~$ sudo systemctl reload apache2
Configuración inicial de phpMyAdmin en Debian 9
Antes de acceder a phpMyAdmin tendremos que crear el archivo de configuración inicial, partiendo del archivo de ejemplo que viene incluido en el paquete:
~$ sudo cp /var/www/phpMyAdmin/config.sample.inc.php /var/www/phpMyAdmin/config.inc.php
Editaremos este nuevo archivo de configuración:
~$ sudo nano /var/www/phpMyAdmin/config.inc.php
El primer paso será darle un valor a la variable ‘blowfish_secret‘, que por defecto no lo tiene y sirve para cifrar las cookies de acceso:
... /** * This is needed for cookie based authentication to encrypt password in * cookie. Needs to be 32 chars long. */ $cfg['blowfish_secret'] = ''; /* YOU MUST FILL IN THIS FOR COOKIE AUTH! */ ...
Quedaría algo así:
... $cfg['blowfish_secret'] = 'XxXxXxXxXxXxXxXxXxXxXxXxXxXxXxXx'; ...
Seguiremos con la sección «User used to manipultate with storage«:
... /* User used to manipulate with storage */ // $cfg['Servers'][$i]['controlhost'] = ''; // $cfg['Servers'][$i]['controlport'] = ''; // $cfg['Servers'][$i]['controluser'] = 'pma'; // $cfg['Servers'][$i]['controlpass'] = 'pmapass'; ...
Activaremos las variables controluser y controlpass, eliminando los caracteres // iniciales, y crearemos una contraseña nueva:
... $cfg['Servers'][$i]['controluser'] = 'pma'; $cfg['Servers'][$i]['controlpass'] = 'XXXXXXXX'; ...
Finalmente, activaremos por completo la sección «Storage database and tables«:
... /* Storage database and tables */ $cfg['Servers'][$i]['pmadb'] = 'phpmyadmin'; $cfg['Servers'][$i]['bookmarktable'] = 'pma__bookmark'; ... $cfg['Servers'][$i]['designer_settings'] = 'pma__designer_settings'; $cfg['Servers'][$i]['export_templates'] = 'pma__export_templates'; ...
Ya podemos guardar los cambios y cerrar el archivo.
Servicio de bases de datos
Puesto que phpMyAdmin ofrece características avanzadas a través del uso de una base de datos propia, algunas de cuyas características hemos activado en el paso anterior, conectaremos al servicio con el cliente mysql y nuestro usuario administrador para crear el soporte necesario:
~$ mysql -u root -p
Creamos la base de datos:
> create database phpmyadmin;
A continuación crearemos el usuario, teniendo en cuenta el nombre de usuario y la contraseña especificados en el archivo de configuración de phpMyAdmin.
En MySQL 5.x ó MariaDB creamos el usuario de forma simple:
> create user pma@localhost identified by 'XXXXXXXX';
Mientras que en MySQL 8 a la hora de crear el usuario especificamos también el plugin de acceso adecuado:
> create user pma@localhost identified with mysql_native_password by 'XXXXXXXX';
A continuación concedemos los permisos necesarios sobre la base de datos al usuario:
> grant all privileges on phpmyadmin.* to pma@localhost;
Y cerramos la conexión:
> exit
Ya está creada la base de datos para phpMyAdmin, pero es necesario inicializarla, para lo que usamos un script SQL que proporciona el paquete de la aplicación:
~$ mysql -u pma -p phpmyadmin < /var/www/phpMyAdmin/sql/create_tables.sql
Cargamos este script utilizando el nuevo usuario para phpMyAdmin, por lo que habrá que proporcionar la contraseña que le hemos asignado.
Cómo acceder a phpMyAdmin en Debian 9 Stretch
Tras esta rápida instalación y configuración de phpMyAdmin en nuestro sistema Debian 9, podemos acceder a este servicio web añadiendo el alias /phpmyadmin a cualquier dirección IP o dominio (incluyendo localhost) que apunte a la máquina Debian 9.
Por ejemplo, en mi caso la máquina Debian 9 que estoy configurando es accesible desde el dominio debian9.local.lan, por lo que accedo a phpMyAdmin a través de la URL http://debian9.local.lan/phpmyadmin en el navegador:
Inmediatamente aparecerá la página de login o inicio de sesión de phpMyAdmin, donde introduciremos el usuario y la contraseña de cualquier usuario de MariaDB dado de alta en el sistema. Si las credenciales son correctas, entramos en la pantalla principal de phpMyAdmin:
Y ya podremos trabajar con total funcionalidad, creando bases de datos, tablas, exportando e importando datos, etc. siempre dentro de los privilegios que en particular tenga concedidos cada usuario del servicio de bases de datos.
Conclusión
Ahora que ya sabes cómo instalar phpMyAdmin en Debian 9 estás listo para poder administrar tus bases de datos con todas las ventajas que ofrece este potente frontend web para MariaDB/MySQL. Su manejo es muy intuitivo, por lo que no es objeto de este tutorial.
Si tienes alguna duda, pregunta, sugerencia de mejoras, quieres reportar un error o solicitar temas para nuevos tutoriales y guías, déjame un comentario. Los comentarios están moderados para evitar SPAM, pero se revisan prácticamente a diario.
¿Te ha servido esta guía de instalación de phpMyAdmin en Debian 9 Stretch? ¿Estás deseando agradecérmelo y no sabes cómo? Pues nada más fácil, puedes dejar una propina de 1 $ con la calderilla que no usas en PayPal:
¡Gracias!
Actualizado a la versión 5.2.0.
Quisiera saber cómo puedo ocultar http://mi_dominio/phpmyadmin, para Internet, o sea que sólo sea accesible por ejemplo de una IP de gestión de mi red interna. Lo que deseo es que no sea accesible phpMyAdmin desde el exterior.
¡¡Ahh!! El contenido del fichero /etc/apache2/sites-available/phpmyadmin.conf es el siguiente y no encuentro las directivas que explican en muchos sitios, ni siquiera se parece:
Alias /phpmyadmin /var/www/phpMyAdmin
Saludos.
Gracias.
A ver si me he enterado de tu problema. Tienes un servidor en Internet accesible públicamente en el dominio mi_dominio, con sitio web http://mi_dominio. Ahora lo que quieres es añadir phpMyAdmin pero que sólo sea accesible para ti desde tu casa, por ejemplo, pero que el resto del mundo no pueda. ¿Es correcto?
No, no es eso lo que necesito.
Trabajo en una empresa, en un nodo, y lo que deseo es que sólo desde mi IP, de mi máquina de gestión, pueda acceder (si se quiere hasta local me da igual). O sea que si X persona desde Internet intenta acceder a http://mi_dominio/phpmyadmin no pueda acceder, se le dé una respuesta 404 lo que sea, pero que no pueda ver el login de phpMyAdmin.
No sé si es el término, pero lo que quiero es «restringir por IP».
Saludos, gracias por responder.
Vale, ya lo he entendido, rruiz84. Puedes cambiar el alias, restringir por IP… o las dos cosas a la vez. Para ello cambia el archivo de configuración y déjalo parecido a esto:
Alias /un-alias-dificil-de-adivinar-pero-comodo-para-mi /var/www/phpMyAdmin
<Directory /var/www/phpMyAdmin>
Require IP direccion.ip.de.gestion
</Directory>
Guardas los cambios y recargas la configuración del servicio web. Ahora phpMyAdmin sólo es accesible desde la dirección IP especificada, utilizando el nuevo alias.
El hosting soy yo mismo, lo tengo alojado yo.
Chacho Cool:
Si yo pongo https://chachocool.com/phpmyadmin
La respuesta es: «¡Vaya! No se ha podido encontrar esa página«.
Ya yo hice ofuscamiento en el WordPress para /wp-admin con un plugins. Algo similar es lo que quiero (necesito jejeje) para phpMyAdmin.
¿Cómo hago eso?
Saludos.
Y mil Gracias de nuevo.
¿Cuál es la última versión que tiene a phpMyAdmin en los repositorios? Ayer instalé Buster y cuando me encontré con esto lo desinstalé. Estoy harto de que cambien las cosas para peor. Suerte no son gobierno en Egipto sino cada tanto desarman la pirámide y si la queremos ver nos la tenemos que armar.
¡Hola, Rodo! La versión anterior de Debian sí incluía phpMyAdmin, pero ya podrás imaginar que no está muy actualizado. Tampoco es un drama que no esté incluido en Debian 10 Buster, cuando puedes instalarlo fácilmente siguiendo guías y tutoriales como el presente. Ten en cuenta que paquetizar aplicaciones web que están evolucionando constantemente tampoco tendría mucho sentido.
Me anduvo en Debian 10 sobre armhf.
¡Me alegra saberlo, Martín!
Entonces, ¿este método sólo sirve para MariaDB?
La actualización de este artículo cubre la instalación de la versión oficial de phpMyAdmin, por lo que es válido para MariaDB y MySQL. La versión del paquete de Debian 9 para phpMyAdmin sólo sirve para MariaDB, al formar este motor de bases de datos parte de la distribución, siendo sin embargo MySQL un software externo. Lo normal es que los paquetes de la distribución, como phpMyAdmin, estén diseñados para interactuar y depender con otros paquetes de la misma distribución.