Apache , noto anche come server HTTP Apache, è stata una delle applicazioni server Web più utilizzate a livello globale negli ultimi decenni. È un software applicativo web gratuito e open source gestito da Apache Software Foundation . Apache fornisce alcune potenti funzionalità con moduli caricabili dinamicamente, facile integrazione con altri software e gestione di file statici, tra le altre funzionalità popolari.
Nel seguente tutorial imparerai come installare Apache Web Server su Debian 11 Bullseye.
Prerequisiti
- Sistema operativo consigliato: Debian 11 Bullseye
- Account utente: Un account utente con privilegi sudo o accesso root (comando su) .
Aggiornamento del sistema operativo
Aggiorna il tuo Debian 11 Bullseye sistema operativo per assicurarsi che tutti i pacchetti esistenti siano aggiornati:
sudo apt update && sudo apt upgrade
Accesso root o sudo
Per impostazione predefinita, quando crei il tuo account all'avvio con Debian rispetto ad altre distribuzioni, non riceve automaticamente lo stato sudoers. Devi avere accesso alla password root per usare il comando su oppure visita il nostro tutorial su Come aggiungere un utente a Sudoer su Debian.
Il tutorial utilizzerà il comando sudo e supponendo che tu abbia lo stato sudo . Se non hai impostato un utente sudo, usa il seguente comando per accedere a root per continuare.
su
Metodo 1. Installa Apache dal repository Debian
La prima opzione per installare Apache consiste nell'usare il repository Debian predefinito. Questo è più pratico per la maggior parte degli utenti in quanto è molto stabile e sicuro.
Per installare Apache, apri il tuo terminale ed esegui il seguente comando:
sudo apt install apache2 -y
Quindi, verifica che l'installazione sia riuscita verificando la versione build di Apache:
sudo apache2 --version
Esempio di output:
Server version: Apache/2.4.51
Verifica se Apache2 funziona correttamente utilizzando il seguente systemctl comando:
systemctl status apache2
Esempio di output se tutto è a posto:

Metodo 2. Installa l'ultimo Apache dal repository Ondřej Surý
Per impostazione predefinita, Apache è disponibile all'interno dei repository software di Debian , facilitando l'installazione. Tuttavia, come molti sanno con Debian, spesso può mancare di ciò che è attuale, non tanto per i rischi per la sicurezza. Tuttavia, mancano le funzionalità e i miglioramenti più recenti.
Si consiglia agli utenti che desiderano l'ultima versione di Apache di installare la versione di Apache 2 di Ondřej Surý , che è il più aggiornato e pre-costruito con moduli extra ampiamente utilizzati.
Innanzitutto, se non hai curl installato, usa il seguente comando:
sudo apt install curl -y
Per aggiungere il Repository, usa il seguente comando nel tuo terminale:
curl -sSL https://packages.sury.org/apache2/README.txt | sudo bash -x
Aggiorna il tuo repository per riflettere la nuova modifica:
sudo apt update
Ora che hai installato il repository Apache e aggiornato l'elenco dei repository, installa Apache2 con quanto segue:
sudo apt install apache2 -y
L'installazione installerà tutte le dipendenze necessarie.
Una volta installata, conferma la versione eseguendo il seguente comando:
apache2 -v
Esempio di output:
Server version: Apache/2.4.51
Nota che entrambi i repository si trovano sulla stessa versione al momento del tutorial a causa di un aggiornamento URGENT CVE. Normalmente, il repository Ondřej Surý è sempre in anticipo rispetto a Debian 11 predefinito.
Verifica se Apache2 funziona correttamente utilizzando il seguente systemctl comando:
systemctl status apache2
Esempio di output se tutto è a posto:

Facoltativo:configura UFW Firewall per Apache
Gli utenti Debian che hanno installato UFW dovranno modificare le regole UFW per consentire l'accesso esterno alle porte Web predefinite. Fortunatamente, durante l'installazione, Apache si registra con UFW per fornire alcuni profili che possono essere utilizzati per abilitare o disabilitare l'accesso, rendendo la configurazione facile e veloce.
Per impostazione predefinita, UFW non è installato. Se desideri installare UFW, esegui il seguente comando nel tuo terminale:
sudo apt install ufw -y
Quindi, abilita UFW. Quando abiliti il firewall, negherà tutto in entrata e consentirà tutto in uscita per impostazione predefinita.
sudo ufw enable
Innanzitutto, elenca i profili dell'applicazione per vedere i profili Apache disponibili con il seguente comando:
sudo ufw app list
Esempio di output:
Available applications:
Apache
Apache Full
Apache Secure
Dall'output sopra, hai tre opzioni di profilo tra cui scegliere. Per scomporlo, Apache gira sulla porta 80 (HTTP), Apache Secure gira sulla porta 443 (HTTPS) e Apache Full è una combinazione di consentire entrambi. Il più comune è Apache Full o Apache Secure.
Per il tutorial, poiché non abbiamo impostato SSL, abiliteremo il profilo (Apache) con il seguente comando:
sudo ufw allow 'Apache'
Esempio di output:
Rule added
Rule added (v6)
Come sopra, le regole sono state aggiunte sia per IPV4 che per IPV6. Successivamente, puoi disabilitare questo profilo e abilitare solo protetto o disabilitare la regola Apache e utilizzare invece la regola Apache Full.
Verifica server Web Apache
Ora che hai installato e configurato il firewall UFW, è il momento di provare se Apache 2 è raggiungibile e funziona correttamente richiedendo una pagina.
Puoi accedere alla pagina di destinazione predefinita di Apache per verificare se il software funziona correttamente tramite l'indirizzo IP del tuo server. Per scoprirlo, se non lo sai, usa il seguente comando qui sotto:
hostname -I
Dovresti recuperare l'indirizzo IP interno su cui si trova il server come esempio:
###EXAMPLE ONLY###
192.168.50.15
È possibile che vengano restituiti da 2 a 3 risultati. Prova ognuno fino a trovare l'indirizzo IP corretto.
Se hai bisogno del tuo indirizzo IP pubblico (esterno), usa invece il seguente comando:
curl -4 icanhazip.com
Potrebbe essere necessario installare il pacchetto CURL se manca. Per fare ciò, esegui il seguente comando:
sudo apt install curl -y
Una volta che hai l'indirizzo IP del tuo server, apri il tuo browser Internet preferito e inserisci quanto segue:
http://your_server_ip
Dovresti ottenere la seguente pagina nel tuo browser Internet:

Congratulazioni, hai installato il server web Apache 2 e stai attualmente lavorando.
Il passaggio successivo consiste nel configurare host virtuali.
Crea e/o configura host virtuali per Apache
Utilizzando il server Web Apache, puoi creare host virtuali per gestire le configurazioni per più di un dominio in esecuzione su un singolo server. Se hai già usato Nginx, è l'equivalente dei blocchi del server. Nell'esempio seguente, il tutorial creerà un dominio example-domain.com che sostituirai con il tuo nome di dominio.
Per impostazione predefinita, Apache su Debian 11 ha un blocco server abilitato per impostazione predefinita che è configurato per servire i documenti da /var/www/html directory. Se gestisci un sito Web, puoi modificare questo blocco server per adattarlo al tuo. Tuttavia, se stai ospitando più siti web, devi creare una nuova struttura di directory per i tuoi vari domini.
Crea e/o configura directory
Innanzitutto, lascia /var/www/html directory intatta come directory predefinita, quindi crea una nuova directory, ad esempio-domain.com, come di seguito:
sudo mkdir /var/www/example_domain
Il passaggio successivo consiste nell'assegnare la proprietà della directory con la variabile di ambiente $USER:
sudo chown -R $USER:$USER /var/www/example_domain
Di solito, le autorizzazioni di root web devono essere impostate correttamente e puoi verificarle utilizzando il comando -ls l :
ls -l /var/www/example_domain
Esempio di output:
drwxr-xr-x 2 joshua joshua 4096 Oct 10 11:46 example_domain
Come puoi vedere, abbiamo il permesso di drwxr-xr-x, che è l'equivalente di chmod 755 . Se non disponi di questo set di autorizzazioni, esegui il comando seguente:
sudo chmod -R 755 /var/www/example_domain
Ora crea una pagina di esempio index.html usando il tuo editor di testo preferito. Il tutorial utilizzerà nano come di seguito:
sudo nano /var/www/example_domain/index.html
Nel file, copia e incolla il seguente codice:
<html>
<head>
<title>Welcome to Website!</title>
</head>
<body>
<h1>Success! The virtual host is working! You did not mess it up.</h1>
</body>
</html>
Salva il file (CTRL+O) , quindi esci da (CTRL+X) .
Crea host virtuale
Ora che hai creato una pagina di destinazione e impostato proprietà e autorizzazioni corrette. Ora puoi procedere con la creazione di un file host virtuale. Per impostazione predefinita, tutti i file dell'host virtuale dovranno trovarsi in /etc/apache2/sites-available/ directory.
Per prima cosa, usa il tuo editor di testo preferito per creare un file di configurazione che si trova in /etc/apache2/sites-available/example_domain.conf come di seguito:
sudo nano /etc/apache2/sites-available/example_domain.conf
Ora copia e incolla quanto segue nel file di blocco di configurazione, nota di sostituire il tuo Nomeserver, Aliasserver, e Radice del documento con il tuo:
<VirtualHost *:80>
ServerAdmin webmaster@localhost
ServerName example_domain
ServerAlias www.example_domain
DocumentRoot /var/www/example_domain
ErrorLog ${APACHE_LOG_DIR}/error.log
CustomLog ${APACHE_LOG_DIR}/access.log combined
</VirtualHost>
Nota, ricorda di non dimenticare di modificare le direttive Server richieste con le tue.
Salva il file di configurazione utilizzando (CTRL+O) ed esci con (CTRL+X) .
Abilita host virtuale
Ora che hai pronto il file di configurazione dell'host virtuale, è il momento di abilitarlo. Con Apache, a differenza di Nginx, dove creeresti un collegamento simbolico usando il comando ln -s, Apache usa i suoi strumenti, come mostrerà il tutorial qui sotto:
Innanzitutto, disabilita il file di blocco del server installato predefinito esistente 000-default.conf con il comando a2dissite:
sudo a2dissite 000-default.conf
Ora abilita il tuo file host virtuale con a2ensite comando:
sudo a2ensite example_domain.conf
Ora, come la maggior parte delle applicazioni per server web, Apache ha un funzionamento a secco funzione. Prima di renderlo attivo, prova il tuo file di configurazione usando il seguente comando:
sudo apache2ctl configtest
Se tutto funziona correttamente, l'output di esempio dovrebbe essere:
Syntax OK
Ora riavvia il server web Apache per rendere attivo il tuo nuovo host virtuale con il seguente comando:
sudo systemctl restart apache2
Attualmente Apache dovrebbe servire la pagina di destinazione che hai creato per il tuo nuovo dominio. Per verificarlo, apri il tuo browser Internet e digita il tuo nome di dominio HTTP://example_domain dove dovresti ottenere la seguente pagina di destinazione che hai creato nel file index.html:

Congratulazioni, hai creato con successo il tuo host virtuale e l'hai fatto funzionare correttamente sul tuo dominio.
Proteggi Apache con il certificato gratuito SSL Let's Encrypt
Idealmente, dovresti eseguire il tuo Apache su HTTPS utilizzando un certificato SSL . Il modo migliore per farlo è utilizzare Let's Encrypt, un'autorità di certificazione gratuita, automatizzata e aperta gestita dal Internet Security Research Group (ISRG) senza scopo di lucro .
Innanzitutto, installa il pacchetto certbot come segue:
sudo apt install python3-certbot-apache -y
Una volta installato, esegui il seguente comando per avviare la creazione del tuo certificato:
sudo certbot --apache --agree-tos --redirect --hsts --staple-ocsp --email [email protected] -d www.example.com
Questa è la configurazione ideale che include i reindirizzamenti HTTPS 301 forzati, l'intestazione Strict-Transport-Security e la pinzatura OCSP. Assicurati solo di adattare l'e-mail e il nome di dominio alle tue esigenze.
Ora il tuo URL sarà https://www.example.com invece di HTTP://www.example.com .
Nota, se utilizzi il vecchio URL HTTP , reindirizzerà automaticamente a HTTPS .
Gestione del servizio Apache
Ora che Apache è in esecuzione correttamente sul tuo server, alcune note chiave di gestione sono le seguenti.
Registri del server Apache
I log del server Apache possono essere trovati nella directory /var/log/apache2/ con access.log e error.log essendo rispettosamente l'accesso predefinito e i nomi di errore forniti. Questo può essere cambiato in altri nomi nel file di configurazione dell'host virtuale in futuro.
Comandi di Apache
I seguenti comandi che utilizzerai senza dubbio nella tua gestione quotidiana quando lavori con Apache. Alcuni dei più comuni sono:
Per fermare il server web Apache:
sudo systemctl stop apache2
Per avviare il server web Apache:
sudo systemctl start apache2
Per riavviare il server web Apache:
sudo systemctl restart apache2
Per ricaricare il server web Apache (Per modifiche minori che non richiedono un riavvio) :
sudo systemctl reload apache2
Per disabilitare Apache all'avvio del server:
sudo systemctl disable apache2
Per avviare Apache all'avvio del server (abilitato automaticamente all'installazione) :
sudo systemctl enable apache2
Come aggiornare Apache
Per aggiornare Apache in futuro, questo viene fatto con il comando che hai usato per verificare se il tuo sistema è aggiornato. Nota, crea sempre backup o immagini se hai un servizio Apache che esegue servizi critici. Di solito è abbastanza sicuro aggiornare, ma a volte possono verificarsi bug come qualsiasi aggiornamento software.
Per aggiornare Apache, usa il seguente comando:
sudo apt update
Se è disponibile un aggiornamento di Apache, utilizzare il comando:
sudo apt upgrade
Come rimuovere (disinstallare) Apache
Per rimuovere Apache se non lo usi più, puoi farlo usando il seguente comando:
sudo apt autoremove apache2 --purge
Questo comando rimuoverà anche tutte le dipendenze inutilizzate fornite con l'installazione.