PhpMyADmin es una herramienta destinada a gestionar y administrar bases de datos MySQL/MariaDB a través de una interfaz web.

En ocasiones nos puede ser útil para poder gestionar las bases de datos y poder crear nuevas bases de datos para nuestros proyectos.

En el siguiente tutorial vamos a usar Ubuntu 18.04, pero el proceso de instalación y configuración es el mismo para Debian o CentOS y sus derivadas.

La instalación de phpMyAdmin vamos a realizarla desde las fuentes, si bien es cierto que se puede instalar con el gestor de paquetes de nuestra distribución, es preferible para este tutorial realizar la instalación como si de una aplicación web se tratara (que lo es además).

Instalación de Apache + PHP + MariaDB

Para instalar phpMyAdmin es necesario tener un servidor web completo para que funcione todo correctamente. Para evitar contenido duplicado, podéis seguir este tutorial sobre como instalar un servidor web completo en Debian 10.

Configuración de VirtualHost para phpMyAdmin

La configuración de VirtualHost en Apache puede hacerse de diferentes formas y esta configuración que explico no es ni la mejor ni la peor, es simplemente una configuración más.

Para quien no tenga claro que es un VirtualHost lo que recomendaría sería primero revisar este artículo que explica como Configurar un VirtualHost por dominio en Apache.

Una vez tenemos configurado nuestro VirtualHost, deberíamos de tener algo parecido a esto:

<VirtualHost *:80>
        ServerName db.dominio.com
        DocumentRoot /var/www/html/vhosts/db.dominio.com/www

        ErrorLog /var/www/html/vhosts/db.dominio.com/logs/error.log
        LogLevel warn
        CustomLog /var/www/html/vhosts/db.dominio.com/logs/access.log combined
</VirtualHost>

Como que se trata de una aplicación que se va a conectar a la base de datos de nuestro servidor, no queremos que esta aplicación tenga acceso desde Internet para todo el mundo.

Para ello, vamos a limitar el acceso únicamente para nosotros añadiendo que únicamente permita acceso a una IP en concreto (o a las IP’s que nosotros queramos). Esta IP puede ser la IP de salida de nuestro router o incluso la IP de una VPN.

Añadimos lo siguiente:

<VirtualHost *:80>
        ServerName db.dominio.com
        DocumentRoot /var/www/html/vhosts/db.dominio.com/www

        <Directory /var/www/html/vhosts/db.dominio.com/www>
                Order Allow,Deny
                Allow from [NuestraIP]
        </Directory>

        ErrorLog /var/www/html/vhosts/db.dominio.com/logs/error.log
        LogLevel warn
        CustomLog /var/www/html/vhosts/db.dominio.com/logs/access.log combined
</VirtualHost>

Además si luego queremos añadir un certificado SSL para que la conexión se haga bajo HTTPS, tendremos que añadir una excepción para el directorio que usa Let’s Encrypt para validar el dominio:

<Directory /var/www/html/vhost/docs.voidnull.es/www/.well-known/acme-challenge/>
        Allow from all
</Directory>

Una vez configurado todo esto podremos habilitar nuestro fichero de configuración y reiniciar Apache:

a2ensite phpmyadmin.conf
systemctl restart apache2

Ahora solo tendremos que copiar los ficheros en la ruta que hemos definido en DocumentRoot:

wget https://www.phpmyadmin.net/downloads/phpMyAdmin-latest-all-languages.tar.gz

Y luego descomprimirlo:

tar -zxf phpMyAdmin-latest-all-languages.tar.gz -C /var/www/html/vhosts/db.dominio.com/www

Deberemos de poner los permisos necesarios para que Apache pueda ejecutarlo correctamente:

chown www-data.www-data -R /var/www/html/vhosts/db.dominio.com/www/*
chmod 755 -R /var/www/html/vhosts/db.dominio.com/www/*

Y con esto ya podremos acceder a nuestro phpMyAdmin mediante nuestro subdominio db.dominio.com.

Haz que cada palabra cuente: tu donación nos inspira a seguir creando contenido. Accede al apartado de Donación para hacer tu aportación