Installare un ambiente LAMP in Linux: Apache2 layout di configurazione.

Creato il 25 gennaio 2014 da Hugor @msdiaz61

Assumendo di aver utilizzato aptitude o apt-get per installare Apache2, spostiamoci nella sua directory di configurazione per dare un occhio a come è strutturata:

# cd /etc/apache2
# ls

sites-available.

Questa directory conterrà i file con le configurazioni di ogni sito (conosciuti come virtual hosts) che vorrete servire con Apache. Uno sguardo alla directory:

ls sites-available/
...
default  default-ssl

ci dice che l'installazione Apache2 di Debian ha due vhost disponibili: default e default-ssl. Notate che la presenza di un virtual host in questa directory non significa che questo sia attivo e visibile dagli utenti; significa solo che sarà disponibile se verrà abilitato.
Tutto questo ci porta a...

sites-enabled.

Questa directory contiene dei link simbolici ai files dei siti che volete rendere disponibili. Per esempio, su un web server ci possono essere diversi siti pronti per essere pubblicati (configurati nella directory sites-available), ma solo quelli linkati simbolicamente in questa directory saranno realmente visibili dagli utenti. Diamo uno sguardo alla directory:

# ls -l sites-enabled
...
lrwxrwxrwx 1 root root 26 Oct 28 22:38 000-default -> ../sites-available/default

Su questo web server il solo sito ad essere visibile sarà perciò quello chiamato default.

mods-available.

Questa directory contiene i moduli di Apache2 pronti per essere resi disponibili.

mods-enabled.

Questa directory, come nel caso dei virtual host, contiene i link simbolici ai moduli effettivamente abilitati sul web server.

a2en e a2dis.

Essere buoni amministratori di sistema significa conoscere i comandi per renderci le cose più semplici.

a2dissite.

Questo comando cancella il link simbolico di un sito abilitato. Ad esempio il comando:

# a2dissite default

rende indisponibile il sito di default di Apache.

a2ensite.

Questo comando serve invece a abilitare un virtual host:

# a2ensite default

rimette le cose a posto, ripristinando il sito di default precedentemente disabilitato.

a2dismod.

Questo comando disabilita un modulo di Apache.

a2enmod.

Questo comando abilita un modulo di Apache.

Apache2: files di configurazione.

ports.conf

È il file che indica ad Apache su quali porte TCP/IP restare in ascolto:

NameVirtualHost *:80
Listen 80

<IfModule mod_ssl.c>
   # SSL name based virtual hosts are not yet supported, therefore no
   # NameVirtualHost statement here
   Listen 443
</IfModule>

La sintassi del file di default è molto semplice:

  • tutti i virtual host di Apache sono in ascolto sulla porta 80 (*:80)
  • il web server, se il modulo ssl è attivo, resta in ascolto di connessioni https sulla porta 443

Se volete aggiungere porte basterà inserire una riga del tipo:

Listen 8080

e riavviare Apache.

apache2.conf

È il file di configurazione principale di Apache su Debian. È estremamente ben commentato, ma può valer la pena lo stesso dare un'occhiata alle opzioni di configurazione principali.

Timeout

Default:

Timeout 300

Questa opzione imposta il tempo massimo, in secondi, durante il quale Apache aspetta una richiesta, la processa e le risponde. È impostato deliberatamente su un valore molto alto, ma è possibile ridurlo, portandolo a un sano 45 (o anche meno). Ridurre questo valore può anche aiutare a controbattere gli effetti di un attacco DOS.

KeepAlive

Default:

KeepAlive On

Questo parametro andrebbe lasciato su ON, poiché indica a Apache di mantenere aperta una connessione con il client, in modo che ogni file o immagine di un documento HTML non siano richiesti con una nuova connessione. Di seguito vedremo alcune impostazioni del parametro KeepAlive.

MaxKeepAliveRequests

Default:

MaxKeepAliveRequests 100

Per ogni connessione persistente attiva definisce il numero massimo di richieste possibili. Va tenuto alto per garantire efficienza. Se il vostro sito contiene parecchi javascript, immagini, etc, provate a aumentarlo a 200.

KeepAliveTimeout

Default:

KeepAliveTimeout 15

Descrive il tempo in secondi in cui ogni connessione persistente attiva aspetta per la prossima richiesta, prima di chiudersi definitivamente.

prefork MPM

Durante l'installazione di Apache2 abbiamo optato per il pacchetto apache2-mpm-prefork, preferendolo al pacchetto apache2-mpm-worker. Vi rimando alla documentazione ufficiale di Apache2 per le differenze.
Questo parametro definisce il comportamento di Apache2 MPM prefork.
Default:

<IfModule mpm_prefork_module>
   StartServers   5
   MinSpareServers   5
   MaxSpareServers   10
   MaxClients   150
   MaxRequestsPerChild   0
</IfModule>

  • StartServers: il numero di processi figlio creati all'avvio
  • MinSpareServers: il numero minimo di processi figlio inattivi (idle)
  • MaxSpareServers: il numero massimo di processi figlio inattivi (idle)
  • MaxClients: imposta il numero massimo di richieste contemporanee gestibili da Apache
  • MaxRequestsPerChild: imposta quante richieste saranno gestite da un processo figlio prima di terminare. Il valore 0 indica che il processo non termina mai. Modificare questo valore può aiutare la gestione della memoria RAM del server.
  • ServerName

Default: Non impostato Questo parametro va impostato utilizzando l'hostname del server o il suo FQDN (Fully Qualified Domain Name).

HostnameLookups

Default:

HostnameLookups Off

Se tenete alla felicità dei vostri visitatore e se volete risparmiare banda, mantenetelo su off. Altre impostazioni sono:

  • On: abilita le ricerche DNS lookup per loggare gli host names
  • Double: come On. In più controlla l'hostname.
ServerTokens

Default:

ServerTokens Full

Indica quante informazioni vengono inviate dal server nell'header. Può essere utile modificare il valore di default per una questione di sicurezza: meno informazioni forniamo sul nostro server, sulla versione di Apache e sui moduli installati, e meno facile sarà trovare un exploit per bucarci.

Le possibili opzioni sono:

  • Full
  • Apache/2.2.9 (Debian) PHP/5.2.6-1+lenny3 with Suhosin-Patch Server at demo
  • OS
  • Apache/2.2.9 (Debian) Server
  • Minimal
  • Apache/2.2.9 Server
  • Minor
  • Apache/2.2 Server
  • Major
  • Apache/2 Server
  • Prod
  • Apache Server
    ServerSignature

Default:

ServerSignature On

Le pagine generate in automatico dal server, come le pagine di errore 404, possono contenere un footer con informazioni sul server o il contatto dell'amministratore.
I possibili valori sono:

  • Off: non viene aggiunto alcun footer
  • On: vengono aggiunte informazioni sul server al livello definito da ServerTokens
  • Email: viene aggiunto anche l'indirizzo email dell'amministratore
  • Per approfondimenti vedi anche:

Installare un ambiente LAMP: Linux, Apache2, SSL, MySQL, PHP5
Backup di MySQL tramite script
Configurare MySQL per accettare connessioni remote

Se ti è piaciuto l'articolo , iscriviti al feed cliccando sull'immagine sottostante per tenerti sempre aggiornato sui nuovi contenuti del blog:


Potrebbero interessarti anche :

Possono interessarti anche questi articoli :