Ari Rantala -> Oppaat -> Apache
Web-palvelin: muistiinpanot
7 . SSI - Server Side Includes
Server Side Includes (SSI), tunnetaan myös nimellä
Server Parsed HTML (SPML). HTML-tiedostoon voidaan upottaa komentoja
suoritettavaksi ennen varsinaista dokumentin siirtoa. Myös osa
HTML-koodista voidaan tuottaa CGI-ohjelmilla.
Web-palvelin siis kokoaa tällaiset HTML-tiedostot ennen
lähetystä. Koska palvelin ei normaalisti tutki
HTML-tiedostojen sisältöä, vaan lähettää
kopion niistä sellaisenaan, täytyy tällaiset
SPML-dokumentit jotenkin kertoa palvelimelle. Jos jokainen dokumentti
tutkittaisiin etukäteen, se hidastaisi palvelimen toimintaa
ratkaisevasti.
Huomaa
SSI:n merkitys on vähentynyt modernien
dynaamisten
Web-ohjelmointikielien kuten PHP:n yleistyessä. Lyhyesti sanottuna:
Prosentilla/promillella PHP:n ominaisuuksista hoitaa kaiken, mikä
SSI:llä on mahdollista.
|
SSI:n käyttöönotto
Ottamalla kommentit pois seuraavilta riveiltä
httpd.conf
(tai srm.conf) -tiedostossa SPML-dokumenteiksi valitaan kaikki .shtml
-loppuiset tiedostot. Palvelin siis tutkii tällaiset tiedostot
etukäteen ja suorittaa mahdolliset SSI-komennot ja kokoaa
lähetettävän tiedoston. Voit siis käyttää
SSI-komentoja tällaisissa tiedostoissa:
AddOutputFilter INCLUDES .shtml
Joissakin kokoonpanoissa määritys voidaan
tehdä
myös:
AddType text/html .shtml AddHandler server-parsed .shtml
Lisäksi httpd.conf-tiedostossa kerrotaan
Options-direktiivin
"Includes"-arvolla, missä hakemistoissa SSI-komennot ovat
käytettävissä:
Options Includes
Jos SSI-komentojen välityksellä halutaan ajaa
myös
CGI-ohjelmia, niin halutussa Directory-lohkossa tulee olla rivi:
Options Includes ExecCGI
Tällöin sekä
ympäristömuuttujat/tiedostotiedot
(Includes) että CGI-ohjelmien (ExecCGI) ajaminen sallitaan.
Muutamia SSI-komentoja
config, echo, exec, cmd, fsize, flastmod ja include
SSI-kommennot ovat syntaksiltaan muotoa:
<!--#komento optio=arvo optio=arvo ...-->
Esimerkkejä:
1. Viimeisimmän
muutospäivämäärän tulostus:
<!--#echo var="LAST_MODIFIED"-->
Tiedoston liitos (include)
Tätä voidaan käyttää sivuilla esim.
koko Web-palvelussa yhtenäisten valikkojen luomiseen jne. Kaikkia
sivuja voidaan muuttaa vaivattomasti muuttamalla vain top.html tai
bottom.html -tiedostoja:
<!--#include file="top.html"-->
..
..
<!--#include file="bottom.html"-->
Suorittaa halutun CGI-ohjelman. Liittää
CGI-ohjelman tulostuksen tähän kohtaan:
<!--#exec cgi="cgi-bin/counter.cgi"-->
counter.cgi
Varsinainen counter.cgi voisi olla yksinkertaisimmillaan
seuraava Shell-scripti. Scripti ei ota huomioon ( tiedoston
lukituksella ) yhtäaikaisia pyyntöjä, joten siinä
mielessä se ei ole täydellinen. Mutta se on täysin vapaa
ja hinta/laatusuhteeltaan hyvä! :
#!/bin/sh # Ari Rantala 2.3.1998 # Päättele toiminta itse.... # luku=`cat /home/ara/public_html/cgi-bin/kplmaara` luku=`expr $luku + 1` echo -e "Content-type: text/html" echo -e "" echo -e "Tällä sivulla käyty $luku kertaa" echo "$luku" > /home/ara/public_html/cgi-bin/kplmaara
|