Introduzione
Il server HTTP Apache è il server web più utilizzato al mondo. Fornisce molte potenti funzionalità, tra cui moduli caricabili dinamicamente, supporto multimediale robusto e ampia integrazione con altri software popolari.
In questa guida, spiegheremo come installare un server web Apache sul server Ubuntu 20.04.
Prerequisiti
Prima di iniziare questa guida, si dovrebbe avere un normale utente non root con privilegi sudo configurati sul server., Inoltre, è necessario abilitare un firewall di base per bloccare le porte non essenziali. Puoi imparare come configurare un normale account utente e impostare un firewall per il tuo server seguendo la nostra guida all’installazione iniziale del server per Ubuntu 20.04.
Quando hai un account disponibile, accedi come utente non root per iniziare.
Passo 1 — Installazione di Apache
Apache è disponibile all’interno dei repository software predefiniti di Ubuntu, rendendo possibile l’installazione utilizzando strumenti di gestione dei pacchetti convenzionali.,
iniziare con l’aggiornamento del pacchetto locale indice per riflettere le ultime modifiche upstream:
- sudo apt update
Quindi, installare il apache2
confezione:
- sudo apt install apache2
Dopo la conferma dell’installazione, apt
installare Apache e tutte le dipendenze richieste.
Passo 2 — Regolazione del firewall
Prima di testare Apache, è necessario modificare le impostazioni del firewall per consentire l’accesso esterno alle porte web predefinite., Supponendo che tu abbia seguito le istruzioni nei prerequisiti, dovresti avere un firewall UFW configurato per limitare l’accesso al tuo server.
Durante l’installazione, Apache si registra con UFW per fornire alcuni profili applicativi che possono essere utilizzati per abilitare o disabilitare l’accesso ad Apache attraverso il firewall.,>
verrà visualizzato un elenco dei profili di applicazione:
OutputAvailable applications: Apache Apache Full Apache Secure OpenSSH
Come indicato dall’uscita, ci sono tre profili disponibili per Apache:
- Apache: Questo profilo si apre solo la porta 80 (normale, in chiaro traffico web)
- Apache Pieno: Questo profilo si apre sia la porta 80 (normale, in chiaro traffico web) e la porta 443 (TLS/SSL crittografato traffico)
- Apache Sicuro: Questo profilo si apre solo la porta 443 (TLS/SSL crittografato traffico)
si consiglia di attivare il più restrittive per il profilo che consentirà comunque il traffico è stato configurato., Poiché non abbiamo configurato il protocollo SSL per i nostri server ma in questa guida, ci sarà solo necessario per consentire il traffico sulla porta 80:
- sudo ufw allow 'Apache'
È possibile verificare la modifica con il comando:
- sudo ufw status
L’uscita fornirà un elenco di ammessi il traffico HTTP:
Come indicato dall’uscita, il profilo è stato attivato per consentire l’accesso al server web Apache.
Passo 3 — Controllo del server Web
Alla fine del processo di installazione, Ubuntu 20.04 avvia Apache. Il server web dovrebbe essere già attivo e funzionante.,
Verificare con il sistema di initsystemd
per assicurarsi che il servizio sia in esecuzione digitando:
- sudo systemctl status apache2
Come confermato da questo output, il servizio è stato avviato correttamente. Tuttavia, il modo migliore per testare questo è richiedere una pagina da Apache.
È possibile accedere alla pagina di destinazione predefinita di Apache per confermare che il software è in esecuzione correttamente tramite il proprio indirizzo IP. Se non si conosce l’indirizzo IP del server, è possibile ottenere un paio di modi diversi dalla riga di comando.,
Prova a digitare questo al prompt dei comandi del tuo server:
- hostname -I
Otterrai alcuni indirizzi separati da spazi. Puoi provare ciascuno nel tuo browser Web per determinare se funzionano.,
un’Altra opzione è quella di utilizzare il Icanhazip strumento, che dovrebbe dare il vostro indirizzo IP pubblico come leggere da un altro indirizzo internet:
- curl -4 icanhazip.com
Quando si ha l’indirizzo IP del server, inserire nella barra degli indirizzi del browser:
You should see the default Ubuntu 20.04 Apache web page:
This page indicates that Apache is working correctly. It also includes some basic information about important Apache files and directory locations.
Step 4 — Managing the Apache Process
Now that you have your web server up and running, let’s go over some basic management commands using systemctl
.
To stop your web server, type:
- sudo systemctl stop apache2
Per avviare il server web quando si è fermato, tipologia:
- sudo systemctl start apache2
Per interrompere e avviare il servizio di nuovo, tipo:
- sudo systemctl restart apache2
Se si sta semplicemente facendo le modifiche di configurazione di Apache spesso può ricaricare senza interruzioni delle connessioni., Per fare ciò, utilizzare questo comando:
- sudo systemctl reload apache2
Per impostazione predefinita, Apache è configurato per l’avvio automatico all’avvio del server. Se questo non è quello che vuoi, disabilita questo comportamento digitando:
- sudo systemctl disable apache2
Per riattivare il servizio all’avvio, digita:
- sudo systemctl enable apache2
Apache dovrebbe ora avviarsi automaticamente all’avvio del server.,
Passo 5 — Impostazione di host virtuali (consigliato)
Quando si utilizza il server web Apache, è possibile utilizzare host virtuali (simile a blocchi di server in Nginx) per incapsulare i dettagli di configurazione e ospitare più di un dominio da un singolo server. Configureremo un dominio chiamato your_domain, ma dovresti sostituirlo con il tuo nome di dominio. Se stai impostando un nome di dominio con DigitalOcean, fai riferimento alla nostra documentazione di rete.
Apache su Ubuntu 20.,04 ha un blocco server abilitato per impostazione predefinita che è configurato per servire i documenti dalla directory/var/www/html
. Mentre questo funziona bene per un singolo sito, può diventare ingombrante se si ospitano più siti. Invece di modificare /var/www/html
, creiamo una struttura di directory all’interno di /var/www
per un sito your_domain, lasciando /var/www/html
come directory predefinita da servire se una richiesta client non corrisponde ad altri siti.,
Crea la directory per your_domain come segue:
- sudo mkdir /var/www/your_domain
Successivamente, assegna la proprietà della directory con la variabile di ambiente $USER
:
- sudo chown -R $USER:$USER /var/www/your_domain
Le autorizzazioni delle tue web roots dovrebbero essere corrette se non hai modificato il valore umask, che imposta le autorizzazioni predefinite dei file., Per garantire che le autorizzazioni siano corrette e consentire al proprietario di leggere, scrivere ed eseguire il file, ma concede solo permessi di lettura ed esecuzione per i gruppi e gli altri, è possibile immettere il seguente comando:
- sudo chmod -R 755 /var/www/your_domain
Avanti, creare un esempio index.html
pagina con nano
o il vostro editor preferito:
- sudo nano /var/www/your_domain/index.html
all’Interno, aggiungere il seguente esempio di codice HTML:
<html> <head> <title>Welcome to Your_domain!</title> </head> <body> <h1>Success! The your_domain virtual host is working!</h1> </body></html>
Salva e chiudi il file quando hai finito.,
Affinché Apache possa servire questo contenuto, è necessario creare un file host virtuale con le direttive corrette. Invece di modificare il file di configurazione di default che si trova in /etc/apache2/sites-available/000-default.conf
direttamente, facciamo un nuovo /etc/apache2/sites-available/your_domain.conf
:
- sudo nano /etc/apache2/sites-available/your_domain.conf
Incollare il seguente blocco di configurazione, che è simile per impostazione predefinita, ma aggiornato per la nostra nuova cartella e il nome di dominio:
Si noti che abbiamo aggiornato ilDocumentRoot
alla nostra nuova directory eServerAdmin
a un’e-mail a cui l’amministratore del sito your_domain può accedere. Abbiamo anche aggiunto due direttive: ServerName
, che stabilisce il dominio di base che deve corrispondere a questa definizione di host virtuale, e ServerAlias
, che definisce ulteriori nomi che devono corrispondere come se fossero il nome di base.
Salva e chiudi il file quando hai finito.,
abilitiamo il file con il a2ensite
strumento:
- sudo a2ensite your_domain.conf
Disattivare l’impostazione predefinita del sito definita in 000-default.conf
:
- sudo a2dissite 000-default.conf
Avanti, proviamo per gli errori di configurazione:
- sudo apache2ctl configtest
Si dovrebbe essere visualizzato il seguente output:
OutputSyntax OK
Riavviare Apache per rendere effettive le modifiche:
- sudo systemctl restart apache2
Apache dovrebbe essere ora serve il tuo nome di dominio., Puoi testarlo navigando verso , dove dovresti vedere qualcosa del genere:
Passo 6 – Familiarizzare con importanti file e directory Apache
Ora che sai come gestire il servizio Apache stesso, dovresti prendere qualche minuto per familiarizzare con alcune directory e file importanti.,
Content
-
/var/www/html
: Il contenuto web effettivo, che per impostazione predefinita è costituito solo dalla pagina Apache predefinita che hai visto in precedenza, viene pubblicato dalla directory/var/www/html
. Questo può essere modificato modificando i file di configurazione di Apache.
Configurazione del server
-
/etc/apache2
: La directory di configurazione di Apache. Tutti i file di configurazione di Apache risiedono qui. -
/etc/apache2/apache2.conf
: Il principale file di configurazione di Apache. Questo può essere modificato per apportare modifiche alla configurazione globale di Apache., Questo file è responsabile del caricamento di molti degli altri file nella directory di configurazione. -
/etc/apache2/ports.conf
: Questo file specifica le porte su cui Apache ascolterà. Per impostazione predefinita, Apache ascolta sulla porta 80 e inoltre ascolta sulla porta 443 quando è abilitato un modulo che fornisce funzionalità SSL. -
/etc/apache2/sites-available/
: La directory in cui è possibile memorizzare gli host virtuali per sito. Apache non utilizzerà i file di configurazione trovati in questa directory a meno che non siano collegati alla directorysites-enabled
., In genere, tutta la configurazione del blocco server viene eseguita in questa directory e quindi abilitata collegandosi all’altra directory con il comandoa2ensite
. -
/etc/apache2/sites-enabled/
: La directory in cui sono memorizzati gli host virtuali abilitati per sito. In genere, questi vengono creati collegandosi ai file di configurazione trovati nella directorysites-available
cona2ensite
. Apache legge i file di configurazione e i collegamenti trovati in questa directory quando si avvia o si ricarica per compilare una configurazione completa., -
/etc/apache2/conf-available/
,/etc/apache2/conf-enabled/
: Queste directory hanno la stessa relazione delle directorysites-available
esites-enabled
, ma vengono utilizzate per memorizzare frammenti di configurazione che non appartengono a un host virtuale. I file nella directoryconf-available
possono essere abilitati con il comandoa2enconf
e disabilitati con il comandoa2disconf
. -
/etc/apache2/mods-available/
,/etc/apache2/mods-enabled/
: Queste directory contengono rispettivamente i moduli disponibili e quelli abilitati., I file che terminano con.load
contengono frammenti per caricare moduli specifici, mentre i file che terminano con.conf
contengono la configurazione per tali moduli. I moduli possono essere abilitati e disabilitati utilizzando il comandoa2enmod
ea2dismod
.
Log del server
-
/var/log/apache2/access.log
: Per impostazione predefinita, ogni richiesta al server Web viene registrata in questo file di log a meno che Apache non sia configurato diversamente. -
/var/log/apache2/error.log
: Per impostazione predefinita, tutti gli errori sono registrati in questo file., La direttivaLogLevel
nella configurazione di Apache specifica quanti dettagli conterranno i log degli errori.
Conclusione
Ora che hai installato il tuo server web, hai molte opzioni per il tipo di contenuto che puoi servire e le tecnologie che puoi usare per creare un’esperienza più ricca.
Se desideri creare uno stack di applicazioni più completo, puoi leggere questo articolo su come configurare uno stack LAMP su Ubuntu 20.04