PhpMyAdmin es una herramienta de interfaz gráfica de usuario (GUI) gratuita y de código abierto para gestionar bases de datos MySQL en planes de hosting compartido y servidores privados virtuales (VPS). Aunque no es técnicamente necesario, phpMyAdmin es más fácil de usar que la interfaz de línea de comandos para gestionar bases de datos.
Si alojas tu sitio web en un VPS, deberás instalar phpMyAdmin en el servidor manualmente. Este artículo te guiará a través de la instalación de phpMyAdmin en servidores Ubuntu 18.04 y 20.04.
Requisitos Previos para phpMyAdmin
Antes de comenzar, deberás instalar el stack LAMP (Linux, Apache, MySQL, PHP) en tu servidor. Además, la base de datos MySQL debe estar en funcionamiento.
También necesitarás utilizar un cliente SSH para conectarte al servidor. Tenemos un tutorial sobre cómo conectar PuTTY al servidor si tienes problemas con ello.
Cómo Instalar phpMyAdmin en Ubuntu
La instalación de phpMyAdmin en Ubuntu implica cinco pasos. Además de la instalación, deberás conceder permisos, crear un usuario separado y asegurar phpMyAdmin.
1. Instalar el paquete de phpMyAdmin:
Ubuntu 18.04:
Ejecuta el siguiente comando para instalar el paquete phpMyAdmin y las extensiones PHP necesarias:
```bash
sudo apt-get install -y phpmyadmin php-mbstring php-gettext
```
Durante el proceso de instalación, tendrás que seleccionar un servidor web para configurar phpMyAdmin. Selecciona Apache presionando la barra espaciadora. Un asterisco aparecerá junto a apache2, indicando que lo has seleccionado. Presiona Enter para continuar.
Ahora, configura la base de datos. Selecciona Sí.
Luego, establece una contraseña de aplicación MySQL para phpMyAdmin. Asegúrate de usar una contraseña fuerte y única. Verifícala cuando se te solicite, y la instalación se completará.
Ubuntu 20.04:
Los pasos son bastante similares, pero deberás ejecutar este comando en su lugar:
```bash
sudo apt install phpmyadmin php-mbstring php-zip php-gd php-json php-curl
```
Al igual que en Ubuntu 18.04, selecciona Apache2 y configura la base de datos estableciendo una contraseña fuerte para phpMyAdmin.
Finalmente, habilita la extensión PHP Mbstring con este comando:
```bash
sudo phpenmod mbstring
```
Reinicia el servicio Apache con este comando:
```bash
sudo systemctl restart apache2
```
2. Configurar el Usuario y Conceder Permisos:
La cuenta predeterminada de phpMyAdmin tiene opciones mínimas disponibles. Deberás conceder algunos permisos a phpMyAdmin para que sea una solución práctica para crear y gestionar bases de datos MySQL.
Para gestionar usuarios de MySQL, inicia sesión en la línea de comandos de MySQL como usuario root con este comando:
```bash
sudo mysql -u root -p
```
Deberás ingresar la contraseña de root de MySQL antes de acceder a la línea de comandos. Una vez que hayas accedido a la cuenta root de MySQL, otorga permisos a phpMyAdmin ejecutando estos comandos uno por uno:
```bash
GRANT ALL PRIVILEGES ON . TO 'phpmyadmin'@'localhost';
FLUSH PRIVILEGES;
EXIT
```
3. Acceder a phpMyAdmin desde un Navegador:
Cuando el proceso de instalación esté completo, abre el navegador y ve a http://tu-direccion-ip-del-servidor/phpmyadmin. Reemplaza tu-direccion-ip-del-servidor con la dirección IP del servidor. Si usas un VPS de Holy, encontrarás la dirección IP en el panel de gestión del servidor.
La página de inicio de sesión de phpMyAdmin se verá así:
![Página de inicio de sesión de phpMyAdmin](imagen_del_enlace)
Debido a problemas de seguridad, Ubuntu 18.04 y Ubuntu 20.04 no admiten el inicio de sesión como root. En su lugar, inicia sesión con el nombre de usuario phpmyadmin y la contraseña de MySQL que estableciste durante el Paso 1. Después de eso, accederás a la interfaz web de phpMyAdmin.
4. Crear un Usuario phpMyAdmin Separado (Opcional):
Si no deseas utilizar o trabajar con la cuenta de usuario predeterminada de phpMyAdmin por razones de seguridad, crea un nuevo usuario de MySQL dedicado con privilegios completos.
Deberás acceder a la interfaz de línea de comandos de MySQL como usuario root para crear un usuario dedicado. Usa este comando para hacerlo:
```bash
sudo mysql -u root -p
```
Ingresa la contraseña de root de MySQL cuando se te solicite. Luego, ingresa los siguientes comandos para crear un nuevo usuario:
```bash
CREATE USER nombre_de_usuario IDENTIFIED by 'contraseña';
GRANT ALL PRIVILEGES ON . TO 'nombre_de_usuario'@'localhost';
FLUSH PRIVILEGES;
EXIT
```
Reemplaza nombre_de_usuario y contraseña con las credenciales de MySQL deseadas. Recuerda usar una contraseña fuerte para asegurar la cuenta.
Reinicia el servidor Apache si encuentras problemas al iniciar sesión. Este es el comando para hacerlo:
```bash
sudo systemctl restart apache2
```
Recomendamos revisar la pestaña de Estado en el panel de control de phpMyAdmin. Muestra el número de conexiones al servidor de base de datos MySQL, las consultas actuales en ejecución y cuánto tiempo lleva operando el servidor.
5. Asegurar phpMyAdmin (Opcional):
phpMyAdmin es susceptible a ciberataques, así que debes implementar medidas como un método adicional de autenticación para mejorar su seguridad. Habilita un inicio de sesión adicional frente a la aplicación utilizando las características de autenticación y autorización integradas de Apache.
Para hacerlo, habilita la anulación del archivo .htaccess modificando el archivo de configuración de phpMyAdmin de Apache. Aquí está el comando para abrir y editar el archivo usando el editor de texto Nano:
```bash
sudo nano /etc/apache2/conf-available/phpmyadmin.conf
```
Ahora, agrega una línea AllowOverride All en la sección <Directory /usr/share/phpmyadmin>.
Debería lucir así:
```apache
<Directory /usr/share/phpmyadmin
>
Options SymLinksIfOwnerMatch
DirectoryIndex index.php
AllowOverride All
</Directory>
```
Guarda y sale del archivo presionando CTRL+X. Luego, presiona Y y Enter cuando se te solicite. Reinicia el servidor web Apache para implementar los cambios con este comando:
```bash
sudo systemctl restart apache2
```
El siguiente paso es crear un archivo .htaccess en el directorio de la aplicación phpMyAdmin con el siguiente comando:
```bash
sudo nano /usr/share/phpmyadmin/.htaccess
```
El editor de texto Nano se abrirá, permitiéndote editar el archivo .htaccess. Ingresa el siguiente texto:
```apache
AuthType Basic
AuthName "Restricted Files"
AuthUserFile /etc/phpmyadmin/.htpasswd
Require valid-user
```
Guarda y sale del archivo. Dado que .htaccess especifica que el archivo para la contraseña es /etc/phpmyadmin/.htpasswd, deberemos usar la misma ruta.
Usa este comando para crear el archivo de contraseña y pasarlo utilizando la utilidad htpasswd:
```bash
sudo htpasswd -c /etc/phpmyadmin/.htpasswd NOMBRE_DE_USUARIO
```
Reemplaza NOMBRE_DE_USUARIO con el nombre de usuario real. También deberás ingresar y confirmar una contraseña. Una vez hecho esto, el archivo se creará y la contraseña se cifrará.
Puedes crear un nombre de usuario adicional utilizando el mismo comando, pero excluyendo la opción -c:
```bash
sudo htpasswd /etc/phpmyadmin/.htpasswd NOMBRE_DE_USUARIO_ADICIONAL
```
Reinicia Apache para implementar los cambios:
```bash
sudo systemctl restart apache2
```
Al acceder a phpMyAdmin, aparecerá un nuevo cuadro de diálogo de autenticación de nombre de usuario y contraseña. Verifícalo visitando http://tu-direccion-ip-del-servidor/phpmyadmin. El cuadro de inicio de sesión debería lucir así:
![Autenticación adicional para phpMyAdmin](imagen_del_enlace)
Ingresa el nombre de usuario y la contraseña que acabas de crear. Después de iniciar sesión, encontrarás la página de inicio de sesión de phpMyAdmin. Ingresa las credenciales del usuario phpmyadmin para acceder a la interfaz web de phpMyAdmin.
Conclusión
phpMyAdmin te ayuda a gestionar bases de datos MySQL y realizar mantenimiento de tablas. El proceso de instalación de la aplicación en Ubuntu 18.04 y Ubuntu 20.04 es similar, pero utiliza algunos comandos diferentes durante los primeros pasos.
No olvides implementar medidas de seguridad en phpMyAdmin utilizando contraseñas fuertes y un método adicional de autenticación.
Ahora deberías poder gestionar bases de datos con facilidad desde phpMyAdmin. Deja un comentario si tienes alguna pregunta.