GNU/Linux >> Tutoriales Linux >  >> Cent OS

Instale y asegure phpMyAdmin en CentOS 8

phpMyAdmin es una herramienta gratuita y de código abierto para administrar servidores MySQL y MariaDB a través de una interfaz basada en web. Con phpMyAdmin, puede crear y administrar bases de datos y usuarios, ejecutar declaraciones SQL, importar y exportar datos y realizar actividades de base de datos como crear, eliminar, tablas, columnas, índices, permisos y mucho más. phpMyAdmin es una de las herramientas de administración más populares y más utilizadas, especialmente para servicios de alojamiento web.

Características

  • Proporciona una interfaz web sencilla y fácil de usar.
  • Importar datos de CSV y SQL.
  • Admite la mayoría de las funciones de MySQL, incluidas la creación, copia, eliminación, cambio de nombre, eliminación y modificación de bases de datos, tablas, campos e índices.
  • Le permite exportar datos a varios formatos, como PDF, CSV, SQL, XML y muchos más.
  • Administrar múltiples servidores.
  • Creación de consultas complejas mediante consulta por ejemplo (QBE).

En este tutorial, le mostraremos cómo instalar y asegurar phpMyAdmin en un servidor CentOS 8.

Requisitos

  • Un servidor que ejecuta CentOS 8.
  • Se configura una contraseña raíz en el servidor.

Instalar servidor LAMP

Primero, deberá instalar Apache, MariaDB, PHP y otras bibliotecas de PHP en su servidor. Puede instalarlos todos con el siguiente comando:

dnf install httpd mariadb-server php php-pdo php-pecl-zip php-json php-common php-fpm php-mbstring php-cli php-mysqlnd php-json php-mbstring wget unzip

Una vez que todos los paquetes estén instalados, inicie el servicio Apache y MariaDB y habilítelos para que se inicien después de reiniciar el sistema con el siguiente comando:

systemctl start httpd
systemctl start mariadb
systemctl enable httpd
systemctl enable mariadb

Una vez que haya terminado, puede continuar con el siguiente paso.

Configurar MariaDB

De forma predeterminada, MariaDB no está protegido. Por lo tanto, deberá asegurarlo primero. Puede hacerlo ejecutando el script mysql_secure_installation:

mysql_secure_installation

Responda todas las preguntas como se muestra a continuación:

Set root password? [Y/n] Y
New password: 
Remove anonymous users? [Y/n] Y
Disallow root login remotely? [Y/n] Y
Remove test database and access to it? [Y/n] Y
Reload privilege tables now? [Y/n] Y

Una vez que haya terminado, debería ver el siguiente resultado:

 ... Success!

Cleaning up...

All done!  If you've completed all of the above steps, your MariaDB
installation should now be secure.

Thanks for using MariaDB!

En este punto, su instalación de MariaDB está asegurada.

Instalar phpMyAdmin

De forma predeterminada, phpMyAdmin no está disponible en el repositorio predeterminado de CentOS 8. Por lo tanto, deberá descargar la última versión de phpMyAdmin desde su sitio web oficial. Puedes descargarlo con el siguiente comando:

wget https://files.phpmyadmin.net/phpMyAdmin/4.9.2/phpMyAdmin-4.9.2-all-languages.zip

Una vez descargado, descomprima el archivo descargado con el siguiente comando:

unzip phpMyAdmin-4.9.2-all-languages.zip

A continuación, mueva el contenido extraído al directorio /usr/share como se muestra a continuación:

mv phpMyAdmin-4.9.2-all-languages /usr/share/phpmyadmin

A continuación, cambie el directorio a /usr/share/phpmyadmin y cambie el nombre del archivo config.sample.inc.php:

cd /usr/share/phpmyadmin
mv config.sample.inc.php config.inc.php

A continuación, abra el archivo con su editor de texto favorito como se muestra a continuación:

nano config.inc.php

Cambie la siguiente línea:

$cfg['blowfish_secret'] = 'your-secret-password';

Guarde y cierre el archivo cuando haya terminado. Luego, importa create_tables.sql con el siguiente comando:

mysql < /usr/share/phpmyadmin/sql/create_tables.sql -u root -p

Proporcione su contraseña raíz cuando se le solicite importar la tabla.

A continuación, cree un directorio tmp para phpmyadmin y otorgue los permisos adecuados:

mkdir /usr/share/phpmyadmin/tmp
chown -R apache:apache /usr/share/phpmyadmin
chmod 777 /usr/share/phpmyadmin/tmp

Configurar Apache para phpMyAdmin

A continuación, deberá crear un archivo de configuración de host virtual de Apache para phpMyAdmin. Puedes crearlo con el siguiente comando:

nano /etc/httpd/conf.d/phpmyadmin.conf

Agregue las siguientes líneas:

Alias /phpmyadmin /usr/share/phpmyadmin

<Directory /usr/share/phpmyadmin/>
   AddDefaultCharset UTF-8

   <IfModule mod_authz_core.c>
     # Apache 2.4
     <RequireAny> 
      Require all granted
     </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 all granted
     </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>

Guarde y cierre el archivo cuando haya terminado. Luego, reinicie el servicio de Apache con el siguiente comando:

systemctl restart httpd

Puede comprobar el estado de Apache con el siguiente comando:

systemctl status httpd

Debería ver el siguiente resultado:

? httpd.service - The Apache HTTP Server
   Loaded: loaded (/usr/lib/systemd/system/httpd.service; enabled; vendor preset: disabled)
  Drop-In: /usr/lib/systemd/system/httpd.service.d
           ??php-fpm.conf
   Active: active (running) since Wed 2019-12-18 01:07:52 EST; 6s ago
     Docs: man:httpd.service(8)
 Main PID: 5636 (httpd)
   Status: "Started, listening on: port 80"
    Tasks: 213 (limit: 25044)
   Memory: 28.7M
   CGroup: /system.slice/httpd.service
           ??5636 /usr/sbin/httpd -DFOREGROUND
           ??5639 /usr/sbin/httpd -DFOREGROUND
           ??5640 /usr/sbin/httpd -DFOREGROUND
           ??5641 /usr/sbin/httpd -DFOREGROUND
           ??5642 /usr/sbin/httpd -DFOREGROUND

Dec 18 01:07:52 centos8 systemd[1]: Stopped The Apache HTTP Server.
Dec 18 01:07:52 centos8 systemd[1]: Starting The Apache HTTP Server...
Dec 18 01:07:52 centos8 httpd[5636]: AH00558: httpd: Could not reliably determine the server's fully qualified domain name, using fe80::200:d0>
Dec 18 01:07:52 centos8 httpd[5636]: Server configured, listening on: port 80
Dec 18 01:07:52 centos8 systemd[1]: Started The Apache HTTP Server.

Configurar SELinux y Firewall

De manera predeterminada, SELinux está habilitado en CentOS 8. Por lo tanto, deberá configurar SELinux para que phpMyAdmin funcione correctamente.

Primero, instale el paquete policycoreutils-python-utils para administrar un entorno SELinux con el siguiente comando:

dnf install policycoreutils-python-utils

A continuación, habilite el acceso al directorio /usr/share/phpmyadmin con el siguiente comando:

semanage fcontext -a -t httpd_sys_rw_content_t '/usr/share/phpmyadmin/'
semanage fcontext -a -t httpd_sys_rw_content_t "/usr/share/phpmyadmin/tmp(/.*)?"

Ahora recurra a todos los archivos en su directorio phpmyadmin ejecutando el siguiente comando:

restorecon -Rv '/usr/share/phpmyadmin/'

A continuación, deberá crear una regla de firewall para permitir el servicio HTTP desde redes externas. Puedes permitirlo con el siguiente comando:

firewall-cmd --permanent --add-service=http
firewall-cmd --reload

phpMyAdmin ahora está instalado y configurado. Ahora es el momento de comprobar si funciona o no.

Abra su navegador web y escriba la URL http://your-server-ip/phpmyadmin. Será redirigido a la siguiente página:

phpMyAdmin seguro

En este punto, la instancia de phpMyAdmin funciona correctamente. Sin embargo, proteger su instancia de phpMyAdmin del mundo exterior es una tarea importante para usted. En esta sección, le mostraremos cómo proteger su instancia de phpMyAdmin.

Permitir phpMyAdmin desde una IP específica

Primero, deberá configurar su phpMyAdmin para que solo sea accesible desde la dirección IP de la conexión de su hogar.

Puede configurarlo editando el archivo /etc/httpd/conf.d/phpmyadmin.conf:

nano /etc/httpd/conf.d/phpmyadmin.conf

Encuentra las siguientes líneas:

     <RequireAny>
       Require all granted
     </RequireAny>

Y reemplácelos con los siguientes:

<RequireAny>
    Require ip your-home--connection-ip-address
    Require ip ::1
</RequireAny>

Guarde y cierre el archivo cuando haya terminado.

Configurar capa adicional de autenticación

Es una buena idea proteger con contraseña su directorio phpmyadmin configurando una autenticación básica.

Para hacerlo, cree un nuevo archivo de autenticación usando la herramienta htpasswd como se muestra a continuación:

mkdir /etc/phpmyadmin
htpasswd -c /etc/phpmyadmin/.htpasswd admin

Se le pedirá que proporcione su contraseña de administrador como se muestra a continuación:

New password: 
Re-type new password: 
Adding password for user admin

A continuación, deberá configurar Apache para usar el archivo .htpasswd. Puede hacerlo editando el archivo /etc/httpd/conf.d/phpmyadmin.conf.

nano /etc/httpd/conf.d/phpmyadmin.conf

Agregue las siguientes líneas debajo de la línea "AddDefaultCharset UTF-8":

    Options  +FollowSymLinks +Multiviews +Indexes
    AllowOverride None
    AuthType basic
    AuthName "Authentication Required"
    AuthUserFile /etc/phpmyadmin/.htpasswd
    Require valid-user

Guarde el archivo y reinicie el servicio de Apache para que los cambios surtan efecto:

systemctl restart httpd

Acceso a phpMyAdmin

Ahora, su instancia de phpMyAdmin está protegida con una capa adicional de seguridad. Abra su navegador web y escriba la URL http://your-server-ip/phpmyadmin. Se le pedirá que ingrese las credenciales de inicio de sesión del usuario que creó anteriormente como se muestra a continuación:

Proporcione su nombre de usuario y contraseña de administrador, luego haga clic en el botón Aceptar. Será redirigido a la página de inicio de sesión de phpMyAdmin:

Ahora, proporcione sus credenciales de inicio de sesión de usuario administrativo de MySQL y haga clic en el botón Ir. Debería ver la siguiente página:

Conclusión

¡Felicidades! Ha instalado y asegurado con éxito phpMyAdmin en el servidor CentOS 8. Ahora puede crear bases de datos, usuarios, tablas y administrarlos desde la interfaz basada en web. Siéntase libre de preguntarme si tiene alguna pregunta.


Cent OS
  1. Instale MariaDB 10.0 en CentOS 6

  2. Cómo instalar y asegurar MariaDB en Debian 11

  3. Instalar MariaDB en CentOS 6.4

  4. Instale Magento en CentOS 7, con Nginx, PHP-FPM y MariaDB

  5. Cómo instalar y asegurar MongoDB 4 en CentOS 8

2 formas de instalar MariaDB en CentOS 7

Instalación y configuración de PhpMyAdmin con Nginx en CentOS 7

Cómo instalar y configurar Cacti en CentOS 7

Cómo instalar phpMyAdmin en CentOS 8

Cómo instalar y asegurar phpMyAdmin en CentOS 8

Cómo instalar y configurar MariaDB en CentOS/RHEL 7