GNU/Linux >> Linux Esercitazione >  >> Debian

Installa phpMyAdmin con Apache (LAMP) su Debian 10 Buster

Questo tutorial ti mostrerà come installare phpMyAdmin con Apache, MariaDB, PHP7.3 (stack LAMP) su Debian 10 Buster. phpMyAdmin è uno strumento di gestione di database basato sul Web gratuito e open source scritto in PHP. Fornisce un'interfaccia web grafica per consentire agli utenti di gestire database MySQL o MariaDB. Impareremo anche come abilitare l'autenticazione a due fattori su phpMyAdmin.

phpMyAdmin consente agli amministratori di:

  • sfogliare database e tabelle;
  • crea, copia, rinomina, altera e rilascia database;
  • crea, copia, rinomina, altera e rilascia tabelle;
  • eseguire la manutenzione della tabella;
  • aggiungi, modifica e rilascia campi;
  • esegui qualsiasi istruzione SQL, anche query multiple;
  • crea, modifica e rilascia indici;
  • carica file di testo nelle tabelle;
  • creare e leggere dump di tabelle o database;
  • esporta i dati nei formati SQL, CSV, XML, Word, Excel, PDF e LaTeX;
  • amministrare più server;
  • gestire utenti e privilegi MySQL;
  • verifica le impostazioni del server e le informazioni di runtime con suggerimenti di configurazione;
  • verifica l'integrità referenziale nelle tabelle MyISAM;
  • crea query complesse utilizzando Query-by-example (QBE), automaticamente
  • collegare le tabelle richieste;
  • creare grafici PDF del layout del database;
  • cerca a livello globale in un database o in un sottoinsieme di esso;
  • trasforma i dati archiviati in qualsiasi formato utilizzando una serie di funzioni predefinite, come la visualizzazione di dati BLOB come immagini o link per il download;
  • gestire tabelle InnoDB e chiavi esterne;

Prerequisiti

Per seguire questo tutorial, hai bisogno di un sistema operativo Debian 10 in esecuzione sul tuo computer locale o su un server remoto.

Se stai cercando un VPS (Virtual Private Server), puoi creare un account su Vultr tramite il mio link di riferimento per ottenere $ 50 di credito gratuito (solo per i nuovi utenti). E se devi configurare phpMyAdmin con un nome di dominio, ti consiglio di acquistare i nomi di dominio da NameCheap perché il prezzo è basso e offrono gratuitamente la protezione della privacy di Whois.

Si presume che tu abbia già installato lo stack LAMP su Debian 10. In caso contrario, dai un'occhiata al seguente tutorial.

  • Come installare lo stack LAMP (Apache, MariaDB, PHP7.3) su Debian 10 Buster

Si noti che è necessario disporre dei privilegi di root durante l'installazione del software su Debian. Puoi aggiungere sudo all'inizio di un comando, oppure usa su - comando per passare all'utente root.

Detto questo, iniziamo con l'installazione di phpMyAdmin.

Fase 1:scarica phpMyAdmin su Debian 10 Server

phpMyAdmin non è incluso nel repository del software Debian 10, quindi dobbiamo scaricare manualmente il software. Vai alla pagina di download di phpMyAdmin per controllare l'ultima versione stabile. Quindi esegui il seguente comando per scaricarlo.

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

Suggerimento:puoi sempre utilizzare il formato URL sopra riportato per scaricare l'ultima versione stabile di phpMyAdmin. Sostituisci semplicemente 4.9.0.1 con il numero di versione più recente.

Quindi estrailo.

sudo apt install unzip

unzip phpMyAdmin-4.9.0.1-all-languages.zip

Sposta phpMyadmin 4.9 in /usr/share/ directory.

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

Quindi imposta l'utente del server web (www-data ) come proprietario di questa directory.

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

Fase 2:crea un database MariaDB e un utente per phpMyAdmin

Ora dobbiamo accedere alla console MariaDB e creare un database e un utente per phpMyAdmin. Per impostazione predefinita, il pacchetto MaraiDB su Debian utilizza unix_socket per autenticare l'accesso dell'utente, il che significa sostanzialmente che puoi utilizzare il nome utente e la password del sistema operativo per accedere alla console MariaDB. Quindi puoi eseguire il seguente comando per accedere senza fornire la password di root di MariaDB.

sudo mysql -u root

Quindi, crea un nuovo database per phpMyAdmin usando il seguente comando SQL. Questo tutorial lo chiama phpmyadmin , puoi utilizzare il nome che preferisci per il database.

CREATE DATABASE phpmyadmin DEFAULT CHARACTER SET utf8mb4 COLLATE utf8mb4_unicode_ci;

Il seguente comando SQL creerà il phpmyadmin utente del database e impostare una password, e allo stesso tempo concedere tutti i permessi del nuovo database al nuovo utente in modo che in seguito phpMyAdmin possa scrivere nel database. Sostituisci i testi rossi con la tua password preferita.

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

Svuota la tabella dei privilegi ed esci dalla console MariaDB.

FLUSH PRIVILEGES;

EXIT;

Fase 3:installa i moduli PHP richiesti e consigliati.

Esegui il comando seguente per installare i moduli PHP richiesti o consigliati da 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

Quindi riavvia Apache.

sudo systemctl restart apache2

Fase 4:crea la configurazione di Apache per phpMyAdmin

Se desideri accedere all'interfaccia web di phpMyAdmin da una sottodirectory, crea uno snippet di configurazione con il comando seguente.

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

Incolla il seguente testo nel file.

# 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>

Salva e chiudi il file. Quindi abilita questo snippet di configurazione.

sudo a2enconf phpmyadmin.conf

Abbiamo anche bisogno di creare la cartella temporanea phpMyAdmin.

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

Ricarica Apache per rendere effettive le modifiche.

sudo systemctl reload apache2

Ora puoi accedere all'interfaccia web di phpMyAdmin su

your-server-ip/phpmyadmin

Se phpMyAdmin è installato sul tuo computer Debian locale, puoi accedere all'interfaccia web di phpMyAdmin digitando il seguente testo nella barra degli indirizzi del browser.

localhost/phpmyadmin

Se la connessione viene rifiutata o non viene completata, potrebbe essere presente un firewall che impedisce le richieste HTTP. Se stai utilizzando iptables firewall, devi eseguire il comando seguente per aprire le porte TCP 80 e 443.

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

Se stai utilizzando il firewall UFW, esegui questo comando per aprire le porte TCP 80 e 443.

sudo ufw allow http
sudo ufw allow https

Fase 5:accedi a phpMyAdmin da un sottodominio

A volte, potresti voler utilizzare un sottodominio per accedere all'interfaccia web di phpMyAdmin. In questo modo, puoi abilitare HTTPS per crittografare il traffico.

Innanzitutto, dobbiamo creare un host virtuale Apache per phpMyAdmin. Lo snippet di configurazione phpMyAdmin esistente può essere utilizzato come modello. Copialo in un nuovo file.

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

Quindi modifica il nuovo file con un editor di testo a riga di comando, come Nano.

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

Aggiungi le seguenti righe all'inizio di questo file. Sostituisci pma.example.com con il tuo sottodominio preferito per phpMyAdmin. Non dimenticare di creare un record DNS A per questo sottodominio.

<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

Aggiungi la seguente riga alla fine di questo file.

</VirtualHost>

Salva e chiudi il file. (Per salvare un file nell'editor di testo Nano, premi Ctrl+O , quindi premere Invio per confermare. Per uscire, premi Ctrl+X .) Quindi abilita questo host virtuale.

sudo a2ensite phpmyadmin.conf

Ricarica il server web Apache per rendere effettiva questa modifica.

sudo systemctl reload apache2

Ora dovresti essere in grado di accedere all'interfaccia web di phpMyAdmin tramite

pma.example.com

Prima di inserire le credenziali utente nel form di login, abilitiamo HTTPS.

Fase 6:Abilita HTTPS su phpMyAdmin con Apache

Per proteggere l'interfaccia web di phpMyadmin, possiamo installare un certificato Let's Encrypt TLS gratuito. Esegui il comando seguente per installare il client Let's Encrypt (certbot) dal repository del software Debian 10.

sudo apt install certbot python3-certbot-apache

Python3-certbot-apache è il plugin Apache per Certbot. Ora esegui il comando seguente per ottenere e installare il certificato TLS.

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

Spiegazione:

  • –apache: Usa l'autenticatore e il programma di installazione di Apache
  • –accetto :Accetto i termini di servizio di Let's Encrypt
  • –reindirizzamento :aggiungi reindirizzamento 301.
  • –hsts :aggiungi l'intestazione Strict-Transport-Security a ogni risposta HTTP.
  • –staple-ocsp :Abilita la pinzatura OCSP.
  • –indispensabile :aggiunge l'estensione OCSP Must Staple al certificato.
  • -d flag è seguito da un elenco di nomi di dominio, separati da virgola. Puoi aggiungere fino a 100 nomi di dominio.
  • –e-mail :Email utilizzata per la registrazione e il contatto di recupero.

Ti verrà chiesto se desideri ricevere e-mail da EFF (Electronic Frontier Foundation). Dopo aver scelto Y o N, il tuo certificato TLS verrà automaticamente ottenuto e configurato per te, come indicato dal messaggio sottostante.

Fase 7:esegui lo script di installazione di phpMyAdmin

Inserisci quanto segue nella barra degli indirizzi del browser.

your-server-ip/phpmyadmin/setup

o

pma.example.com/setup

Fare clic su New Server pulsante per configurare un server.

Quindi fai semplicemente clic su Apply pulsante.

Quindi, fai clic sul pulsante Visualizza per mostrare il file di configurazione.

Nel /usr/share/phpmyadmin/ directory, crea il file config.inc.php.

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

Copia il contenuto di config.inc.php dalla pagina di configurazione di phpMyAdmin e incollarli in /usr/share/phpmyadmin/config.inc.php file.

Fase 8:Risolvi l'errore di accesso a phpMyAdmin

Ora, se provi ad accedere a phpMyAdmin con l'account root di MariaDB, potresti visualizzare il seguente errore.

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

e

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

Se accedi con l'utente phpmyadmin , non vedrai l'errore precedente. Tuttavia, l'utente phpmyadmin può essere utilizzato solo per gestire il phpmyadmin Banca dati. La causa dell'errore è che per impostazione predefinita l'utente root di MariDB è autenticato tramite il plugin unix_socket, invece di usare mysql_native_password collegare. Per risolvere questo problema, possiamo creare un altro utente amministratore e concedere tutti i privilegi al nuovo utente amministratore.

Accedi al server MariaDB dalla riga di comando.

sudo mysql -u root

Crea un utente amministratore con autenticazione tramite password.

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

Concedi tutti i privilegi su tutti i database.

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

Elimina i privilegi ed esci;

flush privileges;

exit;

Ora puoi accedere a phpMyAmin con admin account e gestisci tutti i database.

Fase 9:imposta l'archiviazione della configurazione di phpMyAdmin

Ora nel pannello di controllo di phpMyAdmin, puoi vedere un messaggio di avviso.

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.

Fare clic sul collegamento Scopri perché. Quindi fare clic sul collegamento Crea per creare tabelle in phpmyadmin banca dati.

Fase 10:limitazione dell'accesso alla directory /setup

Per limitare l'accesso alla directory /setup, possiamo abilitare l'autenticazione della password di base con il server web Apache. Eseguire il comando seguente per impostare una password per l'utente admin . /etc/apache2/htpasswd viene utilizzato per memorizzare nomi utente e password.

sudo htpasswd -c /etc/apache2/htpasswd admin

Quindi modifica il file di configurazione di Apache per phpMyAdmin

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

o

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

Aggiungi le seguenti righe.

# 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>

Salva e chiudi il file. Quindi ricarica Apache per rendere effettive le modifiche.

sudo systemctl reload apache2

Se accedi nuovamente allo script di configurazione di phpMyAdmin, ti verrà chiesto di inserire nome utente e password.

Abilita l'autenticazione a due fattori

Puoi anche rafforzare phpMyAdmin abilitando l'autenticazione a due fattori, che è una funzionalità aggiunta nella versione 4.8. Per abilitarlo, accedi a phpMyAdmin. Quindi vai su Settings -> Two-factor authentication e seleziona Applicazione di autenticazione (2FA) .

Dopo aver fatto clic su Configura autenticazione a due fattori pulsante, ti verrà presentato un codice QR, che devi scansionare con un'app di autenticazione a due fattori sul tuo telefono.

Google Authenticator è un'app 2FA popolare, ma consiglio FreeOTP, che è un'app 2FA open source sviluppata da Red Hat. Dopo aver inserito il codice di autenticazione generato dalla tua app 2FA, l'autenticazione a due fattori è abilitata. Se ora esci e riaccedi, devi inserire il codice di autenticazione oltre a nome utente e password.


Debian
  1. Come installare phpMyAdmin su Debian 10 (Buster)

  2. Installare phpMyAdmin con Apache su Debian 9 - Processo passo dopo passo?

  3. Installa phpMyAdmin su Ubuntu 20.04 con Apache

  4. Installa phpMyAdmin su Debian 11 con Apache

  5. Installa phpMyAdmin su Ubuntu 22.04 con Apache

Come installare phpMyAdmin con Apache (LAMP) su Ubuntu 20.04

Come installare phpMyAdmin su Debian 11 Bullseye (Apache)

Come installare phpMyAdmin su Debian 10 Buster

Come installare PostgreSQL su Debian 10 Buster

Come installare phpMyAdmin con Nginx su Debian 11

Come installare WordPress con LAMP su Debian 10