Vuoi imparare a sviluppare siti web oppure configurare in autonomia un server virtuale (VPS) per lanciare il tuo progetto su Internet? Ebbene: il primo passo da compiere è l'installazione del server web, ovvero il programma che si occupa di servire le pagine web ai visitatori. In questa guida passo passo vedremo dunque come installare Apache HTTP Server su PC, server o VPS Linux con Ubuntu

Trattazione parzialmente riscritta e aggiornata a fine 2024 per funzionare al meglio con Ubuntu 24.04

Nel resto dell'articolo ci riferiremo al programma "Apache HTTP Server" chiamandolo (impropriamente) solo "Apache", per brevità e per conformarci al nome usato nel quotidiano.

La procedura seguente è stata testata su Ubuntu 24.04, 22.04 e 20.04 (sia "Desktop", sia "Server"), ma è analoga per tutte le distribuzioni derivate (fra le quali "Mint") e, presumibilmente, per le iterazioni successive.

In questo articolo ci concentreremo, nello specifico, sull'installazione di Apache su Ubuntu (Linux). Per la procedura equivalente incentrata su Windows, fai riferimento a quest'altra guida: Come installare Apache su Windows

Guida definitiva: come installare Apache Ubuntu (server web Linux, linea comando, VPS) (video)

Se invece preferisci NGINX, guarda quest'altro articolo dedicato: Come installare NGINX su Ubuntu.

Preparare il server

Per seguire questa guida hai bisogno di un sistema con Ubuntu, preferibilmente la più recente versione "LTS", sul quale installare Apache. Alcune soluzioni sono:

  • installarlo direttamente sul PC locale, se già monta Ubuntu "desktop"
  • predisporre una macchina virtuale (VM)
  • predisporre un container con Docker
  • installare Ubuntu Server su un vecchio PC, poi installare Apache su quello

Sono tutte soluzioni valide, se stai solo "smanettando" o per imparare, ma che richiedono comunque un po' di tempo e che si riveleranno poco pratiche quando vorrai rendere accessibile il tuo sito pubblicamente da Internet.

La soluzione migliore è l'acquisto di un Virtual Private Server (VPS), cioè una macchina virtuale in cloud fornita da un operatore di settore. Si parla di una spesa di pochi euro al mese, a fronte della quale sarai operativo immediatamente.

Connessione SSH

Devi poi connetterti al server sul quale vuoi installare Apache tramite SSH. Abbiamo visto la procedura completa in questo approfondimento dedicato:

» Leggi: SSH con Windows, Linux, Mac: la Guida Definitiva

Guida definitiva: come installare Apache Ubuntu (server web Linux, linea comando, VPS) (video) - guida ssh spotlight

Valuta di configurare la connessione SSH per entrare senza password. Non è indispensabile, ma sicuramente ti semplifica molto la vita:

» Leggi: [guida] Come creare una chiave SSH da PC Windows, Linux, Mac e accedere ai server senza password

Da qui in poi daremo per scontato che tu abbia predisposto il tuo server e che ti sia connesso con successo in SSH.

Installare Apache su Linux Ubuntu: Installazione completamente automatica

Da questa situazione, puoi installare Apache HTTP Server su Ubuntu in modo completamente automatico impartendo questo singolo comando:

sudo apt update && sudo apt install curl -y && curl -sL https://turbolab.it/scarica/463 | sudo bash

In caso fosse richiesta la password, digita quella associata al tuo utente Linux sul server

Guida definitiva: come installare Apache Ubuntu (server web Linux, linea comando, VPS) (video)

Il comando appena impartito esegue uno script (visualizzabile qui) che svolge in sequenza tutte le tediose operazioni (presentate di seguito) che, altrimenti, dovresti svolgere manualmente.

Al termine, puoi lanciare in successione questi due comandi dal server stesso per tentare di connetterti:

curl http://127.0.0.1

curl -k https://127.0.0.1

Se, in risposta, viene visualizzato codice HTML, significa che l'installazione è riuscita

Guida definitiva: come installare Apache Ubuntu (server web Linux, linea comando, VPS) (video)

Tecnicamente, i messaggi di risposta che vedi sono errori (più precisamente: il primo è un redirect e il secondo è un errore), ma, in questo momento, non importa. Quello che conta è che il server web risponda, come effettivamente avviene!

Nei prossimi paragrafi vedremo la procedura alternativa per svolgere manualmente gli stessi passaggi che lo script ha eseguito automaticamente. Se hai usato lo script, puoi saltare tutto e riprendere dal paragrafo Attivare un nuovo sito, più sotto.

Installare Apache su Linux Ubuntu, Passo 1: Diventare root

La procedura tramite script descritta ai paragrafi precedenti installa Apache automaticamente ed è la modalità che, personalmente, raccomando. Se però preferisci installare Apache manualmente, puoi ottenere un risultato analogo seguendo i passaggi forniti di seguito.

Per prima cosa, devi acquisire i privilegi massimi diventando root sul server nel quale desideri installare Apache. Il comando è:

sudo -s

In caso fosse richiesta la password, digita quella associata al tuo utente Linux sul server

Guida definitiva: come installare Apache Ubuntu (server web Linux, linea comando, VPS) (video)

» Leggi anche: Sudo senza password con Ubuntu: come disabilitare la richiesta di password quando si eseguono comandi come root (video)

Installare Apache su Linux Ubuntu, Passo 2: Disinstallare... Apache

Prima di proseguire, è opportuno verificare che Apache non sia già stato installato, magari per errore. Il modo più efficace di farlo è tramite il gestore dei pacchetti:

dpkg --list | grep apache2

Guida definitiva: come installare Apache Ubuntu (server web Linux, linea comando, VPS) (video)

Se il comando non mostra alcuna risposta, possiamo tranquillamente andare oltre perché Apache non è installato.

In caso contrario, è fondamentale disinstallare il pacchetto corrente:

apt purge --auto-remove apache2* -y

Guida definitiva: come installare Apache Ubuntu (server web Linux, linea comando, VPS) (video)

Raccomando caldamente anche di eliminare eventuali file di configurazione relativi alla precedente installazione, di modo da partire con una situazione pulita:

rm -rf /etc/apache2

Installare Apache su Linux Ubuntu, Passo 3: Installare i pre-requisiti

Apache richiede la presenza di alcuni pacchetti, che devono essere installati manualmente. Il comando per ottenerli tutti in un colpo solo, insieme anche ad altre utility che serviranno fra poco, è il seguente:

apt update && apt install software-properties-common curl gnupg2 ca-certificates lsb-release ubuntu-keyring openssl zip unzip nano -y

Guida definitiva: come installare Apache Ubuntu (server web Linux, linea comando, VPS) (video)

Installare Apache su Linux Ubuntu, Passo 4: Installazione del pacchetto

Procediamo ora materialmente ad installare Apache:

apt install apache2 -y

Guida definitiva: come installare Apache Ubuntu (server web Linux, linea comando, VPS) (video)

Installare Apache su Linux Ubuntu, Passo 5: Impostare la direttiva ServerName

Impartire il comando seguente non è strettamente necessario, ma previene il fastidioso avviso AH00558: apache2: Could not reliably determine the server's fully qualified domain name nei log e nel terminale. Personalmente, raccomando di farlo:

echo "ServerName $(hostname)" > /etc/apache2/conf-available/server-name.conf && a2enconf server-name

Guida definitiva: come installare Apache Ubuntu (server web Linux, linea comando, VPS) (video)

Installare Apache su Linux Ubuntu, Passo 6: Prima esecuzione

Apache è ora installato e dovrebbe già essersi avviato automaticamente. È comunque opportuno riavviare il servizio, di modo da verificare esplicitamente che sia tutto OK:

service apache2 restart

Installare Apache su Linux Ubuntu, Passo 7: Test del servizio

Il web server è ora attivo e mostra una pagina di benvenuto "standard" a tutti i client che vi si colleghino. Per verificarlo, impartisci questo comando dal server stesso:

curl http://localhost

Se la risposta è composta da una serie di tag HTML fra i quali si legge qualcosa di simile a It works!, tutto sta funzionando correttamente

Installare Apache su Linux Ubuntu, Passo 8: Attivazione della modalità "ad eventi"

Apache HTTP Server è dotato di molteplici MPM (Multi-Processing Modules). Possiamo pensare agli MPM come "motori" intercambiabili: tutti svolgono lo stesso compito (accettare e rispondere alle richieste dei browser web e degli altri client che si collegano), ma ognuno lo fa in modo diverso, con vantaggi e svantaggi.

Gli MPM disponibili ad Apache in ambiente Linux sono:

  • prefork: Apache crea un elevato numero di processi all'avvio del servizio, e ogni processo risponde a una richiesta. È una modalità semplice, stabile e molto sicura, ma occupa tantissima RAM, limitando il numero di richieste alle quali il server è in grado di rispondere contemporaneamente
  • worker: Apache crea un numero limitato di processi, e ogni processo utilizza molteplici thread (uno per ogni connessione). È una buona soluzione, che limita fortemente il consumo di memoria, ed è l'MPM "standard" con cui Apache era configurato nel recente passato
  • event: è l'MPM più veloce e moderno. Volendo banalizzare al massimo: "event" è assimilabile a "worker", ma qui i thread che accettano le richieste le passano ad altri thread per l'elaborazione asincrona

Per maggiori informazioni, vedi la pagina "Module Index" della documentazione ufficiale.

La configurazione ottimale prevede l'uso dell'MPM "event". Assicuriamoci dunque che sia attivo impartendo:

apachectl -M | grep mpm

Guida definitiva: come installare Apache Ubuntu (server web Linux, linea comando, VPS) (video)

Se la risposta è simile a mpm_event_module (shared), il sistema sta già utilizzando l'MPM ottimale e possiamo andare oltre.

Se invece vengono citati gli altri MPM, è opportuno disattivarli in favore di "event". Il comando per farlo è il seguente:

a2dismod mpm_prefork mpm_worker && a2enmod mpm_event

Guida definitiva: come installare Apache Ubuntu (server web Linux, linea comando, VPS) (video)

Installare Apache su Linux Ubuntu, Passo 9: Attivare HTTPS, Rewrite, HTTP/2

Apache è dotato di una serie di funzionalità indispensabili per il web moderno, che, però, non sono attive di default. Per attivare il supporto ad HTTP/2, "URL rewrite" e HTTPS, impartire il comando seguente:

a2enmod http2 rewrite ssl

Guida definitiva: come installare Apache Ubuntu (server web Linux, linea comando, VPS) (video)

Una nota per i più attenti: Apache parla di "SSL" per intendere la comunicazione HTTPS. Allo scopo, una volta si usava il protocollo SSL (da qui il termine utilizzato da Apache), mentre oggi utilizza per lo più TLS. Apache supporta comunque nativamente TLS... chiamandolo SSL.

Installare Apache su Linux Ubuntu, Passo 10: Generare un certificato per attivare HTTPS

Il web moderno funziona via HTTPS (con la "s" finale), e quindi anche il nostro server web deve fare lo stesso. Generiamo dunque un certificato HTTPS da utilizzare con tutti i siti erogati dal nostro server. Tale certificato, bene inteso, sarà self-signed, ovvero "di test", e farà scattare un avviso nel browser web: ma è comunque meglio rispetto ad utilizzare HTTP "semplice", e sarà comunque facile sostituirlo con un certificato "reale" in seguito.

Prima creiamo la cartella:

mkdir -p /usr/local/turbolab.it/webstackup/autogenerated

[ nota: puoi scegliere un percorso qualsiasi, ma nel seguito utilizzeremo quello indicato nell'esempio. Raccomando di non modificarlo, per il momento, altrimenti diventa difficile seguire la guida ]

Poi generiamo una chiave crittografica:

openssl genrsa -out /usr/local/turbolab.it/webstackup/autogenerated/openssl-private-key.pem

Infine, usiamola per generare il certificato HTTPS vero e proprio:

openssl req -x509 -out /usr/local/turbolab.it/webstackup/autogenerated/https-localhost.crt -key /usr/local/turbolab.it/webstackup/autogenerated/openssl-private-key.pem -days 3650 -new -nodes -sha256 -subj "/CN=localhost"

Visualizziamo ora il contenuto della cartella:

ls -la /usr/local/turbolab.it/webstackup/autogenerated

Guida definitiva: come installare Apache Ubuntu (server web Linux, linea comando, VPS) (video)

Troverai due file:

  • https-localhost.crt: è il certificato HTTPS vero e proprio
  • openssl-private-key.pem: è la chiave crittografica utilizzata per generarlo

Ci serviranno entrambi più avanti.

Installare Apache su Linux Ubuntu, Passo 11: Redirect automatico da HTTP a HTTPS

Facciamo ora in modo che tutte le richieste in HTTP inviate al nostro server generino un redirect verso l'equivalente sito in HTTPS. Allo scopo, scarichiamo la configurazione già pronta all'uso (disponibile qui) direttamente nella cartella delle configurazioni di Apache tramite il seguente comando:

curl -Lo /etc/apache2/sites-available/00_global_https_upgrade_all.conf https://raw.githubusercontent.com/TurboLabIt/webstackup/master/config/apache-httpd/global_https_upgrade_all.conf

Guida definitiva: come installare Apache Ubuntu (server web Linux, linea comando, VPS) (video)

Il comando scarica il file in /etc/apache2/sites-available/00_global_https_upgrade_all.conf.

Ora attiviamo la configurazione appena scaricata:

a2ensite 00_global_https_upgrade_all

Installare Apache su Linux Ubuntu, Passo 12: Disattivare il sito di default

La pagina di cortesia con il testo It works! visualizzata in precedenza è comoda subito dopo l'installazione, per verificare che Apache funzioni, ma poi deve tassativamente essere rimossa. Il comando da impartire è:

a2dissite 000-default

Guida definitiva: come installare Apache Ubuntu (server web Linux, linea comando, VPS) (video)

Al suo posto, facciamo in modo che il server web ritorni un errore "sito non trovato" ogni volta che viene richiesto un dominio non esplicitamente configurato. Allo scopo, otteniamo la configurazione già pronta all'uso (disponibile qui) tramite il seguente comando:

curl -Lo /etc/apache2/sites-available/05_global_default_vhost_disable.conf https://raw.githubusercontent.com/TurboLabIt/webstackup/master/config/apache-httpd/global_default_vhost_disable.conf

Guida definitiva: come installare Apache Ubuntu (server web Linux, linea comando, VPS) (video)

Il comando scarica il file in /etc/apache2/sites-available/05_global_default_vhost_disable.conf.

Ora attiviamo la configurazione appena scaricata:

a2ensite 05_global_default_vhost_disable

Guida definitiva: come installare Apache Ubuntu (server web Linux, linea comando, VPS) (video)

Installare Apache su Linux Ubuntu, Passo 13: Creare una nuova "home" per www-data

Per convenzione, i file che compongono i vari siti web erogati dal sistema vanno salvati in una cartella dedicata sotto a /var/www. Ne parleremo fra un attimo.

Al momento, però, questo stesso percorso è anche la "home" dell'utente Linux "di sistema" chiamato www-data.

Ne consegue che, in seguito ad alcune azioni, potrebbero comparire in /var/www alcuni file temporanei e altre cartelle relative alle preferenze dell'utente. Non ci piace, per nulla.

Per risolvere il problema, creiamo una cartella dedicata e impostiamola come home per l'utente www-data tramite questo lungo comando concatenato:

mkdir -p /home/www-data && chown www-data:www-data /home/www-data -R && chmod ug=rwx,o= /home/www-data -R && usermod -d /home/www-data www-data

Da qui in avanti, eventuali file generati automaticamente da www-data finiranno qui dentro. Molto meglio!

Installare Apache su Linux Ubuntu, Passo 14: Creare l'utente "webstackup" (gestione del sito)

Per migliorare la sicurezza, creiamo un nuovo utente sul sistema, che sarà poi l'unico autorizzato a modificare i file che compongono i siti. Questo utente è diverso da quello utilizzato da Apache. Così facendo, anche in caso un aggressore riuscisse a trovare una falla in uno dei siti web erogati, non potrebbe comunque scrivere file su disco, e avrebbe quindi spazio di manovra limitato per le proprie attività nefaste.

Chiamiamo questo nuovo utente webstackup, e lo creiamolo tramite il seguente comando:

useradd webstackup -g www-data --shell=/usr/sbin/nologin --create-home --system

[ nota: puoi scegliere il nome che preferisci, ma di seguito utilizzeremo quello indicato nell'esempio. Raccomando di non modificarlo, altrimenti diventa difficile seguire la guida ]

Installare Apache su Linux Ubuntu, Passo 15: Creare la cartella con i progetti web

Come dicevamo, i file che compongono i vari siti web erogati vanno salvati in una sotto-cartella dedicata di /var/www. Il sito che stai leggendo ora, ad esempio, è ospitato veramente sotto /var/www/turbolab_it!

Guida definitiva: come installare Apache Ubuntu (server web Linux, linea comando, VPS) (video)

Creiamo dunque la cartella /var/www:

mkdir -p /var/www/

Modifichiamo ora i suoi permessi di modo che:

  • l'utente webstackup (creato poco fa) possa leggere e scrivere i file
  • tutti gli altri utenti possano solo leggere i file già presenti

I comandi da impartire in sequenza sono:

  • chown webstackup:www-data /var/www -R
  • chmod ugo= /var/www -R
  • chmod u=rwX,go=rX /var/www -R

Come ultima "finezza", lanciamo il comando seguente per fare in modo che tutti i nuovi file creati nella cartella vengano automaticamente assegnati al gruppo www-data:

chmod g+s /var/www

Quest'ultimo dettaglio non ha effetti immediati, ma tornerà utile in futuro.

(riprendi da qui se hai usato lo script automatico!) Attivare un nuovo sito

A scopo didattico, procederemo a configurare sul tuo server un sito che risponderà al dominio example.com e sarà dunque raggiungibile via browser web digitando http://example.com. In seguito, dopo aver preso dimestichezza con questa configurazione di esempio, potrai attivare il tuo sito "reale".

La procedura si divide nelle seguenti fasi:

  1. configurare il DNS affinché risolva il nome a dominio nell'indirizzo IP del tuo server
  2. preparare una cartella contenente i file che compongono il sito
  3. configurare Apache affinché eroghi ai visitatori i file del sito
  4. ricaricare la configurazione

Attivare un nuovo sito con Apache: configurare il DNS

Se tu stessi configurando un sito web per rispondere a un dominio che controlli, dovresti configurare il DNS affinché risolva il nome a dominio nell'indirizzo IP del tuo server. Questo generalmente si fa dal pannello web dell'azienda presso la quale hai registrato il dominio stesso. Nell'esempio seguente vediamo la configurazione reale che ho svolto per far sì che il dominio turbolab.it venga risolto nel relativo indirizzo IP del server, 95.141.32.225

Guida definitiva: come installare Apache Ubuntu (server web Linux, linea comando, VPS) (video)

Ma, siccome ora stiamo facendo una prova con il dominio example.com di cui non abbiamo il controllo, dobbiamo configurare questa stessa risoluzione solo sul nostro PC locale. Allo scopo, procediamo modificando il file hosts del PC locale, così come mostrato nella guida dedicata:

» Leggi: La Grande Guida al file hosts: che cos'è, a cosa serve e come modificarlo per bloccare siti e domini (Windows, Linux, Mac, Android)

Guida definitiva: come installare Apache Ubuntu (server web Linux, linea comando, VPS) (video) - come modificare file hosts spotlight

Nello specifico, vogliamo accodare al file hosts una riga che forzi la risoluzione del dominio example.com nell'indirizzo IP del nostro server sul quale abbiamo installato Apache. Così facendo, tutte le volte che proveremo a contattare example.com dal nostro PC locale, risponderà il nostro server con Apache.

Il mio server di test con Apache, ad esempio, ha indirizzo IP 192.168.0.74. Aggiungo quindi al mio file hosts questa riga:

192.168.0.74 example.com www.example.com

Guida definitiva: come installare Apache Ubuntu (server web Linux, linea comando, VPS) (video)

Nota che ho messo sia example.com (senza "www") sia www.example.com (con "www"), in modo che entrambi i domini vengano risolti sull'indirizzo IP del mio server con Apache. Questo consentirà al server con Apache di ricevere sia le richieste di http://example.com (senza "www"), sia di http://www.example.com (con "www").

Nel tuo caso, ovviamente, dovrai indicare lo specifico indirizzo IP del server sul quale hai installato Apache.

Se vuoi verificare al volo che la modifica abbia avuto l'effetto sperato, apri una nuova istanza di Terminale sul tuo PC locale e prova a "pingare" il dominio:

ping example.com

Se vedi comparire l'indirizzo IP del tuo server con Apache, la modifica è andata a buon fine

Guida definitiva: come installare Apache Ubuntu (server web Linux, linea comando, VPS) (video)

Ricorda soltanto che:

  • la modifica del file hosts ha effetto istantaneamente
  • la modifica al DNS di un dominio "reale" può richiedere diverse ore per propagarsi

Se il ping funziona, puoi aprire il sito tramite browser web. Probabilmente riceverai un errore di sicurezza simile a La tua connessione non è privata....

Guida definitiva: come installare Apache Ubuntu (server web Linux, linea comando, VPS) (video)

... ma va bene così. Se riesci ad ignorare l'errore e proseguire, dovresti ricevere un secondo errore, Bad Request

Guida definitiva: come installare Apache Ubuntu (server web Linux, linea comando, VPS) (video)

Va benissimo così! Dipende solo dal fatto che ancora non abbiamo configurato il relativo sito, e quindi Apache non sa cosa mostrare.

Attivare un nuovo sito con Apache: preparare una cartella con i file del sito

Per convenzione, i file che compongono i vari siti web erogati dal nostro server web vanno salvati in una cartella dedicata sotto a /var/www. Una cartella per ogni sito.

Nella situazione attuale, però, l'accesso alla cartella /var/www è limitato. Con il tuo utente "regolare", quindi, puoi leggere i file, ma non modificarli. Ovviamente potresti aggirare il problema lavorando direttamente con l'utente "root", colui che tutto può, ma è pericoloso e te lo sconsiglio.

Piuttosto: per lavorare in /var/www devi acquisire i privilegi dell'utente adibito alla manutenzione dei siti, che abbiamo chiamato webstackup. Il comando per farlo è:

sudo -u webstackup -H bash

Fino a quando sarai in questa shell, potrai leggere e scrivere liberamente i file e le cartelle sotto /var/www.

Poiché stiamo configurando il sito example.com, chiameremo la cartella allo stesso modo. Il comando per crearla è:

mkdir /var/www/example.com

Guida definitiva: come installare Apache Ubuntu (server web Linux, linea comando, VPS) (video)

Ora: per essere super-veloci, procedi scompattando qui dentro l'archivio zip che ho preparato e che contiene alcuni file HTML di esempio. Il comando è il seguente:

curl -Lo /var/www/example.com/sito.zip https://turbolab.it/scarica/145 && unzip -o /var/www/example.com/sito.zip -d /var/www/example.com/ && rm -f /var/www/example.com/sito.zip

Per verificare che l'operazione sia andata a buon fine, puoi impartire prima ls -la /var/www per assicurarti che esista la cartella example.com, poi ls -la /var/www/example.com per vedere la lista dei file di esempio estratti dall'archivio

Guida definitiva: come installare Apache Ubuntu (server web Linux, linea comando, VPS) (video)

Fra questi, nota index.html: è quello che visualizzeremo, fra poco, via browser web.

Attivare un nuovo sito con Apache: Configurare Apache

Devi ora configurare Apache affinché risponda alla richiesta HTTP di example.com restituendo al browser del visitatore i file presenti in /var/www/example.com. Allo scopo, si crea un nuovo file di configurazione all'interno della cartella /etc/apache2/sites-available/.

Poiché stiamo configurando il sito example.com, chiameremo il nostro file di configurazione example.com.conf.

Per procedere in velocità puoi ottenere il file di configurazione che ho già preparato io. Ma l'utente webstackup che stiamo usando in questo momento non ha privilegi sufficienti né per scrivere in /etc/apache2/sites-available/, né per eseguire sudo (e non deve averli!). Devi quindi:

  1. aprire una nuova finestra di terminale sul PC locale e collegarti nuovamente in SSH al tuo server web
  2. eseguire sudo -s per ottenere i privilegi di root
  3. da lì, puoi lanciare:

curl -Lo /etc/apache2/sites-available/example.com.conf https://turbolab.it/scarica/175

Dopodiché, attiva la nuova configurazione tramite il comando adibito:

a2ensite example.com

Il parametro example.com passato al comando dipende dal fatto che il nostro file di configurazione si chiama example.com.conf. Se si fosse chiamato turbolab.it.conf, avrei usato a2ensite turbolab.it

Guida definitiva: come installare Apache Ubuntu (server web Linux, linea comando, VPS) (video)

Apri ora il file di configurazione appena scaricato:

nano /etc/apache2/sites-available/example.com.conf

Probabilmente non c'è nulla da modificare, ma devo spiegarti il significato delle varie impostazioni affinché tu possa usarlo, in futuro, come modello per creare nuovi siti.

  • ServerName: indica qual è il dominio gestito da questa specifica configurazione. Nel file che hai scaricato è impostato a example.com per gestire le richieste relative al sito https://example.com. Se in futuro vorrai gestire un tuo dominio (turbolab.it, ad esempio) dovrai indicarlo qui
  • DocumentRoot: indica dove si trovano i file che compongono il sito web. Nella configurazione che hai davanti è indicato /var/www/example.com, cioè la cartella che abbiamo creato in precedenza e nella quale abbiamo estratto l'archivio con i file di test
  • <Directory>: indica le opzioni da applicare al percorso indicato. Nel caso proposto nella configurazione di default, permette l'accesso alla "root" del sito
  • SSLCertificateFile e SSLCertificateKeyFile: fanno riferimento al certificato HTTPS e alla relativa chiave. Nel file che hai scaricato utilizziamo un certificato "self-signed"

Guida definitiva: come installare Apache Ubuntu (server web Linux, linea comando, VPS) (video)

Poco sotto, trovi anche un secondo <VirtualHost>. Come probabilmente hai già capito dalla presenza della direttiva ServerName www.example.com, questo secondo blocco serve a gestire le richieste di https://www.example.com (con "www"). Le direttive presenti sotto fanno sì che Apache risponda con un un redirect verso il dominio senza "www".

Per gli scopi attuali non devi modificare nulla. Ti basta capire il significato dei parametri, poi battere la combinazione Ctrl+X sulla tastiera per uscire.

Attivare un nuovo sito con Apache: Ricaricare il servizio

Ora che la configurazione del nuovo sito è pronta, dobbiamo svolgere un "reload", cioè l'operazione che ricarica la configurazione di Apache senza bisogno di riavviare del tutto il servizio, e senza quindi causare alcun disservizio ai client connessi.

Per ricaricare Apache senza disservizi dopo aver modificato la sua configurazione, usa SEMPRE questo specifico comando concatenato:

apachectl configtest && service apache2 reload

Ricordati di farlo dalla shell dell'utente "root" (l'ultima che hai aperto), e non da quella dell'utente webstackup, che non ha i privilegi adeguati.

Utilizzando il comando che ti ho indicato, Apache verifica prima che la nuova configurazione sia corretta, e solo se va tutto bene effettua il reload, altrimenti mostra i dettagli degli errori, di modo da aiutarti a capire dove devi intervenire.

Visualizzare il tuo sito con il browser web

Ora è davvero tutto pronto. Torna al browser web sul tuo PC locale e prova ad aprire il sito. Se hai seguito il tutorial fino a qui, ti basta cliccare su questo link: http://example.com

Probabilmente riceverai un errore di sicurezza simile a La tua connessione non è privata...

Guida definitiva: come installare Apache Ubuntu (server web Linux, linea comando, VPS) (video)

Ma va bene così. Se riesci ad ignorare l'errore e proseguire, dovresti riuscire a vedere, tramite il browser web, la pagina di test che era presente nell'archivio che hai scaricato

Guida definitiva: come installare Apache Ubuntu (server web Linux, linea comando, VPS) (video)

Complimenti, funziona!

Modificare la pagina HTML

Prova ora a modificare, tramite la shell dell'utente webstackup che dovresti avere ancora aperta sul server, il file HTML che stai visualizzando:

nano /var/www/example.com/index.html

Fai qualche modifica, salva, poi ricarica la pagina nel browser per vedere le modifiche apportate - Ricordo che la sequenza di combinazioni da tastiera per salvare e uscire dall'editor sul terminale è Ctrl+O, Invio, Ctrl+X.

Aggiungere nuove pagine

Tanto per capire meglio come funziona l'installazione attuale, svolgi questo semplice esercizio:

  1. copia il file: cp /var/www/example.com/index.html /var/www/example.com/pagina1.html
  2. usando l'editor di testi, apri la copia appena creata: nano /var/www/example.com/pagina1.html
  3. scrivi qualcosa a piacere (anche solo Ciao a tutti! va benissimo) e poi salva le modifiche
  4. da browser web, sul tuo PC, apri http://example.com/pagina1.html
  5. visualizzerai così il contenuto della nuova pagina

In definitiva: accodando il nome del file desiderato all'indirizzo http://example.com/, il browser richiede detto file al server web. Se il file esiste nella cartella del sito, Apache lo ritorna al browser, che lo interpreta e lo mostra.

Erogare molteplici siti dallo stesso server

La configurazione attuale funziona perché abbiamo configurato esplicitamente tutto quanto per rispondere a http://example.com. Come dicevamo, puoi sempre aggiungere altri siti semplicemente ripetendo esattamente gli stessi passaggi visti al precedente passo Attivare un nuovo sito.

Cosa fare ora?

Arrivati a questo punto, il nostro Apache su Linux è perfettamente configurato e funzionante. Probabilmente, vorrai ottenere un certificato HTTPS valido, di modo da non mostrare l'errore di sicurezza ai visitatori, poi installare PHP e MySQL per eseguire un gestore di contenuti (CMS) come WordPress e creare il tuo blog, oppure imparare a programmare. Per il resto della guida:

» Leggi: Installare e configurare un server web: La Grande Guida ad Apache, MySQL, PHP su Windows e Linux in modo facile