Come installare e proteggere phpMyAdmin su Debian 11
Su questa pagina
- Prerequisiti
- Per iniziare
- Installa il server LAMP
- Installa e configura phpMyAdmin
- Crea utente amministratore phpMyAdmin
- Configura Apache per phpMyAdmin
- Accedi a phpMyAdmin
- Proteggi phpMyAdmin
- Verifica phpMyAdmin
- Conclusione
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.
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 sistema, puoi procedere al passaggio successivo.
Installa LAMP Server
phpMyAdmin è un'applicazione basata su PHP e gira 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
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
Successivamente, sposta la directory estratta in /usr/share con il seguente comando:
mv phpMyAdmin-5.1.1-all-languages /usr/share/phpmyadmin
Successivamente, 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
Successivamente, copia il file di configurazione di esempio phpMyAdmin:
cp /usr/share/phpmyadmin/config.sample.inc.php /usr/share/phpmyadmin/config.inc.php
Successivamente, installa pwgen e genera una chiave segreta con il seguente comando:
apt-get install pwgen -y
pwgen -s 32 1
Produzione:
pau9t1SG6lmaeCFxKqeeaY5N4erIa25K
Successivamente, 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 un utente amministratore phpMyAdmin
Si consiglia sempre di creare un utente separato per la gestione del database tramite phpMyAdmin.
Innanzitutto, importa le tabelle phpMyAdmin nel database MariaDB utilizzando il seguente comando:
mysql < /usr/share/phpmyadmin/sql/create_tables.sql
Successivamente, 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;
Successivamente, concedi tutti i privilegi all'utente admin 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 phpMyAdmin con il seguente comando:
a2enconf phpmyadmin.conf
Successivamente, 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 usando 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 sul pulsante Vai . Dovresti vedere la dashboard di phpMyAdmin nella pagina seguente:
Sicuro phpMyAdmin
È una buona idea proteggere phpMyAdmin con l'autenticazione a due fattori. Puoi farlo utilizzando le funzionalità di autenticazione e autorizzazione di .htaccess.
Per prima cosa, modifica il file di configurazione di phpMyAdmin:
nano /etc/apache2/conf-available/phpmyadmin.conf
Aggiungi la riga AllowOverride All nel seguente blocco server:
<Directory /usr/share/phpmyadmin> Options FollowSymLinks DirectoryIndex index.php AllowOverride All <IfModule mod_php5.c>
Salva e chiudi il file quando hai finito, quindi riavvia il servizio Apache:
systemctl restart apache2
Successivamente, 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'ulteriore autenticazione. 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 con successo phpMyAdmin su Debian 11. Ora puoi esplorare phpMyAdmin e iniziare a gestire il tuo database dal browser web.