GiBiLamp 5 – I virtual host

Dopo aver affrontato l’intera parte di installazione e configurazione dei pacchetti LAMP, proseguiamo la nostra serie dedicata a GiBiLamp entrando nel dettaglio della gestione dei virtual host.

Caratteristiche di ciascun sito

Ogni sito verrà caratterizzato dalle seguenti proprietà:

  • esiste un utente a livello di sistema che è proprietario del filesystem ove è alloggiato il sito
  • la home directory dell’utente in questione è la root del sito
  • al sito vengono associati 1 o 2 database
  • esiste un utente specifico di mysql che ha solo i privilegi necessari su questi 2 database
  • gli script php eseguiti all’interno del sito possono aver effetto solo all’interno della root del sito.

Virtual Host

Passiamo ora a parlare di virtual host, argomento che abbiamo già trattato nel capitolo precedente durante la fase di installazione di apache.

Di norma su ogni server esistono due host virtuali di default, uno che risponde sulla classica porta 80 (http) e l’altro sulla porta 443 (https). Questi due virtual host si differenziano nel file di configurazione perchè hanno in testa un voce rispettivamente simile a:

NameVirtualHost *:80

oppure

NameVirtualHost *:443

Questo significa che se non esiste alcun virtual host con nome sito identificato, allora in base al protocollo utilizzato risponderà uno dei due siti di default.

Per testare quali siano e come si presentano i siti di default del nostro server sarà sufficiente digitare sul browser web:

http://indirizzo_ip_macchina

o

https://indirizzo_ip_macchina

Notare che il sito di default può comparire quindi anche in caso di errori nella configurazione di altri nostri virtual host, per cui è utile renderlo comprensibile e sensato, magari inserendo le nostre informazioni di contatto.

Ora vedremo un esempio di Virtual Host completo, e ne commenteremo le righe di configurazione. Di norma i file di configurazione dei virtual host su sistemi come quello che abbiamo preparato nel capitolo precedente si trovano all’interno della cartella /etc/apache2/sites_available.

——————————————————

 <VirtualHost *:80>
        ServerAdmin assistenza@gibilogic.com
        ServerName torcese.it
        ServerAlias www.torcese.it
        ServerAlias torcese.com
        ServerAlias www.torcese.com
        DocumentRoot /var/www/torcese.it/htdocs

        <IfModule mod_fcgid.c>
            SuexecUserGroup torcese web
            PHP_Fix_Pathinfo_Enable 1
            IPCCommTimeout 120
        <Directory /var/www/torcese.it/htdocs/>
                Options +ExecCGI
                AllowOverride All
                AddHandler  fcgid-script .php
                FCGIWrapper /var/www/fcgi-wrapper/torcese.it/php-fcgi-starter .php
                Order allow,deny
                allow from all
        </Directory>
        </IfModule> 

        ErrorLog /var/log/apache2/torcese.it/error.log
        CustomLog /var/log/apache2/torcese.it/access.log combined
</VirtualHost>
<VirtualHost *:80>
        ServerAdmin assistenza@gibilogic.com
        ServerName demo.torcese.it
        DocumentRoot /var/www/torcese.it_demo/htdocs

        <IfModule mod_fcgid.c>
            SuexecUserGroup torcese web
            PHP_Fix_Pathinfo_Enable 1
        <Directory /var/www/torcese.it_demo/htdocs/>
                Options +ExecCGI
                AllowOverride All
                AddHandler  fcgid-script .php
                FCGIWrapper /var/www/fcgi-wrapper/torcese.it/php-fcgi-starter .php
                Order allow,deny
                allow from all
        </Directory>
        </IfModule> 

        ErrorLog /var/log/apache2/torcese/demo_error.log
        CustomLog /var/log/apache2/torcese/demo_access.log combined
</VirtualHost>

——————————————————

Nell’esempio sopra riportato si può notare che in un unico file di configurazione vengono trattati due siti distinti, uno contrassegnato dalla porzione verde e l’altro contrassegnato dalla porzione azzurra.

Il primo risponderà alle richieste via browser web con il nome:

  • http://torcese.it
  • http://www.torcese.it
  • http://torcese.com
  • http://www.torcese.com

Il secondo invece risponderà al solo indirizzo:

  • http://demo.torcese.it

E’ buona pratica creare dei siti in questo modo, ovvero con una versione di produzione e una dimostrativa. Infatti questa seconda porzione di sito sarà sfruttata per testare le modifiche al sito senza intaccare quello in produzione prima che il cliente lo approvi definitivamente. E’ importante che ognuno dei due “siti” abbia collegato un database diverso.

In entrambi i siti viene utilizzato il modulo fastcgi per l’esecuzione degli script con utente “torcese”. In questo modo gli script php su tale sito vengono eseguiti dall’utente che è anche il proprietario dello spazio web ed ha accesso all’area ftp del sito, ma non potrà uscire da questa gabbia.

L’ultimo aspetto fondamentale dei virtual host sono i file di log. Di norma per ogni sito esiste un file di log per gli accessi ed uno per gli errori, così come è dal nostro esempio. I file di log oltre ad essere molto utili nella fase di debug, lo sono anche per generare statistiche e report di utilizzo e per capire quali e quanti danni sono stati causati da una intrusione.

E’ quindi molto opportuno includere anche tutti i file di log all’interno di una procedura di backup.

Serie GiBiLamp

< Vai all’articolo precedente nella serie GiBiLamp

L’articolo successivo sarà pubblicato Venerdì 25 Novembre >

Tag: ,

Comment

I commenti sono chiusi.