GNU/Linux >> Linux Esercitazione >  >> Debian

Come installare e proteggere phpMyAdmin su Debian 11

phpMyAdmin è un'applicazione gratuita, open source e basata sul Web utilizzata per la gestione dei database MySQL e MariaDB dall'interfaccia web. La creazione e la gestione di un database dall'interfaccia della riga di comando è molto difficile per gli utenti principianti. phpMyAdmin fornisce un modo più semplice per gestire database MySQL, account utente e privilegi, eseguire istruzioni SQL, importare ed esportare dati tramite il browser web.

In questo post, ti mostreremo come installare e proteggere lo strumento di amministrazione del database phpMyAdmin su Debian 11.

Prerequisiti

  • Un server che esegue Debian 11.
  • Sul server è configurata una password di root.

Per iniziare

Prima di iniziare, è una buona idea aggiornare i pacchetti di sistema all'ultima versione. Puoi aggiornare tutti i pacchetti usando il seguente comando:

apt-get update -y

Una volta aggiornato il tuo sistema, puoi procedere al passaggio successivo.

Installa il server LAMP

phpMyAdmin è un'applicazione basata su PHP e funziona su un server web. Quindi dovrai installare il server LAMP sul tuo server. Puoi installarlo usando il seguente 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 volta installati tutti i pacchetti, puoi procedere al passaggio successivo.

Installa e configura phpMyAdmin

Innanzitutto, scarica l'ultima versione di phpMyAdmin dal loro sito Web ufficiale utilizzando il seguente comando:

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

Una volta completato il download, decomprimere il file scaricato con il seguente comando:

unzip phpMyAdmin-5.1.1-all-languages.zip

Quindi, sposta la directory estratta in /usr/share con il seguente comando:

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

Quindi, crea la directory richiesta con il seguente comando:

mkdir -p /var/lib/phpmyadmin/tmp

Quindi, imposta la proprietà corretta sulla directory phpMyAdmin:

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

Quindi, copia il file di configurazione di esempio di phpMyAdmin:

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

Quindi, installa il pwgen e genera una chiave segreta con il seguente comando:

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

Uscita:

pau9t1SG6lmaeCFxKqeeaY5N4erIa25K

Quindi, modifica il file config.inc.php e configuralo:

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

Definisci la tua chiave segreta e decommenta le seguenti righe:

$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';

Salva e chiudi il file quando hai finito.

Crea utente amministratore phpMyAdmin

Si consiglia sempre di creare un utente separato per la gestione del database tramite phpMyAdmin.

Per prima cosa, importa le tabelle phpMyAdmin nel database di MariaDB usando il seguente comando:

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

Quindi, connettiti alla shell MariaDB con il seguente comando:

mysql

Una volta connesso, concedi tutti i privilegi necessari al database phpmyadmin con il seguente comando:

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

Quindi, crea un utente amministratore con il seguente comando:

MariaDB [(none)]> CREATE USER myadmin;

Quindi, concedi tutti i privilegi all'utente amministratore con il seguente comando:

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

Quindi, svuota i privilegi ed esci dalla shell MariaDB usando il seguente comando:

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

Una volta terminato, puoi procedere al passaggio successivo.

Configura Apache per phpMyAdmin

Successivamente, dovrai creare un file di configurazione dell'host virtuale Apache per phpMyAdmin. Puoi crearlo usando il seguente comando:

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

Aggiungi le seguenti righe:

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>

Salva e chiudi il file quando hai finito, quindi abilita il file di configurazione di phpMyAdmin con il seguente comando:

a2enconf phpmyadmin.conf

Quindi, ricarica il servizio Apache per applicare le modifiche:

systemctl reload apache2

Puoi controllare lo stato del servizio Apache usando il seguente comando:

systemctl status apache2

Dovresti vedere il seguente output:

? 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...

Accedi a phpMyAdmin

A questo punto, phpMyAdmin è installato e configurato. Ora, apri il tuo browser web e accedi a phpMyAdmin utilizzando l'URL http://your-server-ip/phpmyadmin . Dovresti vedere la pagina di accesso di phpMyAdmin:

Fornisci il nome utente e la password dell'amministratore e fai clic su Vai pulsante. Dovresti vedere la dashboard di phpMyAdmin nella pagina seguente:

Proteggi phpMyAdmin

È una buona idea proteggere phpMyAdmin con l'autenticazione a due fattori. Puoi farlo utilizzando le funzionalità di autenticazione e autorizzazione .htaccess.

Per prima cosa, modifica il file di configurazione di phpMyAdmin:

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

Aggiungi la riga "AllowOverride All" nel blocco server seguente:

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

    <IfModule mod_php5.c>

Salva e chiudi il file al termine, quindi riavvia il servizio Apache:

systemctl restart apache2

Quindi, crea un file .htaccess e definisci il tipo di autenticazione Apache:

nano /usr/share/phpmyadmin/.htaccess

Aggiungi le seguenti righe:

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

Salva e chiudi il file, quindi crea un utente con il seguente comando:

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

Ti verrà chiesto di impostare una password come mostrato di seguito:

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

Verifica phpMyAdmin

A questo punto, phpMyAdmin è protetto con un'autenticazione aggiuntiva. Per verificarlo, apri il tuo browser web e accedi a phpMyAdmin utilizzando l'URL http://your-server-ip/phpmyadmin . Ti verrà chiesto il nome utente e la password aggiuntivi come mostrato di seguito:

Dopo aver fornito nome utente e password, verrai reindirizzato alla normale pagina di accesso di phpMyAdmin.

Conclusione

Congratulazioni! hai installato e protetto correttamente phpMyAdmin su Debian 11. Ora puoi esplorare phpMyAdmin e iniziare a gestire il tuo database dal browser web.


Debian
  1. Come installare e proteggere phpMyAdmin su Debian 9

  2. Come installare e proteggere phpMyAdmin su Ubuntu

  3. Come installare e proteggere MongoDB su Debian 11

  4. Come installare e proteggere MariaDB su Debian 11

  5. Come installare phpMyAdmin su Debian 9

Come installare phpMyAdmin su Debian 9

Come installare phpMyAdmin su Debian 10 Buster

Come installare phpMyAdmin su Debian 11

Come installare e proteggere phpMyAdmin in Ubuntu 14.04

Come installare e proteggere phpMyAdmin su CentOS 8

Come installare phpMyAdmin su Debian 10