GNU/Linux >> Tutoriales Linux >  >> Debian

Cómo instalar y asegurar phpMyAdmin en Debian 11

phpMyAdmin es una aplicación gratuita, de código abierto y basada en web que se utiliza para administrar bases de datos MySQL y MariaDB desde la interfaz web. Crear y administrar una base de datos desde la interfaz de línea de comandos es muy difícil para los usuarios principiantes. phpMyAdmin proporciona una manera más fácil de administrar bases de datos MySQL, cuentas de usuario y privilegios, ejecutar declaraciones SQL, importar y exportar datos a través del navegador web.

En esta publicación, le mostraremos cómo instalar y asegurar la herramienta de administración de bases de datos phpMyAdmin en Debian 11.

Requisitos

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

Cómo empezar

Antes de comenzar, es una buena idea actualizar los paquetes de su sistema a la última versión. Puede actualizar todos los paquetes usando el siguiente comando:

apt-get update -y

Una vez que su sistema esté actualizado, puede continuar con el siguiente paso.

Instalar servidor LAMP

phpMyAdmin es una aplicación basada en PHP y se ejecuta en un servidor web. Por lo tanto, deberá instalar el servidor LAMP en su servidor. Puedes instalarlo usando el siguiente comando:

apt-get install apache2 mariadb-server libapache2-mod-php php-cli php-mysql php-zip php-curl php-xml php-mbstring php-zip php-gd unzip -y

Una vez que todos los paquetes estén instalados, puede continuar con el siguiente paso.

Instalar y configurar phpMyAdmin

Primero, descargue la última versión de phpMyAdmin desde su sitio web oficial usando el siguiente comando:

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

Una vez completada la descarga, descomprima el archivo descargado con el siguiente comando:

unzip phpMyAdmin-5.1.1-all-languages.zip

A continuación, mueva el directorio extraído a /usr/share con el siguiente comando:

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

Luego, cree el directorio requerido con el siguiente comando:

mkdir -p /var/lib/phpmyadmin/tmp

A continuación, establezca la propiedad adecuada en el directorio phpMyAdmin:

chown -R www-data:www-data /var/lib/phpmyadmin

A continuación, copie el archivo de configuración de muestra de phpMyAdmin:

cp /usr/share/phpmyadmin/config.sample.inc.php /usr/share/phpmyadmin/config.inc.php

A continuación, instale pwgen y genere una clave secreta con el siguiente comando:

apt-get install pwgen -y
pwgen -s 32 1

Salida:

pau9t1SG6lmaeCFxKqeeaY5N4erIa25K

A continuación, edite el archivo config.inc.php y configúrelo:

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

Defina su clave secreta y descomente las siguientes líneas:

$cfg['blowfish_secret'] = 'pau9t1SG6lmaeCFxKqeeaY5N4erIa25K'; /* YOU MUST FILL IN THIS FOR COOKIE AUTH! */
$cfg['Servers'][$i]['controluser'] = 'pma';
$cfg['Servers'][$i]['controlpass'] = 'password';

$cfg['Servers'][$i]['pmadb'] = 'phpmyadmin';
$cfg['Servers'][$i]['bookmarktable'] = 'pma__bookmark';
$cfg['Servers'][$i]['relation'] = 'pma__relation';
$cfg['Servers'][$i]['table_info'] = 'pma__table_info';
$cfg['Servers'][$i]['table_coords'] = 'pma__table_coords';
$cfg['Servers'][$i]['pdf_pages'] = 'pma__pdf_pages';
$cfg['Servers'][$i]['column_info'] = 'pma__column_info';
$cfg['Servers'][$i]['history'] = 'pma__history';
$cfg['Servers'][$i]['table_uiprefs'] = 'pma__table_uiprefs';
$cfg['Servers'][$i]['tracking'] = 'pma__tracking';
$cfg['Servers'][$i]['userconfig'] = 'pma__userconfig';
$cfg['Servers'][$i]['recent'] = 'pma__recent';
$cfg['Servers'][$i]['favorite'] = 'pma__favorite';
$cfg['Servers'][$i]['users'] = 'pma__users';
$cfg['Servers'][$i]['usergroups'] = 'pma__usergroups';
$cfg['Servers'][$i]['navigationhiding'] = 'pma__navigationhiding';
$cfg['Servers'][$i]['savedsearches'] = 'pma__savedsearches';
$cfg['Servers'][$i]['central_columns'] = 'pma__central_columns';
$cfg['Servers'][$i]['designer_settings'] = 'pma__designer_settings';
$cfg['Servers'][$i]['export_templates'] = 'pma__export_templates';

$cfg['TempDir'] = '/var/lib/phpmyadmin/tmp';

Guarde y cierre el archivo cuando haya terminado.

Crear usuario administrador de phpMyAdmin

Siempre se recomienda crear un usuario separado para administrar la base de datos a través de phpMyAdmin.

Primero, importe las tablas de phpMyAdmin a la base de datos MariaDB usando el siguiente comando:

mysql < /usr/share/phpmyadmin/sql/create_tables.sql

A continuación, conéctese al shell de MariaDB con el siguiente comando:

mysql

Una vez que esté conectado, otorgue todos los privilegios necesarios a la base de datos phpmyadmin con el siguiente comando:

MariaDB [(none)]> GRANT SELECT, INSERT, UPDATE, DELETE ON phpmyadmin.* TO 'pma'@'localhost' IDENTIFIED BY 'password';

A continuación, cree un usuario administrador con el siguiente comando:

MariaDB [(none)]> CREATE USER myadmin;

A continuación, otorgue todos los privilegios al usuario administrador con el siguiente comando:

MariaDB [(none)]> GRANT ALL PRIVILEGES ON *.* TO 'myadmin'@'localhost' IDENTIFIED BY 'password' WITH GRANT OPTION;

A continuación, elimine los privilegios y salga del shell de MariaDB con el siguiente comando:

MariaDB [(none)]> FLUSH PRIVILEGES;
MariaDB [(none)]> EXIT;

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

Configurar Apache para phpMyAdmin

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

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

Agregue las siguientes líneas:

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>

# 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/phpmyadmin/htpasswd.setup
        </IfModule>
        Require valid-user
    </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 cuando haya terminado, luego habilite el archivo de configuración de phpMyAdmin con el siguiente comando:

a2enconf phpmyadmin.conf

A continuación, vuelva a cargar el servicio de Apache para aplicar los cambios:

systemctl reload apache2

Puede verificar el estado del servicio Apache usando el siguiente comando:

systemctl status apache2

Debería ver el siguiente resultado:

? apache2.service - The Apache HTTP Server
     Loaded: loaded (/lib/systemd/system/apache2.service; enabled; vendor preset: enabled)
     Active: active (running) since Tue 2021-08-17 10:16:28 UTC; 2s ago
       Docs: https://httpd.apache.org/docs/2.4/
    Process: 45027 ExecStart=/usr/sbin/apachectl start (code=exited, status=0/SUCCESS)
   Main PID: 45031 (apache2)
      Tasks: 6 (limit: 2341)
     Memory: 14.6M
        CPU: 89ms
     CGroup: /system.slice/apache2.service
             ??45031 /usr/sbin/apache2 -k start
             ??45032 /usr/sbin/apache2 -k start
             ??45033 /usr/sbin/apache2 -k start
             ??45034 /usr/sbin/apache2 -k start
             ??45035 /usr/sbin/apache2 -k start
             ??45036 /usr/sbin/apache2 -k start

Aug 17 10:16:28 debian systemd[1]: Starting The Apache HTTP Server...

Acceso a phpMyAdmin

En este punto, phpMyAdmin está instalado y configurado. Ahora, abra su navegador web y acceda a phpMyAdmin usando la URL http://your-server-ip/phpmyadmin . Debería ver la página de inicio de sesión de phpMyAdmin:

Proporcione su nombre de usuario y contraseña de administrador y haga clic en Ir botón. Debería ver el panel de phpMyAdmin en la siguiente página:

phpMyAdmin seguro

Es una buena idea asegurar phpMyAdmin con autenticación de dos factores. Puede hacerlo utilizando las funcionalidades de autenticación y autorización .htaccess.

Primero, edite el archivo de configuración de phpMyAdmin:

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

Agregue la línea "AllowOverride All" en el siguiente bloque de servidor:

<Directory /usr/share/phpmyadmin>
    Options FollowSymLinks
    DirectoryIndex index.php
    AllowOverride All

    <IfModule mod_php5.c>

Guarde y cierre el archivo cuando haya terminado y luego reinicie el servicio Apache:

systemctl restart apache2

A continuación, cree un archivo .htaccess y defina el tipo de autenticación de Apache:

nano /usr/share/phpmyadmin/.htaccess

Agregue las siguientes líneas:

AuthType Basic
AuthName "Restricted Files"
AuthUserFile /usr/share/phpmyadmin/.htpasswd
Require valid-user

Guarde y cierre el archivo y luego cree un usuario con el siguiente comando:

htpasswd -c /usr/share/phpmyadmin/.htpasswd secureuser

Se le pedirá que establezca una contraseña como se muestra a continuación:

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

Verificar phpMyAdmin

En este punto, phpMyAdmin está protegido con autenticación adicional. Para verificarlo, abra su navegador web y acceda a phpMyAdmin usando la URL http://your-server-ip/phpmyadmin . Se le pedirá el nombre de usuario y la contraseña adicionales como se muestra a continuación:

Después de proporcionar su nombre de usuario y contraseña, será redirigido a la página de inicio de sesión habitual de phpMyAdmin.

Conclusión

¡Felicidades! Ha instalado y asegurado con éxito phpMyAdmin en Debian 11. Ahora puede explorar phpMyAdmin y comenzar a administrar su base de datos desde el navegador web.


Debian
  1. Cómo instalar y proteger phpMyAdmin en Debian 9

  2. Cómo instalar y asegurar phpMyAdmin en Ubuntu

  3. Cómo instalar y proteger MongoDB en Debian 11

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

  5. Cómo instalar phpMyAdmin en Debian 9

Cómo instalar phpMyAdmin en Debian 9

Cómo instalar phpMyAdmin en Debian 10 Buster

Cómo instalar phpMyAdmin en Debian 11

Cómo instalar y asegurar phpMyAdmin en Ubuntu 14.04

Cómo instalar y asegurar phpMyAdmin en CentOS 8

Cómo instalar phpMyAdmin en Debian 10