ePrometeusCorsoLinuxLinux
testi articoli
Testi Articoli  Download
Home | OpenSource | PhpNuke | Programming | SysAdm | 
CorsoJava è ora Video! Free for all!
Clicca Qui!
SSI SERVER SIDE INCLUDES
Server Side Include: il puzzle del Web
Cosa sono gli SSI
SSI e Apache
Inclusioni
Variabili
Controllo di Flusso
Conclusioni


<<< SSI e Apache >>>

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.


ePrometeus s.r.l. - Web Software House & Open Source System Integrator
MILANO - SAN BENEDETTO DEL TRONTO(AP)
Contatti: info@eprometeus.com