Cómo instalar y asegurar phpMyAdmin en Ubuntu 16.04

,

phpMyAdmin es un software libre que ha sido desarrollado con el objetivo de gestionar la administración de un servidor MySQL en la web. También proporciona una interfaz visual con la que se pueden realizar la mayoría de las tareas de gestión y administración disponibles en el propio servidor, como son: la creación, la edición y la manipulación de bases de datos, tablas, operaciones de mantenimiento, gestión de usuarios y demás. Si deseas conocer más acerca de las funcionalidades del software visita la página oficial del proyecto (en inglés) o la documentación oficial.

Requisitos Previos

Los pasos que se describen en este tutorial requieren de un usuario con privilegios root en su servidor. Puedes ver cómo asignar privilegios de root a un usuario, siguiendo los pasos descritos en la guía: Configuración Inicial de un servidor Ubuntu.

Antes de comenzar la instalación de phpMyAdmin necesitas tener instalado y configurado un ambiente LAMP (Linux, Apache, MySQL, PHP) en tu servidor. Si no cuentas con LAMP en tu servidor puedes instalarlo fácilmente siguiendo los pasos del tutorial: Cómo instalar LAMP en Ubuntu 16.04 .

Una vez que tengas el usuario con privilegios de root y hayas instalado el software requerido está todo listo para comenzar la instalación.

Instalar phpMyAdmin

La manera más fácil de instalar phpMyAdmin es utilizando apt-get:

Durante la instalación phpMyAdmin te guiará por diferentes menús de configuración. Una vez que el proceso comience sigue los siguientes pasos:

1. Selecciona Apache2 para el servidor. Con esto aseguras que se cree automáticamente el virtualhost para acceder a phpMyAdmin.

Seleccione el Servidor donde se ejecutará phpMyAdmin

Selección del Servidor

2. Selecciona «YES»  cuando te pida configurar la base de datos.

Configurar la base de datos para phpMyAdmin

Configurar la base de datos para phpMyAdmin

3. Introduce la contraseña de administrador de tu servidor MySQL.

Password del servidor MySQL

Password del servidor MySQL

4. Introduce la contraseña que deseas utilizar para acceder a phpMyAdmin

Nota

Es importante, para seleccionar las opciones, presionar «Tab» y luego «Enter». Ej: para seleccionar Apache2.

Una vez que la instalación se ha completado es necesario agregar phpMyAdmin a la configuración de Apache2. Para hacer esto utilizaremos un editor de texto con permiso de sudo:

Para adicionar phpMyAdmin al archivo de configuración basta con poner la siguiente línea en el archivo:

Para que los cambios surjan efecto es necesario reiniciar el servidor Apache2:

Puedes acceder a phpMyAdmin visitando la siguiente dirección en tu navegador web:

Si todo ha salido según lo planeado deberás ver algo como esto:

Página de inicio de phpMyAdmin

Página de inicio de phpMyAdmin

Asegurar phpMyAdmin

Desafortunadamente las versiones antiguas de phpMyAdmin tienen serios problemas de seguridad. Sin embargo, podemos prevenir la mayoría de estos problemas siguiendo los siguientes pasos:

Configurar el archivo apache.conf

Para comenzar, debes permitirle al archivo .htaccess trabajar con el directorio phpmyadmin. Para hacerlo utiliza un editor de texto con permisos de administración, en el ejemplo utilizo el editor nano, pero puedes utilizar el que desees:

Agrega la directiva AllowOverride All debajo de la directiva Directory Index. El código te quedará de la siguiente manera:

Guarda los cambios cuando termines de editar el archivo. Y ahora puedes crear el archivo .htacces en el directorio /usr/share/phpmyadmin.

Configurar el archivo .htaccess

Ahora debes configurar la autenticación básica, con el objetivo de restringir el acceso a todo aquel que no esté autorizado. Esto significa que el usuario deberá proporcionar sus credenciales antes de iniciar sesión en phpMyAdmin con las credenciales del servidor MySQL.

Empieza creando el archivo .htaccess en el directorio /usr/share/phpmyadmin:

Copia el siguente texto dentro del archivo:

¿Qué significan estos parámetros? A continuación te muestro una breve descripción de cada uno:

  • AuthType: Indica el tipo de autenticación que se utilizará para chequear la contraseña. La contraseña es chequeada vía HTTP y la clave Basic no debería cambiar.
  • AuthName: Es el texto que se mostrará en el cuadro de diálogo que pregunta por la contraseña. Puedes poner acá lo que desees.
  • AuthUserFile: En esta línea se especifica la dirección del archivo que contiene la contraseña (Te muestro cómo hacer esto más adelante).
  • Require valid-user: En esta línea se le orienta al servidor Apache que solo aquellos usuarios que estén definidos en el archivo de contraseñas pueden acceder a la página de login.

Crear el archivo htpasswd

Para crear el archivo .htpasswd debes utilizar el comando htpasswd y guardar el archivo en un directorio que no sea accesible desde la web. Es válido aclarar que puedes ponerle al archivo el nombre que desees, pero es llamado .htpasswd a modo de convención.

El archivo lo puedes crear así:

El sistema te preguntará por la contraseña del usuario y creará el archivo en la dirección seleccionada.

Finalmente reinicia el servidor Apache para que los cambios surtan efecto:

Acceder a phpMyAdmin

phpMyAdmin es mucho más seguro ahora, ya que para acceder a la pagina de inicio, el usuario autorizado debe proporcionar sus credenciales. Accede a phpMyAdmin escribiendo en su navegador:

Deberás ver una imagen similar a esta:

Vista previa del cuadro de diálogo de la autenticación básica

Vista previa del cuadro de diálogo de la autenticación básica

Completa el formulario proporcionando el nombre_usuario y la contraseña generada. Luego inicia sesión en phpMyAdmin utilizando las credenciales del servidor MySQL.

Punto final

Como podrás ver ya tienes un sistema que te permite gestionar las bases de datos de tu servidor MySQL de forma visual. Podrás utilizarlo para configurar las bases de datos de las aplicaciones web que instales en tu servidor, como WordPress por ejemplo.

2 comentarios
  1. Ivan
    Ivan Dice:

    Buen post, solamente una observación. En el punto «Crear el archivo htpasswd», se observan los tags que no deberán teclearse en la terminal al momento de crear el archivo, en otras palabras, el ejemplo sería:
    sudo htpasswd -c /etc/apache2/.phpmyadmin.htpasswd ivan

    Responder

Dejar un comentario

¿Quieres unirte a la conversación?
Siéntete libre de contribuir

Deja una respuesta

Tu dirección de correo electrónico no será publicada. Los campos obligatorios están marcados con *