Spesso si utilizza Apache in com­bi­na­zio­ne con i sistemi Linux. In par­ti­co­la­re, Ubuntu è l’ideale per l’in­stal­la­zio­ne del web server grazie alla sua solida community e alla do­cu­men­ta­zio­ne di­spo­ni­bi­le. In questo articolo ti spie­ghia­mo tutti i passaggi per in­stal­la­re e con­fi­gu­ra­re Apache su Ubuntu.

Apache su Ubuntu: i requisiti

Apache è uno dei web server più stabili e di­spo­ni­bi­li da più tempo. La sua po­po­la­ri­tà deriva dalla sca­la­bi­li­tà e dalla facilità di con­fi­gu­ra­zio­ne. Per in­stal­la­re Apache su Ubuntu 22.04, il pro­ces­so­re non deve sod­di­sfa­re par­ti­co­la­ri requisiti. La maggior parte dei pro­ces­so­ri moderni dovrebbe essere in grado di far girare Apache su Ubuntu. Aspetti fon­da­men­ta­li da ri­spet­ta­re sono so­prat­tut­to la memoria RAM di­spo­ni­bi­le e la capacità del disco fisso.

Apache utilizza una quantità minima di risorse di sistema ed è con­fi­gu­ra­bi­le su sistemi di vario tipo, compresi i computer desktop, i computer portatili, i server e le macchine virtuali. Per l’hosting di un sito web o di un’ap­pli­ca­zio­ne con molte fun­zio­na­li­tà po­treb­be­ro essere ne­ces­sa­rie più risorse per ottenere pre­sta­zio­ni ottimali. In questi casi ricordati che l’utilizzo di moduli potrebbe far salire i requisiti di sistema. Ad esempio, se desideri integrare un modulo per mi­glio­ra­re le pre­sta­zio­ni del web server Apache, il tuo sistema avrà bisogno di più spazio di ar­chi­via­zio­ne per il caching e altre ot­ti­miz­za­zio­ni.

Per poter con­fi­gu­ra­re il web server Apache è ne­ces­sa­rio sod­di­sfa­re le seguenti ca­rat­te­ri­sti­che:

  • Memoria RAM: 4 gigabyte
  • Sistema operativo: Ubuntu, utente con permessi di accesso sudo
  • Spazio su disco fisso: 5 gigabyte
  • Firewall: per il traffico HTTP e per bloccare le porte non ne­ces­sa­rie
  • Con­nes­sio­ne internet: per il download di pacchetti
Consiglio

L’Hosting Linux di IONOS supporta una serie di moduli Apache che ti con­sen­to­no di con­fi­gu­ra­re in modo rapido ed efficace il reverse proxy di Apache. Ap­pro­fit­ta anche delle pre­sta­zio­ni fles­si­bi­li e scalabili, della pro­te­zio­ne DDoS e delle migliori fun­zio­na­li­tà PHP.

Guida: in­stal­la­zio­ne di Apache su Ubuntu

Per l’in­stal­la­zio­ne di Apache, Ubuntu 22.04 utilizza lo strumento di gestione dei pacchetti APT. Per prima cosa, aggiorna l’indice dei pacchetti sul tuo sistema Ubuntu per as­si­cu­rar­ti che tutte le di­pen­den­ze ne­ces­sa­rie siano ag­gior­na­te.

Se l’in­stal­la­zio­ne non è di tipo locale, accedi tramite SSH al tuo server Ubuntu.

Primo passaggio: ag­gior­na­men­to della lista dei pacchetti

Apri il terminale ed esegui un ag­gior­na­men­to.

$ sudo apt update
bash

Secondo passaggio: in­stal­la­zio­ne del pacchetto Apache

Suc­ces­si­va­men­te, installa il pacchetto Apache e tutte le relative di­pen­den­ze uti­liz­zan­do il comando APT “install”.

$ sudo apt install apache2
bash

Terzo passaggio: modifica delle im­po­sta­zio­ni del firewall

Per con­fi­gu­ra­re Apache è ne­ces­sa­rio abilitare Un­com­pli­ca­ted Firewall (UFW) su Ubuntu. Dopo aver in­stal­la­to Apache su Ubuntu, Apache configura i profili ap­pli­ca­zio­ne in UFW che è possibile uti­liz­za­re per gestire il traffico verso le porte web.

Il seguente comando permette di vi­sua­liz­za­re l’elenco dei profili ap­pli­ca­zio­ne:

$ sudo ufw app list
bash

Il risultato mostra tre profili per Apache:

Immagine: Terminale Linux: elenco dei profili applicazione per Apache
Terminale: elenco dei profili ap­pli­ca­zio­ne per Apache
  • Apache: apre la porta TCP 80 per HTTP (con­nes­sio­ne non crit­to­gra­fa­ta)
  • Apache Full: apre le porte TCP 80 (HTTP, non crit­to­gra­fa­ta) e 443 (HTTPS, con crit­to­gra­fia TLS/SSL)
  • Apache Secure: apre solo la porta HTTPS 443 per una con­nes­sio­ne crit­to­gra­fa­ta

Poiché non abbiamo ancora con­fi­gu­ra­to SSL, possiamo aprire solo la porta 80.

$ sudo ufw allow 'Apache'
bash

Con il comando “status” puoi con­trol­la­re se le im­po­sta­zio­ni sono corrette.

$ sudo ufw status
bash

Quarto passaggio: test dello stato di Apache

Utilizza lo strumento System Manager “systemd” per con­trol­la­re se il servizio Apache è attivo.

$ sudo systemctl status apache2
bash

Quinto passaggio: apertura della pagina pre­de­fi­ni­ta di Apache

Digita l’indirizzo IP nella barra degli indirizzi del browser per aprire la pagina pre­de­fi­ni­ta di Apache. Se non conosci il tuo indirizzo IP, puoi vi­sua­liz­zar­lo con il comando “hostname”.

$ hostname -I
bash

In al­ter­na­ti­va puoi uti­liz­za­re lo strumento icanhazip.

$ curl -4 icanhazip.com
bash

Quindi, apri la pagina pre­de­fi­ni­ta di Apache nel tuo browser e incolla il tuo indirizzo IP al posto di “server_ip”.

http://server_ip

La figura seguente mostra una parte della pagina su Ubuntu:

Immagine: Browser: pagina predefinita di Apache su Ubuntu
Browser: pagina pre­de­fi­ni­ta di Apache su Ubuntu

Sesto passaggio: gestione del demone Apache

È possibile gestire il demone o il servizio del web server Apache con “systemctl”.

Per avviare il web server Apache:

$ sudo systemctl start apache2
bash

Per arrestare il web server Apache:

$ sudo systemctl stop apache2
bash

Per arrestare e riavviare il web server Apache:

$ sudo systemctl restart apache2
bash

Per riavviare Apache e ri­ca­ri­ca­re la con­fi­gu­ra­zio­ne:

$ sudo systemctl reload apache2
bash

Quando installi Apache su Ubuntu, il web server parte au­to­ma­ti­ca­men­te dopo la con­fi­gu­ra­zio­ne durante la fase di boot. In al­ter­na­ti­va, puoi di­sat­ti­va­re questa funzione:

$ sudo systemctl disable apache2
bash

Per riat­ti­va­re l’avvio au­to­ma­ti­co di Apache durante la fase di boot, digita il seguente comando:

$ sudo systemctl enable apache2
bash

Settimo passaggio: utilizzo di host virtuali

Per im­po­sta­zio­ne pre­de­fi­ni­ta, Apache utilizza il percorso /var/www/html per l’hosting dei documenti. Per uti­liz­za­re più domini su un server è possibile con­fi­gu­ra­re degli host virtuali. All’interno di /var/www/ creiamo una struttura di cartelle per il nostro dominio.

$ sudo mkdir /var/www/your_domain
bash

So­sti­tui­sci “your_domain” con il tuo dominio.

Assegna le proprietà della cartella con la variabile di ambiente $USER:

$ sudo chown -R $USER:$USER /var/www/your_domain
bash

È possibile assegnare permessi di lettura, scrittura ed ese­cu­zio­ne anche espres­sa­men­te in modalità ottale:

$ sudo chmod -R 755 /var/www/your_domain
bash

Ottavo passaggio: creazione della pagina di prova

Crea un file index.html come pagina iniziale per il tuo dominio. A tal fine puoi uti­liz­za­re ad esempio l’editor di testo nano.

$ sudo nano /var/www/your_domain/index.html
bash

Scegli una frase e in­se­ri­sci­la nel file HTML:

<html>
    <head>
        <title>Welcome to your_domain!</title>
    </head>
    <body>
        <h1>Here you can see that your_domain virtual host is successfully working!</h1>
    </body>
</html>
html

Nono passaggio: creazione del file di con­fi­gu­ra­zio­ne per l’host virtuale

Per vi­sua­liz­za­re la pagina di esempio, è ne­ces­sa­rio con­fi­gu­ra­re Apache in modo adeguato per il dominio. Crea un file di con­fi­gu­ra­zio­ne per­so­na­liz­za­to per il tuo dominio e lascia invariato il file di con­fi­gu­ra­zio­ne pre­de­fi­ni­to di Apache.

$ /etc/apache2/sites-available/your_domain.conf
bash

Inserisci il blocco seguente e so­sti­tui­sci “your_domain” con il nome del tuo dominio. Digita inoltre un indirizzo e-mail per l’am­mi­ni­stra­to­re in “Ser­ve­rAd­min”:

<VirtualHost *:80>
    ServerAdmin webmaster@localhost
    ServerName your_domain
    ServerAlias www.your_domain
    DocumentRoot /var/www/your_domain
    ErrorLog ${APACHE_LOG_DIR}/error.log
    CustomLog ${APACHE_LOG_DIR}/access.log combined
</VirtualHost>

Attiva il file di con­fi­gu­ra­zio­ne con “a2ensite”:

$ sudo a2ensite your_domain.conf
bash

Disattiva la vecchia pagina pre­de­fi­ni­ta:

$ sudo a2dissite 000-default.conf
bash

Prova la con­fi­gu­ra­zio­ne per con­trol­la­re se contiene errori:

$ sudo apache2ctl configtest
bash

Se tutto è corretto, riavvia Apache:

$ sudo systemctl restart apache2
bash

Vai alla tua pagina iniziale:

http://your_domain

Ora dovresti riuscire a vedere la tua pagina di esempio:

Immagine: Browser: pagina di esempio per un host virtuale
Browser: pagina di esempio per un host virtuale

Decimo passaggio: file e cartelle im­por­tan­ti di Apache

Per un utilizzo ef­fi­cien­te del web server Apache è utile conoscere alcuni file e alcune cartelle uti­liz­za­ti di frequente:

  • /var/www/html: Apache pone i documenti in questa cartella come im­po­sta­zio­ne pre­de­fi­ni­ta. È comunque possibile cambiare la cartella nei file di con­fi­gu­ra­zio­ne.
  • /etc/apache2: Apache conserva qui tutti i file di con­fi­gu­ra­zio­ne.
  • /etc/apache2/apache2.conf: questo è il file di con­fi­gu­ra­zio­ne prin­ci­pa­le. Questo file permette di mo­di­fi­ca­re la con­fi­gu­ra­zio­ne nel suo insieme.
  • /etc/apache2/ports.conf: questo file contiene l’elenco delle porte aperte. Di solito si tratta della porta 80 e/o della porta 443.
  • /etc/apache2/sites-available/: in questa cartella si trovano gli host virtuali con­fi­gu­ra­ti. I file di con­fi­gu­ra­zio­ne al suo interno devono essere collegati con la cartella “site-enabled” per poter fun­zio­na­re.
  • /etc/apache2/conf-available/, /etc/apache2/conf-enabled/: questa cartella contiene ulteriori file di con­fi­gu­ra­zio­ne che non fanno parte degli host virtuali. Per attivare la con­fi­gu­ra­zio­ne puoi uti­liz­za­re “a2enconf”; per la di­sat­ti­va­zio­ne, “a2disconf”.
  • /etc/apache2/mods-available/, /etc/apache2/mods-enabled/: queste cartelle con­ten­go­no i moduli di­spo­ni­bi­li e attivati. È possibile attivare un modulo con “a2enmod” e di­sat­ti­var­lo con “a2dismod”.
  • /var/log/apache2/access.log: questo file di log contiene tutte le richieste inviate al web server.
  • /var/log/apache2/error.log: questo file contiene un registro di tutti i messaggi di errore. L’in­for­ma­zio­ne LogLevel indica la gravità degli eventi.
Vai al menu prin­ci­pa­le