Debian-swirl.png Versioni Compatibili

Tutte le versioni supportate di Debian

Introduzione

Dalla pagina dedicata di wikipedia:

Apache HTTP Server, o più comunemente Apache (IPA pronuncia: /aˈpætʃiː/), è il nome di un server web libero sviluppato dalla Apache Software Foundation. È la piattaforma server Web modulare più diffusa, in grado di operare su una grande varietà di sistemi operativi, tra cui UNIX/Linux, Microsoft Windows e OpenVMS.

Per usare parole più semplici un webserver è banalmente un applicativo usato per servire pagine web, ovvero è ciò che effettivamente rende disponibili agli utenti le pagine web che gli utenti richiedono quando inseriscono un indirizzo nel proprio browser.

  Info
Questa guida fa riferimento alle versioni di apache 2.4 e successive.


Installazione

Come scritto nell'introduzione Apache è un programma modulare e pertanto i pacchetti disponibili sono una miriade, ma per un'installazione base quelli che servono sono i seguenti:

# apt install apache 2 apache2-doc apache2-utils

Eventuali moduli aggiuntivi necessari saranno indicati ove richiesti.

Avvertimento "Could not reliably ... 127.0.0.1 ..."

Se durante l'installazione e/o ogni volta che si riavvia il webserver si nota il seguente avvertimento

apache2: Could not reliably determine the server's fully qualified domain name, using 127.0.0.1 for ServerName

Significa che il webserver non è in grado di determinare quale sia il suo nome di rete, fatto assolutamente comune nel caso di server domestici. Non si tratta di un errore critico in ambiti amatoriali, tuttavia è meglio risolvere il problema. Se non sia hanno server DNS installati la soluzione più semplice è quella di editare il file /etc/hosts aggiungendo una riga del tipo:

indirizzo_ip    nome_host.home.lan    nome_host

Dove indirizzo_ip è semplicemente l'indirizzo di rete locale del proprio webserver (es. 192.168.1.1), nome_host è il nome della macchina e home.lan è un dominio fittizio che può assumere qualunque valore nell'ipotesi di una comune rete domestica senza controller di rete o server DNS che gestiscano gli indirizzi LAN.
Esempio di file /etc/hosts:

127.0.0.1       localhost
192.168.1.1     pippo.home.lan     pippo

# The following lines are desirable for IPv6 capable hosts
::1     localhost ip6-localhost ip6-loopback
ff02::1 ip6-allnodes
ff02::2 ip6-allrouters

Se ciò non fosse vero, per esempio perché si sta usando una VPS remota, evidentemente sarà necessario avere un dominio registrato ed inserire i dati corretti (ma si tratterebbe di un caso di utilizzo avanzato e pertanto chi legge dovrebbe già avere le competenze per risolvere il problema).

Configurazione

  ATTENZIONE
Ogni qualvolta si aggiunge un file di configurazione, o se ne modifica uno sistente, è SEMPRE necessario riavviare il webserver col comando systemctl apache2 restart (sono richiesti i privilegi di root). Diversamente tali aggiunte/variazioni non verranno caricate, ovvero non saranno effettive.


Ci sono fondamentalmente quattro elementi (file e cartelle) per la configurazione di Apache2:

  • /etc/apache2/apache2.conf, il file più importante perché contenente le impostazioni che riguardano direttamente apache. Non richiede modifiche per i casi di utilizzo più semplici, come generalmente sono quelli di utilizzo SOHO.
  • /etc/apache2/ports.conf, il file che definisce su quali porte (e indirizzi) rimane in ascolto apache.
  • /etc/apache2/conf-available/, directory dove salvare file di configurazione opzionali e/o aggiuntivi.
  • /etc/apache2/sites-available/, directory dove specificare le configurazioni dei propri siti web.

/etc/apache2/ports.conf

La direttiva principale da dichiarare in questo file è Listen numero_porta.
Di default il file creato durante l'installazione contiene quanto segue:

# If you just change the port or add more ports here, you will likely also
# have to change the VirtualHost statement in
# /etc/apache2/sites-enabled/000-default.conf

Listen 80

<IfModule ssl_module>
        Listen 443
</IfModule>

<IfModule mod_gnutls.c>
        Listen 443
</IfModule>

# vim: syntax=apache ts=4 sw=4 sts=4 sr noet

dove si può notare al primo posto la direttiva Listen 80 che istruisce il webserver ad usare la porta numero 80 per le sue comunicazioni in chiaro (protocollo http). Non essendo specificato alcun indirizzo IP Apache rimarrà in ascolto su tutte le interfacce di rete disponibili (ma sempre e solo usando la porta 80).

  Nota
È possibile dichiarare più volte la direttiva Listen, in modo da permettere ad Apache di rimanere in ascolto su più interfacce e/o porte.

Sono inoltre presenti altri due blocchi (che hanno la stessa funzione dell'operatore logico "SE") nel caso si utilizzi la cifratura SSL (protocollo https), dove si specifica la porta numero 443.

  ATTENZIONE
Come sempre quando un servizio (Apache in questo caso) necessità di ricevere connessioni dal mondo esterno (tipicamente internet ) è necessario che l'eventuale firewall di rete (tipicamente quello in esecuzione sul proprio router) sia configurato in modo da reindirizzare correttamente le porte specificate. Si noti che tale operazione essendo specifica per ogni firewall/dispositivo non può essere trattata in questa guida (inoltre è sconsigliato provare a configurare un webserver se non si è nemmeno in grado di configurare opportunamente il proprio firewall).


Nei casi più comuni per utenti SOHO non vi è alcuna necessità di cambiare alcunché in questo file, tuttavia val la pena citare la possibilità di specificare un indirizzo IP oltre al numero di porta. In tale caso il webserver rimarrà in ascolto esclusivamente sull'interfaccia di rete cui corrisponde detto indirizzo, ad esempio specificando:

Listen 192.168.1.1:80

il webserver accetterà connessioni che provengano esclusivamente dall'interfaccia avente IP 192.168.1.1, sempre limitatamente alla sola porta 80.

  Nota
L'installazione base sebbene presenti già alcuni elementi di configurazione utili per servire pagine tramite https non è sufficiente a tale proposito, l'installazione dei certificati SSL è infatti ancora a carico dell'utente. Si veda l'apposita sezione di questa guida per maggiori informazioni.


/etc/apache2/conf-available/

Come già scritto questa directory può essere usata per salvare file di configurazione opzionali e/o aggiuntivi, ovvero per evitare di mettere mano direttamente al file di configurazione principale di apache (quindi principalmente per una questione di ordine).
È anche possibile usare questa cartella per la configurazione di applicativi extra come phpmyadmin (invece di usare la directory dedicata a normali siti web).

Attivazione configurazioni aggiuntive

Tutte le configurazioni specificate in /etc/apache2/conf-available/ non sono caricate a meno che non vengano prima attivate creando un collegamento simbolico in /etc/apache2/conf-enabled/. Per esempio posto di avere creato una propria configurazione aggiuntiva /etc/apache2/conf-available/mia_configurazione.conf sarà anche necessario creare il relativo collegamento simbolico col seguente comando:

# ln -s /etc/apache2/conf-available/mia_configurazione.conf /etc/apache2/conf-enabled/mia_configurazione.conf


/etc/apache2/sites-available/

Approfondimenti

Manpages

  • man apache2

Sitografia




Guida scritta da: Wtf 16:50, 26 mag 2019 (CEST)   Debianized 20%
Estesa da:
Verificata da:

Verificare ed estendere la guida | Cos'è una guida Debianized