Seleziona una pagina

Come configurare Apache2, MariaDB, php8 e phpMyAdmin su debian ed ubuntu

Apr 23, 2024Tutorial

Home 9 Tutorial 9 Come configurare Apache2, MariaDB, php8 e phpMyAdmin su debian ed ubuntu
Revisione del 23 aprile 2024

Una guida su come configurare il proprio web server debian o ubuntu, installando apache2, phpMyAdmin, MariaDB e php8.

Procedura testata con successo sia su Debian 12 che su Ubuntu 22.04.

Nota Bene: la presente guida funziona solo se avete accesso SSH al server e, in caso positivo, solo se il vostro utente è un amministratore.

Per connetterci al server Debian / Ubuntu, esistono diverse strategie: su Mac e su Linux si può utilizzare direttamente il terminale, mentre su Windows è consigliabile utilizzare uno strumento chiamato PuTTY, scaricabile da QUI.

Una volta effettuato il login al server, se non siete già utenti root, digitate il comando:

sudo su

Per ottenere i privilegi elevati. Fatto ciò, possiamo iniziare a configurare il nostro web server.

La prima cosa da fare è aggiornare i repository con il comando:

 

apt update

 

Se il comando indica che ci sono pacchetti da aggiornare, sarebbe bene aggiornarli. Questa operazione andrebbe fatta con attenzione se il server è già utilizzato anche per altre applicazioni. Se siete sicuri che l’operazione non causi malfunzionamenti, potete digitare:

apt upgrade -y

Bisogna quindi installare alcuni pacchetti necessari per i passi successivi:

apt install ca-certificates apt-transport-https lsb-release gnupg curl nano unzip -y

A seconda che ci troviamo su Debian o su Ubuntu, dobbiamo procedere diversamente.

Debian

Digitate il seguente comando per aggiungere le chiavi necessarie al funzionamento del repository PHP:

curl -fsSL https://packages.sury.org/php/apt.gpg -o /usr/share/keyrings/php-archive-keyring.gpg

Quindi aggiungete il repository con il comando:

echo "deb [signed-by=/usr/share/keyrings/php-archive-keyring.gpg] https://packages.sury.org/php/ $(lsb_release -sc) main" > /etc/apt/sources.list.d/php.list

 

Ubuntu

Installiamo il pacchetto per gestire i repository con il seguente comando:

apt install software-properties-common -y

E quindi aggiungiamo il repository:

add-apt-repository ppa:ondrej/php

 

Da qui in poi la procedura è identica sia per Debian che per Ubuntu.

Installazione di Apache2, MariaDB e php

Lanciamo il comando update per caricare i nuovi repository appena installati:

apt update

Ora possiamo procedere ad installare Apache

apt install apache2 -y

Installiamo PHP8 ed i suoi principali moduli:

apt install php8.2 php8.2-cli php8.2-common php8.2-curl php8.2-gd php8.2-intl php8.2-mbstring php8.2-mysql php8.2-opcache php8.2-readline php8.2-xml php8.2-xsl php8.2-zip php8.2-bz2 libapache2-mod-php8.2 -y

Se desiderate installare l’ultima versione di PHP, al momento la 8.3, o una versione più vecchia come la 7.4, è sufficiente fare un trova e sostituisci del comando mettendo al posto di 8.2 la versione di PHP desiderata.

Successivamente, installiamo MariaDB come segue:

apt install mariadb-server mariadb-client -y

Ora dobbiamo mettere in sicurezza l’installazione di MariaDB usando il comando:

mysql_secure_installation

Il comando produce un risultato leggermente diverso a seconda della versione del sistema operativo in uso (Debian 10 o inferiori, Ubuntu, o Debian 11 e superiori). Vediamo nel dettaglio:

Generalmente su Debian 10 o inferiori e vecchie versioni di Ubuntu

  • Avviate il comando mysql_secure_installation per completare la configurazione del vostro server MariaDB.
  • Alla prima domanda riguardante la password corrente, non dovete digitare nulla, premete solo invio.
  • Confermate anche la domanda successiva sul cambio della password dell’utente root premendo invio.
  • Ora dovete impostare una password per l’utente root di MariaDB. Durante l’inserimento, non verranno visualizzati caratteri, ma è normale.
  • Confermate tutte le domande successive (eliminazione dell’utente anonimo, disabilitazione del login root da remoto per motivi di sicurezza, rimozione del database di test e aggiornamento dei privilegi/permessi) premendo sempre invio.
  • A questo punto, il server MariaDB è completamente installato e configurato.

Debian 11 o superiori e nuove versioni di Ubuntu

  • Avviate il comando mysql_secure_installation per completare la configurazione del vostro server MariaDB.
  • Alla prima domanda riguardante la password corrente, non dovete digitare nulla, premete solo invio.
  • Alla domanda successiva riguardo al passaggio all’autenticazione tramite Unix socket, digitate “n” e premete invio.
  • Confermate anche la domanda successiva sul cambio della password dell’utente root premendo invio.
  • Ora dovete impostare una password per l’utente root di MariaDB. Durante l’inserimento, non verranno visualizzati caratteri, ma è normale.
  • Confermate tutte le domande successive (eliminazione dell’utente anonimo, disabilitazione del login root da remoto per motivi di sicurezza, rimozione del database di test e aggiornamento dei privilegi/permessi) premendo sempre invio.
  • A questo punto, il server MariaDB è completamente installato e configurato.

Installazione di phpMyAdmin

Ci spostiamo nella directory /usr/share usando il comando:

cd /usr/share

Ora scarichiamo l’ultima versione di phpMyAdmin dal sito ufficiale con il seguente comando:

wget https://www.phpmyadmin.net/downloads/phpMyAdmin-latest-all-languages.zip -O phpmyadmin.zip

Scompattiamo l’archivio direttamente nella cartella dove ci troviamo:

unzip phpmyadmin.zip

Una volta scompattato il pacchetto, cancelliamo il file zip appena scaricato per mantenere un po’ d’ordine nella cartella stessa:

rm phpmyadmin.zip

Adesso rinominiamo il pacchetto scaricato in phpmyadmin come segue:

mv phpMyAdmin-*-all-languages phpmyadmin

Assegniamo i permessi corretti alla cartella phpmyadmin:

chmod -R 0755 phpmyadmin

E andiamo a modificare il file di configurazione con il comando:

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

Il presente comando aprirà il file permettendoci di modificarlo. Verosimilmente il file sarà vuoto, copiamo ed incoll

# phpMyAdmin Apache configuration

Alias /phpmyadmin /usr/share/phpmyadmin

<Directory /usr/share/phpmyadmin>
    Options SymLinksIfOwnerMatch
    DirectoryIndex index.php
</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>

Modificando la prima riga /phpmyadmin  con un altro nome, ad esempio  /mydatabase, si modificare l’url di accesso di PhpMyAdmin stesso.

Per chiudere l’editor e salvare le modifiche premete CTRL+X seguito da Y, se la nostra installazione del sistema operativo è in inglese, da S se in italiano, e quindi premete invio.

Adesso dobbiamo caricare la configurazione appena creata e lo facciamo con il comando:

a2enconf phpmyadmin

seguito da

systemctl reload apache2

All’interno della directory phpmyadmin dobbiamo andare a creare una cartella per gestire i files temporanei che chiameremo tmp, con il comando:

mkdir /usr/share/phpmyadmin/tmp/

Settiamo i permessi di questa cartella:

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

Ora dobbiamo abilitare il file di configurazione di phpMyAdmin con il seguente comando:

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

prima di andare a modificare il file di configurazione config.inc.php appena creato dobbiamo andare a generare una chiave univoca che ci servirà in seguito, pertanto digitiamo il comando:

apt install openssl -y

Una volta finita l’installazione diamo:

openssl rand -base64 32

Dopo aver dato invio a questo comando il terminale genererà una stringa di 32 caratteri che dobbiamo conservare per lo step successivo. Ora diamo il comando:

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

Si aprirà il contenuto del file a terminale, scendiamo fino alla linea:

/**
 * This is needed for cookie based authentication to encrypt the cookie.
 * Needs to be a 32-bytes long string of random bytes. See FAQ 2.10.
 */
$cfg['blowfish_secret'] = 'Qui-ci-va-la-stringa-precedentemente-generata'; /* YOU MUST FILL IN THIS FOR COOKIE AUTH! */

Dove c’è scritto Qui-ci-va-la-stringa-precedentemente-generata incolliamo la stringa testuale generata con il comando openssl rand -base64 32.

Salviamo il file premendo CTRL+X, seguito da Y (se il sistema operativo è in inglese) o S (se il sistema operativo è in italiano).

Altre info utili

Fino a Debian 10 così come su Ubuntu, non si può accedere a MariaDB né a phpMyAdmin con l’utente root, cosa invece possibile nelle versioni successive di Debian.
Per abilitare l’accesso all’utente root in queste versioni, procedete con i seguenti comandi:

Loggarsi a MariaDB digitando:

mysql -u root

Eseguire il seguente comando:

UPDATE mysql.user SET plugin = 'mysql_native_password' WHERE user = 'root' AND plugin = 'unix_socket';

Quindi digitare

FLUSH PRIVILEGES;

e poi

exit

A questo punto il server Debian/Ubuntu è pienamente configurato. PhpMyAdmin è accessibile all’indirizzo impostato nel file di configurazione, per cui se l’avete lasciato invariato a indirizzoipserver/phpmyadmin dove indirizzoipserver può essere anche il nome a dominio assegnato al vostro server

Questa guida trae ispirazione da questa pagina QUI. Ho deciso di tradurre il contenuto in italiano, poiché l’ho trovato molto interessante e utile, tanto da renderlo uno dei miei principali riferimenti. Ho integrato alcune delle operazioni che normalmente eseguo quando installo e configuro un server web.

La procedura funziona bene per installare phpyadmin  su ubuntu e su debian, ma dovrebbe funzionare perfettamente su qualsiasi derivata debian.