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.