- 1 1. Introduzione
- 2 2. Installazione di Ubuntu e Configurazione Iniziale
- 3 3. Installazione e Configurazione di Apache
- 4 4. Configurazione degli Host Virtuali (Gestione di Siti Multipli)
- 5 9. Riepilogo
1. Introduzione
Cos’è un Server Web Ubuntu?
Un server web è un sistema che distribuisce siti web su internet. Il software per server web popolare include Apache, Nginx e LiteSpeed, ma l’opzione più utilizzata su Ubuntu è Apache.
Ubuntu è leggero, stabile e open-source, rendendolo popolare tra individui e aziende. È particolarmente adatto per gestire ambienti LAMP (Linux, Apache, MySQL/MariaDB, PHP), che alimentano molti siti web e applicazioni.
Per Chi È Questo Articolo
Questa guida è progettata per principianti che costruiscono un server web per la prima volta. Spiega come avviare un server web su Ubuntu, installare Apache, configurare host virtuali e certificati SSL, e implementare ottimizzazioni e miglioramenti di sicurezza.
Cosa Imparerai
- Come costruire un server web su Ubuntu (installare e configurare Apache)
- Come impostare host virtuali e gestire più siti web
- Come installare SSL gratuito con Let’s Encrypt
- Come applicare rafforzamento della sicurezza e ottimizzazione delle prestazioni
- Passi comuni di risoluzione dei problemi e soluzioni
2. Installazione di Ubuntu e Configurazione Iniziale
Specifiche di Sistema Richieste
Per eseguire Ubuntu come server web, le seguenti specifiche minime sono raccomandate:
| Item | Minimum Requirements | Recommended Requirements |
|---|---|---|
| OS | Ubuntu 22.04 LTS | Ubuntu 22.04 LTS |
| CPU | 1GHz or higher | 2GHz or higher |
| Memory | 512MB | 2GB or higher |
| Storage | 10GB or more | 20GB or more |
| Network | Internet connection | High-speed connection recommended |
Scaricare e Installare Ubuntu
Ubuntu può essere scaricato dal sito ufficiale (https://ubuntu.com/download/server). Scarica il file ISO e installalo in una macchina virtuale come VirtualBox o VMware, o su un server dedicato o VPS.
Passi di Installazione:
- Crea supporti di installazione
- Unità USB (usando tool come Rufus)
- Monta il file ISO in una macchina virtuale
- Segui l’assistente di installazione
- Seleziona la tua lingua preferita
- Verifica la connettività di rete
- Imposta nome utente e password
- Installa il server SSH (opzionale—puoi installarlo dopo)
- Riavvia dopo il completamento dell’installazione
- Accedi e inizia la configurazione iniziale
Configurazione Iniziale Base
Dopo l’installazione, esegui i seguenti passi di configurazione iniziale.
- Aggiorna tutti i pacchetti
sudo apt update && sudo apt upgrade -y
→ Applica patch di sicurezza e aggiorna i pacchetti software.
- Imposta il fuso orario
sudo timedatectl set-timezone Asia/Tokyo
→ Imposta l’ora del sistema su Ora Standard del Giappone (JST).
- Abilita il firewall
sudo ufw enable
→ Attiva il firewall per proteggere il sistema da accessi non autorizzati.
- Configura SSH (per la gestione remota)
- Controlla se SSH è abilitato
sudo systemctl status ssh - Se disabilitato, abilitalo
sudo systemctl enable --now ssh
Dopo aver completato questi passi, il tuo server Ubuntu è pronto per essere configurato come un server web completamente funzionale.
3. Installazione e Configurazione di Apache
Cos’è Apache?
Apache (Apache HTTP Server) è un server web open-source noto per la sua stabilità, estensibilità e forti caratteristiche di sicurezza. Circa il 30% dei server mondiali usa Apache.
Caratteristiche Principali:
- Gratuito e open-source
- Architettura modulare per estensioni facili
- Supporto SSL/TLS per la configurazione HTTPS
- Host virtuali per ospitare più siti web
Installazione di Apache
Su Ubuntu, Apache può essere installato facilmente usando il gestore di pacchetti apt.
Installa Apache
Esegui i seguenti comandi per installare Apache:
sudo apt update
sudo apt install apache2 -y
Verifica l’Installazione
Dopo l’installazione, controlla la versione di Apache:
apache2 -v
Output di esempio:
Server version: Apache/2.4.52 (Ubuntu)
Server built: 2023-07-01T12:34:56
Se appare l’informazione sulla versione, Apache è stato installato correttamente.
Avvio, Arresto e Riavvio di Apache
Apache è gestito usando il comando systemctl.
Avvia Apache
sudo systemctl start apache2
Apache inizierà ora ad accettare richieste web.
Abilita Avvio Automatico
sudo systemctl enable apache2
Controlla lo Stato di Apache
Usa questo comando per verificare se Apache è in esecuzione:
sudo systemctl status apache2
Output di esempio:
● apache2.service - The Apache HTTP Server
Loaded: loaded (/lib/systemd/system/apache2.service; enabled; vendor preset: enabled)
Active: active (running) since ...
Riavvia o Ferma Apache
Riavvia Apache dopo aver modificato le impostazioni di configurazione:
sudo systemctl restart apache2
Per fermare temporaneamente Apache:
sudo systemctl stop apache2
Verifica dell’Operazione di Apache
Per confermare che Apache stia funzionando correttamente, accedi all’indirizzo IP del server.
1. Controlla l’Indirizzo IP del Tuo Server
hostname -I
O controlla l’IP esterno:
curl ifconfig.me
2. Verifica in un Browser Web
Inserisci quanto segue nel tuo browser:
http://<your-server-ip>/
Per configurazioni locali:
http://localhost/
Dovresti vedere la pagina predefinita di Apache (/var/www/html/index.html).
Pagina predefinita di esempio:
Apache2 Ubuntu Default Page
It works!
Se appare questo messaggio, Apache sta funzionando correttamente.
Configurazione del Firewall
Ubuntu utilizza UFW (Uncomplicated Firewall) per gestire le regole del firewall.
Dopo l’installazione di Apache, l’accesso esterno a HTTP (porta 80) e HTTPS (porta 443) potrebbe essere ancora bloccato.
Consenti Apache Attraverso il Firewall
sudo ufw allow 'Apache'
Per consentire anche HTTPS:
sudo ufw allow 'Apache Full'
Controlla lo Stato del Firewall
sudo ufw status
Output di esempio:
Status: active
To Action From
-- ------ ----
Apache ALLOW Anywhere
Apache (v6) ALLOW Anywhere (v6)
Se appare questo, il traffico Apache è consentito attraverso il firewall.
Riepilogo
Finora, hai installato Apache su Ubuntu e completato i passaggi essenziali di configurazione.
Punti chiave coperti:
- Come installare Apache
- Come avviare e abilitare Apache
- Come verificare l’operazione di Apache in un browser
- Come configurare le regole del firewall UFW
- Panoramica dei file di configurazione di base di Apache
4. Configurazione degli Host Virtuali (Gestione di Siti Multipli)
Cosa Sono gli Host Virtuali?
Gli host virtuali ti permettono di ospitare più domini (o sottodomini) su un singolo server Apache.
Ad esempio, un server può ospitare sia example.com che test.com.
Esistono due tipi di host virtuali:
- Host Virtuali Basati sul Nome
- Più siti condividono lo stesso indirizzo IP
- Il metodo più comune
- Host Virtuali Basati sull’IP
- Ogni sito utilizza un indirizzo IP diverso
- Richiede più interfacce di rete su un singolo server
Nella maggior parte dei casi, si utilizzano host virtuali basati sul nome.
Passaggi per Configurare gli Host Virtuali
1. Crea le Directory Richieste
Crea una directory separata per ogni sito web:
sudo mkdir -p /var/www/example.com/public_html
sudo mkdir -p /var/www/test.com/public_html
2. Cambia la Proprietà della Directory
Assicurati che Apache possa leggere i file impostando il proprietario su www-data:
sudo chown -R www-data:www-data /var/www/example.com/public_html
sudo chown -R www-data:www-data /var/www/test.com/public_html
3. Crea File HTML di Segnaposto
Crea un file index.html di base per i test:
echo "<h1>Welcome to example.com</h1>" | sudo tee /var/www/example.com/public_html/index.html
echo "<h1>Welcome to test.com</h1>" | sudo tee /var/www/test.com/public_html/index.html
4. Crea File di Configurazione per Host Virtuali
I file di configurazione degli host virtuali sono memorizzati nella directory /etc/apache2/sites-available/.
Configurazione host virtuale per example.com
Crea e modifica il file di configurazione con il seguente comando:
sudo nano /etc/apache2/sites-available/example.com.conf
Contenuti del file di configurazione:
answer.“`
<Directory /var/www/example.com/public_html>
Options -Indexes +FollowSymLinks
AllowOverride All
Require all granted
</Directory>
ErrorLog ${APACHE_LOG_DIR}/example.com_error.log
CustomLog ${APACHE_LOG_DIR}/example.com_access.log combined
#### Configurazione dell'host virtuale per test.com
sudo nano /etc/apache2/sites-available/test.com.conf
Aggiungi i seguenti contenuti:
<Directory /var/www/test.com/public_html>
Options -Indexes +FollowSymLinks
AllowOverride All
Require all granted
</Directory>
ErrorLog ${APACHE_LOG_DIR}/test.com_error.log
CustomLog ${APACHE_LOG_DIR}/test.com_access.log combined
### 5. Abilitare gli host virtuali
Dopo aver creato i file di configurazione, abilita gli host virtuali usando `a2ensite`:
sudo a2ensite example.com.conf sudo a2ensite test.com.conf
#### Testare la configurazione di Apache
Verifica la presenza di errori di sintassi:
sudo apachectl configtest
Esempio di output:
Syntax OK
Se non ci sono errori, riavvia Apache:
sudo systemctl restart apache2
### 6. Verificare localmente (Modificare il file hosts)
Per testare gli host virtuali localmente, modifica il file `hosts` del tuo PC.
sudo nano /etc/hosts
Aggiungi le seguenti righe:
127.0.0.1 example.com 127.0.0.1 test.com
Salva il file, poi apri un browser e visita:
http://example.com/
Dovresti vedere **“Welcome to example.com”**.
Allo stesso modo, visitando:
http://test.com/
dovrebbe mostrare **“Welcome to test.com”**.
### 7. Risoluzione dei problemi degli host virtuali
Se gli host virtuali non funzionano correttamente, controlla quanto segue:
#### 1. Controlla i log degli errori di Apache
sudo tail -f /var/log/apache2/error.log
#### 2. Conferma che i file di configurazione siano abilitati
ls /etc/apache2/sites-enabled/
Se i file `.conf` corretti sono elencati, gli host virtuali sono attivi.
#### 3. Controlla le impostazioni della porta di Apache
Verifica che la porta 80 (HTTP) sia configurata:
sudo nano /etc/apache2/ports.conf
Assicurati che la seguente riga esista:
Listen 80
### Riepilogo
Questa sezione ha spiegato **come configurare gli host virtuali in Apache su Ubuntu**.
Punti chiave:
* **Concetto e scopo degli host virtuali**
* **Creazione delle directory per ogni sito**
* **Creazione e abilitazione dei file di configurazione degli host virtuali**
* **Metodi di test locale usando il file hosts**
* **Risoluzione dei problemi comuni**
## 5. Introduzione a SSL/TLS (Abilitare HTTPS)
### Che cos'è SSL/TLS?
SSL (Secure Sockets Layer) e TLS (Transport Layer Security) sono tecnologie di crittografia utilizzate per garantire comunicazioni sicure su Internet.
#### Vantaggi dell'abilitare SSL/TLS
✅ **Cifra le comunicazioni** (riduce il rischio che i dati vengano intercettati o alterati)
✅ **Migliora il posizionamento SEO su Google** (i siti HTTPS sono privilegiati)
✅ **Previene gli avvisi di sicurezza del browser** (i siti HTTP mostrano "Not Secure")
✅ **Protegge le credenziali di accesso e le transazioni online**
Oggi, **TLS (TLS 1.2 / 1.3)** è consigliato, e le versioni più vecchie di SSL (SSL 3.0 e precedenti) sono deprecate.
### Ottenere un certificato SSL gratuito con Let’s Encrypt
Let’s Encrypt è un'Autorità di Certificazione (CA) che fornisce certificati SSL gratuiti.
Usando `certbot`, puoi facilmente rilasciare un certificato e configurarlo con Apache.
#### Installare il client Let’s Encrypt (Certbot)
Installa `certbot`, il client ufficiale di Let’s Encrypt:
sudo apt update sudo apt install certbot python3-certbot-apache -y
#### Automatizzare la configurazione SSL di Apache
Puoi configurare automaticamente Apache usando il seguente comando:
sudo certbot –apache -d example.com -d www.example.com
Questo comando esegue:
1. **Validazione del dominio (sfida HTTP-01)**
2. **Emissione del certificato SSL**
3. **Configurazione automatica di Apache SSL**
4. **Redirect opzionale da HTTP a HTTPS**
#### Verifica del funzionamento SSL
Accedi al seguente URL per confermare che HTTPS è abilitato:
https://example.com/
Se il tuo browser mostra un **icona a lucchetto**, SSL è stato applicato correttamente.
### Configurazione manuale di SSL per Apache
Se non desideri utilizzare `certbot --apache`, puoi configurare SSL manualmente.
#### 1. Abilita il modulo SSL di Apache
sudo a2enmod ssl sudo systemctl restart apache2
#### 2. Configura il Virtual Host SSL
Modifica il file di configurazione SSL `/etc/apache2/sites-available/example.com-le-ssl.conf`:
sudo nano /etc/apache2/sites-available/example.com-le-ssl.conf
Esempio di configurazione:
SSLEngine on
SSLCertificateFile /etc/letsencrypt/live/example.com/fullchain.pem
SSLCertificateKeyFile /etc/letsencrypt/live/example.com/privkey.pem
<Directory /var/www/example.com/public_html>
Options -Indexes +FollowSymLinks
AllowOverride All
Require all granted
</Directory>
ErrorLog ${APACHE_LOG_DIR}/example.com_error.log
CustomLog ${APACHE_LOG_DIR}/example.com_access.log combined
#### 3. Abilita la configurazione SSL e riavvia Apache
sudo a2ensite example.com-le-ssl.conf sudo systemctl restart apache2
### Rinnovo automatico dei certificati SSL
I certificati Let’s Encrypt sono validi per **90 giorni**. Per evitare rinnovi manuali, configura gli aggiornamenti automatici.
#### 1. Testa il rinnovo automatico di Certbot
sudo certbot renew –dry-run
#### 2. Controlla il programma di rinnovo
Il programma di rinnovo automatico di Certbot è memorizzato in **`/etc/cron.d/certbot`**.
sudo systemctl list-timers | grep certbot
### Risoluzione dei problemi SSL
#### 1. Certificato SSL non applicato
**Soluzione: Riavvia Apache e verifica la configurazione**
sudo systemctl restart apache2 sudo apachectl configtest
#### 2. Il certificato è scaduto
sudo certbot renew –force-renewal
#### 3. Errori di validazione Let’s Encrypt
**Soluzione: Controlla le regole del firewall**
sudo ufw allow 80/tcp sudo ufw allow 443/tcp sudo ufw reload
### Riepilogo
Questa sezione ha spiegato come **installare e configurare SSL gratuito usando Let’s Encrypt**.
Punti chiave:
* **Nozioni di base su SSL/TLS**
* **Configurare Apache con Let’s Encrypt**
* **Configurazione manuale di SSL**
* **Rinnovo automatico del certificato**
* **Risoluzione dei problemi SSL**
## 6. Migliorare la sicurezza del server web
### Configurazione del firewall (UFW)
Ubuntu utilizza **UFW (Uncomplicated Firewall)** per bloccare il traffico non necessario e proteggere il server.
#### Controlla le impostazioni attuali del firewall
sudo ufw status
#### Consenti solo le porte necessarie
Per impostazione predefinita, blocca tutto il traffico in ingresso e consenti solo le porte necessarie:
sudo ufw default deny incoming sudo ufw default allow outgoing
**Apri le porte richieste:**
* **SSH (Porta 22)**
sudo ufw allow 22/tcp
* **HTTP (Porta 80)**
sudo ufw allow 80/tcp
* **HTTPS (Porta 443)**
sudo ufw allow 443/tcp
#### Abilita il firewall
sudo ufw enable
### Rafforzare la sicurezza SSH
SSH è un obiettivo comune di attacchi brute-force se lasciato con le impostazioni predefinite. Rafforza la sicurezza applicando configurazioni adeguate.
#### Cambia la porta SSH
sudo nano /etc/ssh/sshd_config
Modifica queste righe:
Port 2222 # Change from 22 to any unused port PermitRootLogin no # Disable root login PasswordAuthentication no # Disable password login (use SSH keys only)
Riavvia SSH:
sudo systemctl restart ssh
#### Installa Fail2Ban
Fail2Ban protegge il tuo server bannando temporaneamente gli indirizzi IP che tentano ripetuti fallimenti di accesso SSH.
sudo apt install fail2ban -y
Modifica la configurazione:
sudo nano /etc/fail2ban/jail.local
Aggiungi quanto segue:
[sshd]
enabled = true
port = 2222
maxretry = 3
bantime = 600Abilita Fail2Ban:
sudo systemctl restart fail2ban sudo systemctl enable fail2ban
### Rafforzare Apache
#### Nascondi le informazioni sulla versione di Apache
sudo nano /etc/apache2/conf-available/security.conf
Modifica le seguenti impostazioni:
ServerTokens Prod ServerSignature Off
Applica le modifiche:
sudo systemctl restart apache2
#### Disabilita l'elenco delle directory
sudo nano /etc/apache2/apache2.conf
Individua il blocco directory e aggiornalo:
Riavvia Apache:
sudo systemctl restart apache2
#### Disabilita i moduli Apache non necessari
sudo a2dismod autoindex sudo a2dismod status sudo systemctl restart apache2
### Aggiunta di intestazioni di sicurezza
Le intestazioni di sicurezza proteggono il tuo sito web da attacchi come cross-site scripting e clickjacking.
#### Abilita `mod_headers`
sudo a2enmod headers sudo systemctl restart apache2
#### Aggiungi intestazioni di sicurezza
sudo nano /etc/apache2/sites-available/example.com.conf
Aggiungi quanto segue all'interno del blocco `<VirtualHost>`:
Riavvia Apache:
sudo systemctl restart apache2
### Risoluzione dei problemi
#### Controlla le impostazioni del firewall
sudo ufw status
#### Controlla la configurazione di Apache per errori
sudo apachectl configtest
Esempio di output:
Syntax OK
#### Impossibile connettersi via SSH dopo aver cambiato la porta
Se SSH non si connette dopo aver cambiato la porta, specifica la nuova porta al momento della connessione:
ssh -p 2222 user@server-ip
### Riepilogo
Questa sezione ha spiegato **come rafforzare la sicurezza del tuo server web**.
Punti chiave:
* **Configurazione delle regole del firewall UFW**
* **Sicurezza di SSH (cambio porta, Fail2Ban)**
* **Rafforzamento della sicurezza di Apache (nascondere info versione, disabilitare l'elenco)**
* **Aggiunta di intestazioni di sicurezza**
## 7. Ottimizzazione delle prestazioni
### Ottimizzazione di Apache
La configurazione predefinita di Apache potrebbe non offrire prestazioni ottimali. Applicando le seguenti regolazioni, puoi ottenere **prestazioni significativamente più elevate**.
#### Ottimizzazione dell'MPM (Modulo di Multi-Processing)
L'MPM (Modulo di Multi-Processing) determina come Apache gestisce le richieste.
Verifica l'MPM corrente:
apachectl -M | grep mpm
Esempio di output:
mpm_prefork_module (shared)
Se `mpm_prefork_module` è abilitato, passare a `mpm_event` può migliorare le prestazioni.
Cambia l'MPM:
sudo a2dismod mpm_prefork sudo a2enmod mpm_event sudo systemctl restart apache2
### Abilita KeepAlive
KeepAlive (connessioni persistenti) consente ai client di riutilizzare le connessioni esistenti, riducendo il carico delle richieste.
Modifica il file di configurazione:
sudo nano /etc/apache2/apache2.conf
Conferma le seguenti impostazioni:
KeepAlive On MaxKeepAliveRequests 100 KeepAliveTimeout 5
Riavvia Apache:
sudo systemctl restart apache2
### Utilizzo della cache
Utilizzando la cache del browser e la cache lato server, puoi **ridurre le richieste non necessarie e migliorare significativamente la velocità di risposta**.
#### Abilita `mod_expires` (Cache del browser)
sudo a2enmod expires sudo systemctl restart apache2
Aggiungi quanto segue a `/etc/apache2/sites-available/example.com.conf`:
.
Riavvia Apache:
sudo systemctl restart apache2
### Abilita `mod_cache` (Cache del server)
sudo a2enmod cache cache_disk sudo systemctl restart apache2
Aggiungi quanto segue a `/etc/apache2/sites-available/example.com.conf`:
Riavvia Apache:
sudo systemctl restart apache2
### Abilita la compressione
Usa `mod_deflate` per comprimere i dati del sito web e ridurre la dimensione del trasferimento.
#### Abilita `mod_deflate`
sudo a2enmod deflate sudo systemctl restart apache2
Aggiungi quanto segue a `/etc/apache2/sites-available/example.com.conf`:
Riavvia Apache:
sudo systemctl restart apache2
### Limitazione delle risorse
Per prepararsi a un traffico intenso o a potenziali accessi malevoli, imposta **limiti di risorse** usando i moduli di Apache.
#### Abilita `mod_ratelimit`
sudo a2enmod ratelimit sudo systemctl restart apache2
Aggiungi quanto segue a `/etc/apache2/sites-available/example.com.conf`:
Riavvia Apache:
sudo systemctl restart apache2
### Risoluzione dei problemi di prestazioni
#### Controlla il log degli errori di Apache
sudo tail -f /var/log/apache2/error.log
#### Controlla lo stato di carico di Apache
sudo apachectl status
#### Controlla l'utilizzo di CPU e memoria
top
o
htop
Se `htop` non è installato:
sudo apt install htop
### Riepilogo
Questa sezione ha spiegato come **ottimizzare le prestazioni del server web**.
Punti chiave:
* **Ottimizzazione di Apache (ottimizzazione MPM e impostazioni KeepAlive)**
* **Utilizzo della cache (cache del browser e cache del server)**
* **Compressione dei dati con mod\_deflate**
* **Controllo delle risorse usando mod\_ratelimit**
## 8. Risoluzione dei problemi
### Apache non si avvia
Se Apache non riesce ad avviarsi, un errore di configurazione è la causa più comune.
#### 1. Controlla i messaggi di errore
sudo systemctl status apache2
#### 2. Verifica la configurazione
sudo apachectl configtest
Se l'output include **"Syntax error"**, verifica il percorso o le impostazioni elencate nel messaggio di errore.
#### 3. Riavvia Apache
sudo systemctl restart apache2
### Impossibile accedere al server
Se il server non è raggiungibile da un browser, verifica i seguenti elementi.
#### 1. Controlla le impostazioni del firewall
sudo ufw status
Assicurati che le porte **80** e **443** siano consentite.
#### 2. Controlla lo stato di Apache
sudo systemctl status apache2
#### 3. Controlla l'indirizzo IP del server
hostname -I
### Virtual Host non funzionanti
Se i virtual host non si comportano come previsto, ricontrolla la configurazione.
#### 1. Conferma che i file dei Virtual Host siano abilitati
ls /etc/apache2/sites-enabled/
Se il tuo file `.conf` non è elencato, abilitalo:
sudo a2ensite example.com.conf sudo systemctl restart apache2
#### 2. Controlla la risoluzione del nome host
Se stai testando localmente, assicurati che il file `/etc/hosts` contenga:
127.0.0.1 example.com
#### 3. Controlla il percorso di DocumentRoot
I percorsi errati causano spesso problemi con i virtual host.
DocumentRoot /var/www/example.com/public_html
### Problemi con il certificato SSL
#### 1. HTTPS non funziona
Conferma che SSL sia abilitato:
sudo apachectl -M | grep ssl
Abilita se necessario:
sudo a2enmod ssl sudo systemctl restart apache2
#### 2. Il certificato è scaduto
sudo certbot renew
#### 3. La convalida di Let’s Encrypt fallisce
La convalida HTTP richiede che la porta 80 sia aperta.
sudo ufw allow 80/tcp sudo systemctl restart apache2
### Prestazioni lente del sito web
#### 1. Controlla il carico del server
top
#### 2. Esamina i log di Apache
sudo tail -f /var/log/apache2/access.log
#### 3. Conferma le impostazioni della cache
Assicurati che `mod_expires`, `mod_cache` e `mod_deflate` siano abilitati.
### Errori di permesso (403 Forbidden)
Questo errore indica tipicamente permessi errati su file o directory.
#### 1. Controlla il proprietario della directory
sudo chown -R www-data:www-data /var/www/example.com
#### 2. Controlla i permessi della directory
sudo chmod -R 755 /var/www/example.com
### Monitoraggio dei log degli errori
Monitora sempre i log degli errori durante la risoluzione dei problemi:
sudo tail -f /var/log/apache2/error.log “`
Riepilogo
Questa sezione ha fornito metodi per la risoluzione dei problemi comuni con il tuo server web Ubuntu.
Punti chiave:
- Errori di avvio di Apache e controlli di configurazione
- Problemi relativi al firewall e alla rete
- Problemi di configurazione degli host virtuali
- Errori e rinnovi dei certificati SSL
- Risoluzione dei problemi di prestazioni e permessi
9. Riepilogo
In questo articolo, abbiamo spiegato come creare un ambiente server web completo su Ubuntu usando Apache, insieme a miglioramenti di sicurezza, ottimizzazione delle prestazioni e tecniche di risoluzione dei problemi.
Seguendo questa guida, potrai gestire un server web stabile, sicuro e ad alte prestazioni adatto sia a progetti personali che a applicazioni di livello aziendale.
✔ Punti chiave trattati in questa guida
- Installazione di Ubuntu e configurazione iniziale del sistema
- Installazione e configurazione di Apache
- Configurazione degli host virtuali per gestire più siti web
- Abilitazione di HTTPS usando certificati SSL gratuiti da Let’s Encrypt
- Miglioramento della sicurezza del server (UFW, hardening SSH, impostazioni di Apache)
- Miglioramento delle prestazioni (caching, compressione, ottimizzazione MPM)
- Risoluzione dei problemi comuni durante l’operazione del server
✔ Cosa puoi ottenere dopo aver completato questa guida
- Ospitare più siti web su un unico server Ubuntu
- Garantire comunicazioni sicure usando SSL/TLS moderni
- Migliorare la velocità e l’affidabilità del sito usando caching e compressione
- Diagnosticare rapidamente e risolvere i problemi usando i log di Apache e gli strumenti di sistema
✔ Prossimi passi consigliati
- Installa PHP e MySQL/MariaDB per creare un ambiente LAMP completo
- Distribuisci WordPress o un altro CMS
- Implementa soluzioni di backup automatico
- Considera l’uso di servizi cloud (AWS, GCP, Azure, ecc.)
Con una configurazione e manutenzione adeguate, un server web Ubuntu può offrire stabilità a lungo termine e prestazioni eccezionali.
Speriamo che questa guida ti aiuti a costruire un ambiente server affidabile e sicuro.



