GNU/Linux >> Tutoriales Linux >  >> Debian

Instale phpMyAdmin con Apache (LAMP) en Debian 10 Buster

Este tutorial le mostrará cómo instalar phpMyAdmin con Apache, MariaDB, PHP7.3 (pila LAMP) en Debian 10 Buster. phpMyAdmin es una herramienta de administración de base de datos basada en web gratuita y de código abierto escrita en PHP. Proporciona una interfaz web gráfica para que los usuarios administren la base de datos MySQL o MariaDB. También vamos a aprender cómo habilitar la autenticación de dos factores en phpMyAdmin.

phpMyAdmin permite a los administradores:

  • navegar a través de bases de datos y tablas;
  • crear, copiar, renombrar, modificar y eliminar bases de datos;
  • crear, copiar, renombrar, modificar y eliminar tablas;
  • realizar el mantenimiento de la tabla;
  • añadir, editar y soltar campos;
  • ejecutar cualquier instrucción SQL, incluso múltiples consultas;
  • crear, modificar y eliminar índices;
  • cargar archivos de texto en tablas;
  • crear y leer volcados de tablas o bases de datos;
  • exportar datos a formatos SQL, CSV, XML, Word, Excel, PDF y LaTeX;
  • administrar múltiples servidores;
  • administrar usuarios y privilegios de MySQL;
  • verifique la configuración del servidor y la información de tiempo de ejecución con sugerencias de configuración;
  • verificar la integridad referencial en las tablas MyISAM;
  • cree consultas complejas usando Query-by-example (QBE), automáticamente
  • conectando las tablas requeridas;
  • crear gráficos en PDF del diseño de la base de datos;
  • buscar globalmente en una base de datos o en un subconjunto de ella;
  • transformar datos almacenados en cualquier formato utilizando un conjunto de funciones predefinidas, como mostrar datos BLOB como imagen o enlace de descarga;
  • administrar tablas InnoDB y claves externas;

Requisitos

Para seguir este tutorial, necesita un sistema operativo Debian 10 ejecutándose en su computadora local o en un servidor remoto.

Si está buscando un VPS (servidor privado virtual), puede crear una cuenta en Vultr a través de mi enlace de referencia para obtener $ 50 de crédito gratis (solo para nuevos usuarios). Y si necesita configurar phpMyAdmin con un nombre de dominio, le recomiendo comprar nombres de dominio de NameCheap porque el precio es bajo y ofrecen protección de privacidad whois de forma gratuita.

Se supone que ya instaló la pila LAMP en Debian 10. De lo contrario, consulte el siguiente tutorial.

  • Cómo instalar la pila LAMP (Apache, MariaDB, PHP7.3) en Debian 10 Buster

Tenga en cuenta que debe tener privilegios de root al instalar el software en Debian. Puedes agregar sudo al comienzo de un comando, o use su - Comando para cambiar a usuario root.

Con eso fuera del camino, comencemos con la instalación de phpMyAdmin.

Paso 1:Descargue phpMyAdmin en el servidor Debian 10

phpMyAdmin no está incluido en el repositorio de software de Debian 10, por lo que debemos descargar el software manualmente. Vaya a la página de descarga de phpMyAdmin para verificar la última versión estable. Luego ejecute el siguiente comando para descargarlo.

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

Sugerencia:siempre puede usar el formato de URL anterior para descargar la última versión estable de phpMyAdmin. Simplemente reemplace 4.9.0.1 con el último número de versión.

Luego extráigalo.

sudo apt install unzip

unzip phpMyAdmin-4.9.0.1-all-languages.zip

Mover phpMyadmin 4.9 a /usr/share/ directorio.

sudo mv phpMyAdmin-4.9.0.1-all-languages /usr/share/phpmyadmin

Luego haga que el usuario del servidor web (www-data ) como propietario de este directorio.

sudo chown -R www-data:www-data /usr/share/phpmyadmin

Paso 2:Cree una base de datos MariaDB y un usuario para phpMyAdmin

Ahora debemos iniciar sesión en la consola de MariaDB y crear una base de datos y un usuario para phpMyAdmin. De forma predeterminada, el paquete MaraiDB en Debian usa unix_socket para autenticar el inicio de sesión del usuario, lo que básicamente significa que puede usar el nombre de usuario y la contraseña del sistema operativo para iniciar sesión en la consola de MariaDB. Entonces puede ejecutar el siguiente comando para iniciar sesión sin proporcionar la contraseña de root de MariaDB.

sudo mysql -u root

Luego, cree una nueva base de datos para phpMyAdmin usando el siguiente comando SQL. Este tutorial lo llama phpmyadmin , puede usar el nombre que desee para la base de datos.

CREATE DATABASE phpmyadmin DEFAULT CHARACTER SET utf8mb4 COLLATE utf8mb4_unicode_ci;

El siguiente comando SQL creará el phpmyadmin usuario de la base de datos y establezca una contraseña, y al mismo tiempo otorgue todos los permisos de la nueva base de datos al nuevo usuario para que luego phpMyAdmin pueda escribir en la base de datos. Reemplace los textos en rojo con su contraseña preferida.

GRANT ALL ON phpmyadmin.* TO 'phpmyadmin'@'localhost' IDENTIFIED BY 'your_preferred_password';

Vacíe la tabla de privilegios y salga de la consola de MariaDB.

FLUSH PRIVILEGES;

EXIT;

Paso 3:Instale los módulos PHP requeridos y recomendados.

Ejecute el siguiente comando para instalar los módulos PHP requeridos o recomendados por phpMyAdmin.

sudo apt install php-imagick php-phpseclib php-php-gettext php7.3-common php7.3-mysql php7.3-gd php7.3-imap php7.3-json php7.3-curl php7.3-zip php7.3-xml php7.3-mbstring php7.3-bz2 php7.3-intl php7.3-gmp

Luego reinicie Apache.

sudo systemctl restart apache2

Paso 4:Cree la configuración de Apache para phpMyAdmin

Si desea acceder a la interfaz web de phpMyAdmin desde un subdirectorio, cree un fragmento de configuración con el siguiente comando.

sudo nano /etc/apache2/conf-available/phpmyadmin.conf

Pegue el siguiente texto en el archivo.

# phpMyAdmin default Apache configuration

Alias /phpmyadmin /usr/share/phpmyadmin

<Directory /usr/share/phpmyadmin>
    Options SymLinksIfOwnerMatch
    DirectoryIndex index.php

    <IfModule mod_php5.c>
        <IfModule mod_mime.c>
            AddType application/x-httpd-php .php
        </IfModule>
        <FilesMatch ".+\.php$">
            SetHandler application/x-httpd-php
        </FilesMatch>

        php_value include_path .
        php_admin_value upload_tmp_dir /var/lib/phpmyadmin/tmp
        php_admin_value open_basedir /usr/share/phpmyadmin/:/etc/phpmyadmin/:/var/lib/phpmyadmin/:/usr/share/php/php-gettext/:/usr/share/php/php-php-gettext/:/usr/share/javascript/:/usr/share/php/tcpdf/:/usr/share/doc/phpmyadmin/:/usr/share/php/phpseclib/
        php_admin_value mbstring.func_overload 0
    </IfModule>
    <IfModule mod_php.c>
        <IfModule mod_mime.c>
            AddType application/x-httpd-php .php
        </IfModule>
        <FilesMatch ".+\.php$">
            SetHandler application/x-httpd-php
        </FilesMatch>

        php_value include_path .
        php_admin_value upload_tmp_dir /var/lib/phpmyadmin/tmp
        php_admin_value open_basedir /usr/share/phpmyadmin/:/etc/phpmyadmin/:/var/lib/phpmyadmin/:/usr/share/php/php-gettext/:/usr/share/php/php-php-gettext/:/usr/share/javascript/:/usr/share/php/tcpdf/:/usr/share/doc/phpmyadmin/:/usr/share/php/phpseclib/
        php_admin_value mbstring.func_overload 0
    </IfModule>

</Directory>

# Disallow web access to directories that don't need it
<Directory /usr/share/phpmyadmin/templates>
    Require all denied
</Directory>
<Directory /usr/share/phpmyadmin/libraries>
    Require all denied
</Directory>
<Directory /usr/share/phpmyadmin/setup/lib>
    Require all denied
</Directory>

Guarde y cierre el archivo. Luego habilite este fragmento de configuración.

sudo a2enconf phpmyadmin.conf

También necesitamos crear la carpeta temporal phpMyAdmin.

sudo mkdir -p /var/lib/phpmyadmin/tmp
sudo chown www-data:www-data /var/lib/phpmyadmin/tmp

Vuelva a cargar Apache para que los cambios surtan efecto.

sudo systemctl reload apache2

Ahora puede acceder a la interfaz web de phpMyAdmin en

your-server-ip/phpmyadmin

Si phpMyAdmin está instalado en su computadora Debian local, puede acceder a la interfaz web de phpMyAdmin escribiendo el siguiente texto en la barra de direcciones del navegador.

localhost/phpmyadmin

Si la conexión se rechaza o no se completa, es posible que haya un firewall que impida las solicitudes HTTP. Si está utilizando el firewall de iptables, debe ejecutar el siguiente comando para abrir los puertos TCP 80 y 443.

sudo iptables -I INPUT -p tcp --dport 80 -j ACCEPT
sudo iptables -I INPUT -p tcp --dport 443 -j ACCEPT

Si está utilizando un firewall UFW, ejecute este comando para abrir los puertos TCP 80 y 443.

sudo ufw allow http
sudo ufw allow https

Paso 5:Acceda a phpMyAdmin desde un subdominio

A veces, es posible que desee utilizar un subdominio para acceder a la interfaz web de phpMyAdmin. De esta forma, puede habilitar HTTPS para cifrar el tráfico.

Primero, necesitamos crear un servidor virtual Apache para phpMyAdmin. El fragmento de código de configuración de phpMyAdmin existente se puede utilizar como plantilla. Vamos a copiarlo en un archivo nuevo.

sudo cp /etc/apache2/conf-enabled/phpmyadmin.conf /etc/apache2/sites-available/phpmyadmin.conf

Luego edite el nuevo archivo con un editor de texto de línea de comando, como Nano.

sudo nano /etc/apache2/sites-available/phpmyadmin.conf

Agregue las siguientes líneas al principio de este archivo. Reemplace pma.example.com con su subdominio preferido para phpMyAdmin. No olvide crear un registro DNS A para este subdominio.

<VirtualHost *:80>
    ServerName pma.example.com
    DocumentRoot /usr/share/phpmyadmin

    ErrorLog ${APACHE_LOG_DIR}/pma.error.log
    CustomLog ${APACHE_LOG_DIR}/pma.access.log combined

Agregue la siguiente línea al final de este archivo.

</VirtualHost>

Guarde y cierre el archivo. (Para guardar un archivo en el editor de texto Nano, presione Ctrl+O , luego presione Entrar para confirmar. Para salir, presiona Ctrl+X .) Luego habilite este host virtual.

sudo a2ensite phpmyadmin.conf

Vuelva a cargar el servidor web Apache para que este cambio surta efecto.

sudo systemctl reload apache2

Ahora debería poder acceder a la interfaz web de phpMyAdmin a través de

pma.example.com

Antes de ingresar las credenciales de usuario en el formulario de inicio de sesión, habilitemos HTTPS.

Paso 6:habilite HTTPS en phpMyAdmin con Apache

Para proteger la interfaz web de phpMyadmin, podemos instalar un certificado TLS gratuito de Let's Encrypt. Ejecute el siguiente comando para instalar el cliente Let's Encrypt (certbot) desde el repositorio de software Debian 10.

sudo apt install certbot python3-certbot-apache

Python3-certbot-apache es el complemento de Apache para Certbot. Ahora ejecute el siguiente comando para obtener e instalar el certificado TLS.

sudo certbot --apache --agree-tos --redirect --hsts --staple-ocsp --must-staple -d pma.example.com --email [email protected]

Explicación:

  • –apache: Use el autenticador e instalador de Apache
  • –de acuerdo :Acepto los términos de servicio de Let's Encrypt
  • –redireccionar :Agregar redirección 301.
  • –hsts :agregue el encabezado Strict-Transport-Security a cada respuesta HTTP.
  • –grapa-ocsp :Habilita el grapado OCSP.
  • -imprescindible :Agrega la extensión OCSP Must Staple al certificado.
  • -d va seguido de una lista de nombres de dominio, separados por comas. Puede agregar hasta 100 nombres de dominio.
  • –correo electrónico :Correo electrónico utilizado para el registro y el contacto de recuperación.

Se le preguntará si desea recibir correos electrónicos de EFF (Electronic Frontier Foundation). Después de elegir S o N, su certificado TLS se obtendrá y configurará automáticamente para usted, lo cual se indica en el mensaje a continuación.

Paso 7:Ejecute el script de configuración de phpMyAdmin

Introduzca lo siguiente en la barra de direcciones de su navegador.

your-server-ip/phpmyadmin/setup

o

pma.example.com/setup

Haga clic en New Server botón para configurar un servidor.

Luego simplemente haga clic en Apply botón.

A continuación, haga clic en el botón Mostrar para mostrar el archivo de configuración.

En el /usr/share/phpmyadmin/ directorio, cree el archivo config.inc.php.

sudo nano /usr/share/phpmyadmin/config.inc.php

Copie el contenido de config.inc.php desde la página de configuración de phpMyAdmin y péguelos en /usr/share/phpmyadmin/config.inc.php archivo.

Paso 8:Solucione el error de inicio de sesión de phpMyAdmin

Ahora, si intenta iniciar sesión en phpMyAdmin con la cuenta raíz de MariaDB, es posible que vea el siguiente error.

#1698 - Access denied for user 'root '@'localhost'

y

mysqli_real_connect(): (HY000/1698): Access denied for user 'root '@'localhost'

Si inicia sesión con el usuario phpmyadmin , no verá el error anterior. Sin embargo, el usuario phpmyadmin solo se puede usar para administrar phpmyadmin base de datos. La causa del error es que, de forma predeterminada, el usuario raíz de MariDB se autentica a través del complemento unix_socket, en lugar de usar mysql_native_password enchufar. Para resolver este problema, podemos crear otro usuario administrador y otorgar todos los privilegios al nuevo usuario administrador.

Inicie sesión en el servidor MariaDB desde la línea de comandos.

sudo mysql -u root

Cree un usuario administrador con autenticación de contraseña.

create user [email protected] identified by 'your-preferred-password';

Otorgue todos los privilegios en todas las bases de datos.

grant all privileges on *.* to [email protected] with grant option;

Vaciar privilegios y salir;

flush privileges;

exit;

Ahora puede iniciar sesión en phpMyAmin con el admin cuenta y administrar todas las bases de datos.

Paso 9:configure el almacenamiento de configuración de phpMyAdmin

Ahora, en el panel de control de phpMyAdmin, puede ver un mensaje de advertencia.

The phpMyAdmin configuration storage is not completely configured, some extended features have been deactivated. Find out why. 
Or alternately go to 'Operations' tab of any database to set it up there.

Haga clic en el enlace Descubra por qué. Luego haga clic en el enlace Crear para crear tablas en phpmyadmin base de datos.

Paso 10:Restricción del acceso al directorio /setup

Para restringir el acceso al directorio /setup, podemos habilitar la autenticación de contraseña básica con el servidor web Apache. Ejecute el siguiente comando para establecer una contraseña para el usuario admin . /etc/apache2/htpasswd El archivo se utiliza para almacenar nombres de usuario y contraseñas.

sudo htpasswd -c /etc/apache2/htpasswd admin

Luego edite el archivo de configuración de Apache para phpMyAdmin

sudo nano /etc/apache2/sites-available/phpmyadmin-le-ssl.conf

o

sudo nano /etc/apache2/conf-available/phpmyadmin.conf

Agregue las siguientes líneas.

# Authorize for setup
<Directory /usr/share/phpmyadmin/setup>
    <IfModule mod_authz_core.c>
        <IfModule mod_authn_file.c>
            AuthType Basic
            AuthName "phpMyAdmin Setup"
            AuthUserFile /etc/apache2/htpasswd
        </IfModule>
        Require valid-user
    </IfModule>
</Directory>

Guarde y cierre el archivo. Luego, vuelva a cargar Apache para que los cambios surtan efecto.

sudo systemctl reload apache2

Si vuelve a acceder al script de configuración de phpMyAdmin, se le pedirá que introduzca el nombre de usuario y la contraseña.

Habilitar autenticación de dos factores

También puede fortalecer phpMyAdmin habilitando la autenticación de dos factores, que es una función agregada en la versión 4.8. Para habilitarlo, inicie sesión en phpMyAdmin. Luego ve a Settings -> Two-factor authentication y seleccione Aplicación de autenticación (2FA) .

Después de hacer clic en Configurar autenticación de dos factores botón, se le presentará un código QR, que debe escanear con una aplicación de autenticación de dos factores en su teléfono.

Google Authenticator es una aplicación 2FA popular, pero recomiendo FreeOTP, que es una aplicación 2FA de código abierto desarrollada por Red Hat. Una vez que ingresa el código de autenticación generado por su aplicación 2FA, se habilita la autenticación de dos factores. Si ahora cierra la sesión y vuelve a iniciarla, debe ingresar el código de autenticación además del nombre de usuario y la contraseña.


Debian
  1. Cómo instalar phpMyAdmin en Debian 10 (Buster)

  2. Instalar phpMyAdmin con Apache en Debian 9 - ¿Proceso paso a paso?

  3. Instale phpMyAdmin en Ubuntu 20.04 con Apache

  4. Instale phpMyAdmin en Debian 11 con Apache

  5. Instale phpMyAdmin en Ubuntu 22.04 con Apache

Cómo instalar phpMyAdmin con Apache (LAMP) en Ubuntu 20.04

Cómo instalar phpMyAdmin en Debian 11 Bullseye (Apache)

Cómo instalar phpMyAdmin en Debian 10 Buster

Cómo instalar PostgreSQL en Debian 10 Buster

Cómo instalar phpMyAdmin con Nginx en Debian 11

Cómo instalar WordPress con LAMP en Debian 10