|
La
prima cosa da specificare è di quali Server Side Include
stiamo parlando. Gli SSI infatti sono speciali tag, di cui vedremo la
sintassi nel corso di questo articolo. La specifica sintassi però
dipende dal particolare Web Server che si stat utilizzando, in quanto
ognuno ha i suoi. Esiste uno standard de facto che però è
limitato al supporto SSI previsto dai primi Web Server (NCSA e CERN).
Ogno Web Server può avere delle estensioni che possono essere
specifiche solo per esso (o meglio, specifiche per una particolare
versione di un particolare Web Server). In questo articolo tratteremo
gli SSI previsti dal Web Server Apache versione 1.3.9; quanto segue è
valido sia per Linux/Unix che per Windows. Più correttamente
gli SSI di Apache sono chiamati XSSI (eXtended Server Side Include)
perché sono estesi rispetto alla versione originaria.
E'
importante notare che gli SSI non sono necessariamente già
attivati nell'installazione standard, perché l'operazione di
analizzare le pagine per eseguire gli SSI rallenta, seppur in maniera
minima, l'invio di pagine. Comunque niente paura: leggere la pagina
dal disco per mandarla al Web Server è più lento di un
ordine di grandezza rispetto all'esecuzione del codice di SSI. Per
capirci, se leggere la pagina dal disco per mandarla al browser
impiega un millesimo di secondo, l'esecuzione degli SSI impiega al
più un milionesimo di secondo. Sono cifre inventate, quello
che intendo dire è che il tempo di esecuzione di un SSI è
irrilevante rispetto al tempo di lettura dal disco, quindi è
assolutamente fuori luogo preoccuparsi di non usare gli SSI per
non rallentare. Questo perché i processori sono sempre di
gran lunga più veloci dei dischi, per quanto nuovi ed
efficienti. Senza dimenticare che poi c'è di mezzo la rete,
che anche questa è di un ordine di grandezza più lenta
di un disco. Come dire, il rallentamento indottto dall'esecuzione di
un SSI è assolutamente irrilevante. Se la vostra pagina
non riceve almeno 1000 richieste al secondo (La home di Yahoo,
forse?), non vale la pena preoccuparsene.
Per
attivare gli SSI occorre accertarsi innanzitutto che sia stato
compilato o caricato il modulo mod_include. Per verificare si
può eseguire il comando
httpd -l
Se
nella lista non compare il mod_include, è possibile che
detto modulo possa essere caricato dinamicamente. Questo è il
caso dell'Apache precompilato che è presente in alcune
distribuzioni di Linux tra cui RedHat. In tal caso nei file di
configurazione deve essere presente qualcosa come:
LoadModule includes_module modules/mod_include.so
AddModule mod_include.c
Una volta che ci siamo accertati che il modulo è
attivo, dobbiamo ancora comunicare al server quali file vogliamo che
vengano gestiti come server side include. Come detto, non è il
comportamento predefinito per cui deve essere esplicitamente
abilitato. Ci sono due modi. Un modo è quello di far
corrispondere ad una estensione ai file che devono essere eseguiti
come SSI. Di solito si usa l'estensione .shtml Per fare questo
occorre inserire nei file di configurazione le seguenti righe:
AddType text/html .shtml
AddHandler server-parsed .shtml
Un altro modo, valido solo in ambiente Unix, è
quello di comunicare al server che deve considerare file da esaminare
per SSI quelli che hanno il bit x impostato. Il bit x è un
attributo dei file (che normalmente indica i file di tipo eseguibile)
presente solo nei sistemi Unix (e quindi Linux). Per utilizzare
questa tecnica occorre abilitarla con
XBitHack on
Notare che non è particolarmente agevole da gestire, perché
complica il trasferimento dei file , specialmente quando si effettua
l'aggiornamento di un sito da remoto via FTP.
In entrambi i casi bisogna accertarsi
che la directory che contiene i file SSI sia abilitata alla loro
esecuzione. Se per esempio la directory che contiene gli SSI si
chiama /home/httpd/html/ssi
occorre aggiungere da qualche parte nel file di configurazione
<Directory /home/httpd/html/ssi>
Options +Include
</Directory>
Questo perché ogni directory di Apache ha delle opzioni di
protezione che sono separatamente impostabili, e l'esecuzione di SSI
deve essere esplicitamente attivata. Notare infine che è
possibile attivare l'esecuzione di SSI escludendo però
l'esecuzione di un comando SSI, exec, usando Options
+IncludesNOEXEC. Il comando permette l'esecuzione di script cgi e
di generici comandi sul server pertanto è molto pericoloso
per la sicurezza e viene abilitato solamente per pagine considerate
sicure o fatte da persone fidate. Viene spesso escluso da chi
fornisce servizio di hosting di pagine.
|