phpMyAdmin es una herramienta de administración gratuita y de código abierto para MySQL y MariaDB. Como aplicación web portátil escrita principalmente en PHP, se ha convertido en una de las herramientas de administración de MySQL más populares, especialmente para los servicios de alojamiento web. En esta guía, instalaremos phpMyAdmin con Apache en CentOS 7.
Un requisito previo importante antes de usar esta guía es instalar una pila LAMP (Linux, Apache, MariaDB y PHP) en su servidor CentOS 7. La pila LAMP es la plataforma que se utilizará para servir a nuestra interfaz phpMyAdmin (MariaDB es también el software de gestión de bases de datos que deseamos gestionar). Si aún no tiene una instalación LAMP en su servidor, haga clic aquí para leer nuestro tutorial sobre cómo instalar LAMP en CentOS 7.
Paso 1:Agregar repositorio EPEL:
Necesitamos agregar el repositorio EPEL (paquetes adicionales para Enterprise Linux) a nuestro servidor antes de continuar con la instalación, ya que contiene muchos paquetes adicionales, incluido el paquete phpMyAdmin que estamos buscando. Para instalar, escriba el siguiente comando:
sudo yum install epel-release
Paso 2:Instalar phpMyAdmin:
Escriba el siguiente comando para instalar el paquete phpMyAdmin utilizando el sistema de empaquetado yum seguido de y para continuar:
sudo yum install phpmyadmin
Después de una instalación exitosa, debería obtener un resultado similar al que se muestra a continuación:
La instalación incluye un archivo de configuración de Apache que se ha colocado en su directorio apropiado. Necesitamos modificar este archivo de configuración para que nuestra instalación funcione perfectamente para nuestras necesidades.
Abra el phpMyAdmin.conf
en el /etc/httpd
archivo en el editor de texto (nano en esta guía) para hacer algunas modificaciones:
sudo nano /etc/httpd/conf.d/phpMyAdmin.conf
Actualmente, la instalación en el archivo de configuración está configurada para denegar el acceso a cualquier conexión que no se realice desde el propio servidor. Dado que estamos evaluando nuestro servidor de forma remota (a través de ssh), necesitamos modificar algunas líneas para especificar la dirección IP de su conexión doméstica.
La primera ubicación es <Directory /usr/share/phpMyAdmin/>
sección como se muestra a continuación:
Cambie cualquier línea que diga Require ip 127.0.0.1
o Allow from 127.0.0.1
para referirse a la dirección IP de su conexión doméstica.
La segunda ubicación es <Directory /usr/share/phpMyAdmin/setup/>
sección como se muestra a continuación:
Además, cambie cualquier línea que diga Require ip 127.0.0.1
o Allow from 127.0.0.1
para referirse a la dirección IP de su conexión doméstica.
Después de realizar las configuraciones, reinicie el servidor web Apache escribiendo:
sudo systemctl restart httpd.service
Para acceder a la interfaz, visite su dirección IP pública o el nombre de dominio del servidor seguido de /phpMyAdmin, en su navegador web:
http://server_domain_or_IP/phpMyAdmin
Inicie sesión en la interfaz de phpmyadmin con el nombre de usuario raíz y la contraseña administrativa que configuró durante la instalación de MySQL. Después de iniciar sesión, la interfaz de usuario se parece a la siguiente captura de pantalla:
ASEGURAR SU INSTANCIA PHPMYADMIN
Es importante asegurar su phpmyadmin para evitar el acceso no autorizado. Una manera fácil de hacer esto es cambiar la ubicación de la interfaz de /phpMyAdmin a otra cosa para evitar intentos automatizados de fuerza bruta de bots.
Abra el archivo de configuración usando el siguiente comando:
sudo nano /etc/httpd/conf.d/phpMyAdmin.conf
Las dos líneas a continuación son los alias predeterminados que nos brindan contenido de /usr/share/phpMyAdmin
ubicación si accedemos al nombre de dominio o dirección IP de nuestro sitio, seguido de /phpMyAdmin
o /phpmyadmin
.
Alias /phpMyAdmin /usr/share/phpMyAdmin
Alias /phpmyadmin /usr/share/phpMyAdmin
Vamos a deshabilitar estos alias predeterminados debido a la alta tasa a la que son atacados por bots y usuarios malintencionados. Por motivos de seguridad, debemos decidir sobre nuestro propio alias teniendo en cuenta estas dos reglas:
- No debe indicar el propósito de la ubicación de la URL.
- Debe ser fácil de recordar pero no fácil de adivinar.
En esta guía, vamos a usar /somethingelse
.
Para aplicar nuestros cambios, vamos a comentar las líneas existentes (puede eliminarlas por completo) y agregar las nuestras:
#Alias /phpMyAdmin /usr/share/phpMyAdmin
#Alias /phpmyadmin /usr/share/phpMyAdmin
Alias /somethingelse /usr/share/phpMyAdmin
Guarde y cierre el archivo y luego reinicie httpd con el siguiente comando:
sudo systemctl restart httpd.service
Si visita la ubicación anterior de su instalación de phpMyAdmin, obtendrá un error 404:
http://server_domain_or_IP/phpMyAdmin
http://server_domain_or_IP/nothingtosee
También puede proteger phpMyAdmin colocando una puerta de enlace frente a toda la aplicación utilizando el .htaccess
integrado de Apache. funcionalidades de autenticación y autorización.
En primer lugar, necesitaremos habilitar el uso de anulaciones de archivos .htaccess editando nuestro archivo de configuración de Apache. Abra phpmyadmin.conf con el siguiente comando:
sudo nano /etc/httpd/conf.d/phpMyAdmin.conf
Agregar AllowOverride All
al final del <Directory /usr/share/phpmyadmin>
sección del archivo de configuración como se muestra a continuación:
Guarde el archivo antes de cerrar y luego reinicie Apache con el comando:
sudo systemctl restart apache2
Después de habilitar el uso de .htaccess, debemos crear el archivo para implementar completamente la seguridad escribiendo el siguiente comando:
sudo nano /usr/share/phpmyadmin/.htaccess
AuthType Basic
AuthName "Restricted Files"
AuthUserFile /etc/phpmyadmin/.htpasswd
Require valid-user
Puedes leer más en htaccess
aquí.
Escriba el siguiente comando para agregar la contraseña a htaccess
archivo:
sudo htpasswd -c /etc/httpd/pma_pass username
Para agregar usuarios adicionales para autenticarse, escriba el mismo comando nuevamente, pero esta vez sin -c
bandera, y con un nuevo nombre de usuario:
sudo htpasswd /etc/httpd/pma_pass seconduser
Con esto, cada vez que acceda a phpMyAdmin en su dominio, se le solicitará el nombre de cuenta y la contraseña adicionales que acaba de configurar como se muestra a continuación:
Con esto, cada vez que acceda a phpMyAdmin en su dominio, se le solicitará el nombre de cuenta adicional y la contraseña que acaba de configurar como se muestra a continuación:
Después de escribir la contraseña de autenticación de Apache, será redirigido a la página de autenticación original de phpMyAdmin para ingresar sus otras credenciales.