PhpMyAdmin es una aplicación web php que nos permite administrar una base de datos MariaDB/MySQL desde una interfaz gráfica intuitiva. La aplicación no se proporciona en los repositorios oficiales de RHEL 8 / CentOS 8 y, por lo general, se instala desde fuentes de terceros como EPEL. Sin embargo, Epel-8 aún no está disponible, por lo que en este tutorial veremos cómo obtener el código phpMyAdmin upstream e instalarlo en nuestro sistema "manualmente".
Requisitos de software y convenciones de la línea de comandos de Linux Categoría | Requisitos, convenciones o versión de software utilizada |
Sistema | RHEL 8 / CentOS 8 |
Software | Una pila de lámparas en funcionamiento. |
Otro | Permiso para ejecutar el comando con privilegios de root. |
Convenciones | # – requiere que los comandos de Linux dados se ejecuten con privilegios de root, ya sea directamente como usuario root o mediante el uso de sudo comando $ – requiere que los comandos de Linux dados se ejecuten como un usuario normal sin privilegios |
Presentamos phpmyadmin
PhpMyAdmin es un software gratuito y de código abierto desarrollado en PHP bajo la GPL2
licencia. Su propósito es permitir administrar uno o más servidores MariaDB/MySQL desde una interfaz web agradable e intuitiva. El software nos permite realizar las operaciones de base de datos más comunes y también nos permite ejecutar instrucciones SQL directamente. En este tutorial asumiré la existencia de un LAMP
ya configurado y en funcionamiento . Si desea obtener más información sobre cómo configurar dicho entorno, puede consultar este nuestro artículo sobre cómo configurar la pila LAMP en el sistema RHEL 8 / CentOS 8 Linux.
Instalación
Muchas distribuciones de Linux tienen phpMyAdmin empaquetado en sus repositorios; Red Hat Enterprise Linux, sin embargo, no lo hace. La aplicación generalmente se instala desde fuentes de terceros, como epel
. Ya que al momento de escribir el epel-8
el repositorio aún no está disponible, veremos cómo instalar phpMyadmin manualmente.
Descargando el archivo
El primer paso es descargar el archivo que contiene los archivos de phpMyAdmin desde la página de descargas de phpMyAdmin. Aquí podemos elegir entre la versión de phpmyadmin empaquetada con todos los idiomas disponibles y la que incluye solo inglés. También tenemos la posibilidad de seleccionar nuestro formato de archivo favorito. Queremos descargar también el .asc
y el archivo que contiene la suma hash del archivo, para verificar la autenticidad e integridad del paquete. En este tutorial usaremos la versión solo en inglés, provista en el tar.xz
formato.
La página de descarga oficial de phpMyAdmin
Cuando trabajamos desde la interfaz de línea de comandos, podemos descargar los archivos usando curl
:
$ curl --remote-name-all \
https://files.phpmyadmin.net/phpMyAdmin/4.8.5/phpMyAdmin-4.8.5-english.tar.xz \
https://files.phpmyadmin.net/phpMyAdmin/4.8.5/phpMyAdmin-4.8.5-english.tar.xz.asc \
https://files.phpmyadmin.net/phpMyAdmin/4.8.5/phpMyAdmin-4.8.5-english.tar.xz.sha256
Verificación de archivo
Ahora tenemos todo lo que necesitamos para verificar nuestro archivo. Lo primero que queremos hacer es verificar su firma. Debe coincidir con 3D06 A59E CE73 0EB7 1B51 1C17 CE75 2F17 8259 BD92
, que es el PGP
huella dactilar de Isaac Bennetch, el administrador de versiones de phpMyAdmin en este momento. Para verificar la firma, primero debemos importar su clave pública. Podemos descargar la clave, junto con las de otros desarrolladores de phpMyAdmin, desde el servidor de phpMyAdmin:
curl -O https://files.phpmyadmin.net/phpmyadmin.keyring
Para importar la clave ejecutamos:
$ gpg --import phpmyadmin.keyring
gpg: key 9C27B31342B7511D: public key "Michal Čihař <[email protected]>" imported
gpg: key FEFC65D181AF644A: public key "Marc Delisle <[email protected]>" imported
gpg: key CE752F178259BD92: public key "Isaac Bennetch <[email protected]>" imported
gpg: key DA68AB39218AB947: public key "phpMyAdmin Security Team <[email protected]>" imported
gpg: Total number processed: 4
gpg: imported: 4
</[email protected]></[email protected]></[email protected]></[email protected]>
Finalmente, para verificar la firma del paquete ejecutamos:
$ gpg --verify phpMyAdmin-4.8.5-english.tar.xz.asc
gpg: assuming signed data in 'phpMyAdmin-4.8.5-english.tar.xz'
gpg: Signature made Fri 25 Jan 2019 10:07:15 PM EST
gpg: using RSA key 3D06A59ECE730EB71B511C17CE752F178259BD92
gpg: Good signature from "Isaac Bennetch <[email protected]>" [unknown]
gpg: aka "Isaac Bennetch <[email protected]>" [unknown]
gpg:
gpg: There is no indication that the signature belongs to the owner.
Primary key fingerprint: 3D06 A59E CE73 0EB7 1B51 1C17 CE75 2F17 8259 BD92
</[email protected]></[email protected]>
Como puede ver, la firma se informa como buena, sin embargo, gpg todavía se queja porque no hay forma de verificar que la firma pertenece al propietario. En casos como este podemos confiar en la web de confianza, dicho brevemente, en que la clave ha sido firmada por otros usuarios de gpg en los que confiamos. Como se informa en la documentación de phpMyAdmin, por ejemplo, podemos ver la ruta desde la clave de Linus Torvalds hasta la clave de Isaac Bennetch en esta página. Una vez que verificamos que la firma es buena, también podemos verificar que la suma hash del archivo sea la misma que la reportada en el archivo que descargamos:
$ sha256sum -c phpMyAdmin-4.8.5-english.tar.xz.sha256
phpMyAdmin-4.8.5-english.tar.xz: OK
Extracción de archivos
El siguiente paso es extraer el contenido del archivo. Dónde extraerlo es nuestra elección:la forma más rápida de tener phpMyAdmin en funcionamiento es extraer el contenido del archivo en la raíz del documento de nuestro servidor web, que en este caso es /var/www/html
.
Alternativamente, podemos querer colocar los archivos en otro directorio en nuestro sistema de archivos local, como, por ejemplo, /usr/share
, que es el que se usa cuando se instala phpMyAdmin a través de un paquete (por este motivo, tenga cuidado si usa este directorio, ya que si decide instalar el rpm de phpMyAdmin cuando esté disponible, esto podría estropearlo). En este caso, también deberíamos agregar un nuevo archivo de configuración de virtualhost en /etc/httpd/conf.d. Este es el contenido del que normalmente se proporciona:
Alias /phpMyAdmin /usr/share/phpMyAdmin
Alias /phpmyadmin /usr/share/phpMyAdmin
<Directory /usr/share/phpMyAdmin/>
AddDefaultCharset UTF-8
<IfModule mod_authz_core.c>
# Apache 2.4
<RequireAny>
Require ip 127.0.0.1
Require ip ::1
</RequireAny>
</IfModule>
<IfModule !mod_authz_core.c>
# Apache 2.2
Order Deny,Allow
Deny from All
Allow from 127.0.0.1
Allow from ::1
</IfModule>
</Directory>
<Directory /usr/share/phpMyAdmin/setup/>
<IfModule mod_authz_core.c>
# Apache 2.4
<RequireAny>
Require ip 127.0.0.1
Require ip ::1
</RequireAny>
</IfModule>
<IfModule !mod_authz_core.c>
# Apache 2.2
Order Deny,Allow
Deny from All
Allow from 127.0.0.1
Allow from ::1
</IfModule>
</Directory>
# These directories do not require access over HTTP - taken from the original
# phpMyAdmin upstream tarball
#
<Directory /usr/share/phpMyAdmin/libraries/>
Order Deny,Allow
Deny from All
Allow from None
</Directory>
<Directory /usr/share/phpMyAdmin/setup/lib/>
Order Deny,Allow
Deny from All
Allow from None
</Directory>
<Directory /usr/share/phpMyAdmin/setup/frames/>
Order Deny,Allow
Deny from All
Allow from None
</Directory>
Podemos adaptar la configuración anterior a nuestras necesidades, y debemos cambiar las rutas a las que planeamos usar en nuestro sistema. Una cosa muy importante a tener en cuenta es el Alias
directiva:esto es lo que hace posible almacenar documentos en el sistema de archivos local que no sea DocumentRoot. En este caso, por ejemplo, accediendo a http://<ServerName-or-ip>/phpMyAdmin
, en realidad accederá a los archivos ubicados en /usr/share/phpMyAdmin
. Las otras directivas solo aplican medidas de seguridad. Por ejemplo, Require ip 127.0.0.1
o Require ip ::1
se utilizan para permitir el acceso solo desde localhost.
En este tutorial, en aras de la simplicidad, instalaremos phpMyAdmin en la raíz del documento del servidor web. Primero descomprimimos el contenido del archivo:
$ sudo tar -C /var/www/html -xvpJf phpMyAdmin-4.8.5-english.tar.xz
Luego cambiamos el nombre del directorio de destino de phpMyAdmin-4.8.5-english a simplemente “phpmyadmin”:
$ sudo mv /var/www/html/phpMyAdmin-4.8.5-english /var/www/html/phpmyadmin
En este punto, ya debería ser posible llegar a phpMyAdmin navegando a "http://localhost/phpmyadmin" desde la misma máquina en la que instalamos phpMyAdmin, o usando su identificación completa o un nombre de servidor de host virtual (por ejemplo:http:/ /192.168.122.50/phpmyadmin), si se accede desde otra máquina y la configuración lo permite:
La página de inicio de sesión de phpMyAdmin Configuración PhpMyAdmin
Antes de comenzar a usar phpMyAdmin, debemos configurarlo. En versiones recientes del software es posible ejecutar un asistente que nos guiará en el procedimiento y generará un archivo de configuración. En caso de que tengamos una configuración ya existente, simplemente podemos copiar nuestro config.inc.php
archivo en la raíz de phpmyadmin. PhpMyAdmin también proporciona un ejemplo de configuración que podemos leer para tener una idea de las opciones disponibles en config.sample.inc.php
expediente. Si configura el archivo manualmente, recuerde configurar el cfg['blowfish_secret']
. Debe proporcionar una frase de contraseña generada aleatoriamente que debe tener al menos 32 caracteres:el algoritmo AES la usará internamente para cifrar la contraseña de inicio de sesión guardada en las cookies al usar el tipo de autenticación "cookie".
Para un conocimiento más profundo de las opciones disponibles y su significado, también podemos leer la documentación de phpMyAdmin (convenientemente, en la interfaz del asistente de configuración, cada opción tiene un enlace a su sección dedicada en los documentos, a la que se puede acceder haciendo clic en el botón azul de "información" relacionado.
Para iniciar el asistente de configuración, navegamos a http://localhost/phpmyadmin/setup
:
El asistente de configuración de phpMyAdmin
Para configurar el servidor principal basta con hacer clic en el botón “nuevo servidor”; para agregar otros servidores simplemente repita el procedimiento (tendrá la oportunidad de seleccionar el servidor al iniciar sesión). Para modificar otras configuraciones globales, simplemente use las opciones en la barra izquierda. Continúe y configure phpMyAdmin como desee. Una vez que termine, haga clic en el botón "descargar" en la página principal y descargue el archivo generado:debe copiarse manualmente en la raíz del directorio phpMyAdmin.
Ahora que phpMyAdmin está instalado y configurado, todo lo que tenemos que hacer para usarlo es ir a la página principal e iniciar sesión con las credenciales correctas.
Conclusiones
PhpMyAdmin no se proporciona en los repositorios predeterminados de Red Hat Enterprise Linux 8, y dado que epel aún no está listo al momento de escribir, vimos cómo podemos instalar la aplicación web "desde la fuente", en unos pocos y sencillos pasos. Tenga en cuenta que, si no se configura correctamente, phpMyAdmin representa una debilidad de seguridad. Siempre use ssl y asegúrese de saber lo que está haciendo si lo instala en una máquina de producción.