Búsqueda de sitios web

Cómo instalar PhpMyAdmin con Apache en sistemas RHEL


En este artículo, lo guiaremos paso a paso para instalar la última versión de PhpMyAdmin con el servidor web Apache en distribuciones basadas en RHEL, como CentOS Stream . , Fedora, Rocky Linux y Alma Linux.

¿Qué es PhpMyAdmin?

PhpMyAdmin es una popular y poderosa herramienta de administración de bases de datos basada en web, y tener la última versión garantiza que tendrá acceso a las funciones y mejoras de seguridad más actualizadas. Al final de esta guía, podrá administrar sus bases de datos MySQL o MariaDB con facilidad utilizando PhpMyAdmin.

Requisitos previos

Antes de comenzar, asegúrese de tener lo siguiente:

  • Acceso a un sistema RHEL, CentOS Stream, Fedora, Rocky Linux o AlmaLinux.
  • Asegúrese de poder iniciar sesión como usuario root o tener privilegios sudo para instalar el software.
  • Una pila LAMP existente, que incluye Apache, MySQL/MariaDB y PHP. Si no tienes LAMP, puedes seguir estos pasos para configurarlo.

Paso 1: actualice el sistema

Antes de instalar cualquier software, es fundamental asegurarse de que su sistema esté actualizado ejecutando el siguiente comando dnf.

sudo dnf update

Esto actualizará todos los paquetes de su sistema a las últimas versiones.

Paso 2: Instale el servidor web Apache

PhpMyAdmin es una herramienta basada en web y, para utilizarla, debe instalar el servidor web Apache mediante el siguiente comando.

sudo dnf install httpd

Una vez instalado, inicie el servicio Apache y habilítelo para que se inicie en el arranque.

sudo systemctl start httpd
sudo systemctl enable httpd

Paso 3: instale MariaDB o MySQL

También necesitará un servidor de base de datos. Puede elegir instalar MariaDB o MySQL, pero en este ejemplo usaremos MariaDB.

sudo dnf install mariadb-server

Una vez instalado, inicie el servicio MariaDB y habilítelo para que se inicie en el arranque.

sudo systemctl start mariadb
sudo systemctl enable mariadb

A continuación, asegure su instalación de MariaDB ejecutando el script, que le pedirá que ingrese una contraseña para el usuario root, no permitirá los inicios de sesión remotos como root y eliminará a los usuarios anónimos. También eliminará la base de datos de prueba, a la que, de forma predeterminada, pueden acceder usuarios anónimos.

sudo mysql_secure_installation

Paso 4: instalar PHP

PhpMyAdmin está construido con PHP, por lo que necesitamos instalar PHP y algunas extensiones requeridas usando el siguiente comando.

sudo dnf install php php-mysqlnd php-json php-mbstring

Paso 5: Instale PhpMyAdmin

Ahora, procedamos con la instalación de PhpMyAdmin en nuestro sistema Linux navegando al directorio raíz de documentos del servidor web /var/www/html como se muestra.

cd /var/www/html

A continuación, descargue la última versión de PhpMyAdmin usando el siguiente comando wget como se muestra.

sudo wget https://www.phpmyadmin.net/downloads/phpMyAdmin-latest-all-languages.tar.gz

Una vez descargado, extraiga el archivo descargado y cambie el nombre del directorio para su comodidad.

sudo tar -xvzf phpMyAdmin-latest-all-languages.tar.gz
sudo mv phpMyAdmin-*/ phpmyadmin

Cree un archivo de configuración para PhpMyAdmin.

sudo cp /var/www/html/phpmyadmin/config.sample.inc.php /var/www/html/phpmyadmin/config.inc.php

Edite el archivo de configuración:

sudo nano /var/www/html/phpmyadmin/config.inc.php

Busque la siguiente línea y configure su propio Blowfish_secret:

$cfg['blowfish_secret'] = 'your_secret';

Guardar y salir del archivo.

Paso 6: abra el puerto Apache en firewalld

De forma predeterminada, Apache usa comúnmente los puertos 80 y 443 para HTTP y HTTPS, respectivamente. Para abrir los puertos de Apache y permitir el acceso a PhpMyAdmin en su servidor, ejecute:

sudo firewall-cmd --zone=public --add-port=80/tcp --permanent
sudo firewall-cmd --zone=public --add-port=443/tcp --permanent
sudo firewall-cmd --reload

Estos comandos agregan una regla para permitir el tráfico entrante en el puerto especificado y recargar el firewall para aplicar los cambios.

Paso 7: reinicie el servidor web Apache

Finalmente, reinicie Apache para aplicar los cambios:

sudo systemctl restart httpd

Paso 8: acceda a PhpMyAdmin

Ahora puede acceder a PhpMyAdmin a través de su navegador web navegando a la dirección IP o nombre de dominio de su servidor seguido de "/phpmyadmin" en la URL:

http://your_server_ip/phpmyadmin

Inicie sesión con sus credenciales de MySQL o MariaDB.

Paso 9: Permitir el acceso externo en PhpMyAdmin

Abra el archivo de configuración PhpMyAdmin.

sudo vi /etc/httpd/conf/httpd.conf

Busque la sección o la sección donde su PhpMyAdmin está configurado y actualiza la directiva Require para permitir todas las direcciones IP para acceder a PhpMyAdmin.

<Directory "/var/www/html/phpmyadmin">
    ...
    Require all granted
    ...
</Directory>

La configuración anterior permite el acceso desde cualquier dirección IP, pero si desea restringir el acceso a IP específicas, reemplace Requerir todo concedido por Requerir ip your_ip.

Reinicie Apache para aplicar los cambios.

sudo systemctl restart httpd

Ahora debería poder acceder a PhpMyAdmin desde el mundo exterior utilizando la dirección IP o el dominio de su servidor.

http://your_server_ip/phpmyadmin

Recuerde, abrir el acceso a PhpMyAdmin desde el mundo exterior puede plantear riesgos de seguridad. Asegúrese de contar con un mecanismo de autenticación sólido y considere utilizar HTTPS para la comunicación cifrada. Además, restrinja el acceso solo a direcciones IP confiables si es posible o asegure la URL de inicio de sesión de PhpMyAdmin.

Cambiar la URL de inicio de sesión de phpMyAdmin

La URL de inicio de sesión predeterminada para phpMyAdmin es predecible y suele ser el objetivo de actores maliciosos que intentan explotar vulnerabilidades. Cambiar la URL de inicio de sesión agrega una capa adicional de seguridad, lo que dificulta que usuarios no autorizados obtengan acceso a la interfaz de administración de su base de datos.

Para hacerlo, cree un archivo de configuración /etc/httpd/conf.d/phpMyAdmin.conf.

vi /etc/httpd/conf.d/phpMyAdmin.conf

A continuación, agregue la siguiente configuración.

#Alias /phpMyAdmin /var/www/html/phpmyadmin
Alias /my /var/www/html/phpmyadmin

<Directory /var/www/htm/lphpmyadmin>
    AddDefaultCharset UTF-8

    <IfModule mod_authz_core.c>
        # Apache 2.4
        <RequireAny>
            Require all granted
            # Additional IP or hostname-based access control can be added here
        </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
        # Additional IP or hostname-based access control can be added here
    </IfModule>

</Directory>

Reemplace /my con la URL de inicio de sesión personalizada que desee. Guarde los cambios y salga del editor de texto.

Después de realizar cambios en los archivos de configuración, reinicie Apache para aplicar las modificaciones:

systemctl restart httpd

Abra su navegador web y navegue hasta la nueva URL de inicio de sesión phpMyAdmin.

http://yourdomain.com/my/

Configurar SSL para phpMyAdmin

Asegurar la comunicación entre el servidor web Apache y phpMyAdmin es crucial para proteger información confidencial, como las credenciales de inicio de sesión y el contenido de la base de datos. Una forma efectiva de lograr esto es configurando SSL (Secure Socket Layer) para phpMyAdmin en un servidor web Apache.

Para hacerlo, primero instale el módulo mod_ssl en su servidor.

yum install httpd mod_ssl openssl

A continuación, cree un directorio para almacenar el certificado y genere un certificado SSL autofirmado y una clave privada como se muestra.

mkdir /etc/httpd/ssl 
openssl req -x509 -nodes -days 365 -newkey rsa:2048 -keyout /etc/httpd/ssl/apache.key -out /etc/httpd/ssl/apache.crt

Después de crear el certificado SSL y la clave, abra el archivo de configuración de Apache SSL.

vi /etc/httpd/conf.d/ssl.conf

A continuación, agregue las siguientes líneas al archivo de configuración.

SSLEngine on
SSLCertificateFile /etc/httpd/ssl/apache.crt
SSLCertificateKeyFile /etc/httpd/ssl/apache.key

Guarde los cambios y reinicie el servidor web Apache.

systemctl restart httpd

Ahora, abra el archivo de configuración phpMyAdmin.

vi /var/www/html/phpmyadmin/config.inc.php

Agregue las siguientes líneas para forzar SSL para phpMyAdmin.

$cfg['ForceSSL'] = true;

Guarde los cambios y salga del editor de texto.

Finalmente, abra su navegador web y navegue hasta la siguiente URL para acceder a phpMyAdmin a través de una conexión SSL segura.

https://yourdomain.com/my/

Tenga en cuenta que el mensaje que indica una conexión insegura se debe únicamente a la utilización de un certificado autofirmado. Para continuar, haga clic en "Avanzado" y confirme la excepción de seguridad.

Conclusión

¡Felicidades! Ha instalado correctamente PhpMyAdmin con Apache en su sistema RHEL, CentOS Stream, Rocky Linux o AlmaLinux. Esta herramienta basada en web simplifica la administración de sus bases de datos, facilitando tareas como la creación de bases de datos, consultas y administración de datos.