Apache-www-palvelimen ominaisuudet

Käydään läpi muutama hyödyllinen ominaisuus Apache-www-palvelimesta ja helpotetaan niillä omien sivujen ylläpitoa ja suojausta.

SSI (Server Side Includes)

Samanlaisena toistuvien elementtien lisääminen ja muokkaaminen on vaivalloista, sillä samaa koodia joudutaan normaalisti kopioimaan useille sivuille. Toistuvia osia ovat esimerkiksi vakionavigointipalkki ja päivitystiedot. Parempi ratkaisu on keskittää kaikille sivuille yhteiset osat samaan paikkaan ja liittää ne automaattisesti kullekin sivulle sopivaan paikkaan. Tähän voidaan käyttää esimerkiksi Apache-palvelimissa toimivaa SSI-tekniikkaa. WWW-palvelin tulkitsee dokumenttiin upotetut komennot ennen sivun lähettämistä selaimelle.

Tehtävä: Helpotetaan Nanonanon sivuston ylläpitoa siirtämällä kaikille dokumenteille yhteinen navigointi yhteen tiedostoon, josta sitä on helppoa keskitetysti ylläpitää.

  1. Aloita uusi täysin tyhjä dokumentti (ilman XHTML-deklaraatioita). Kopioi tähän dokumenttiin Nanonanon etusivulla olevan <div class="navbar">...</div>-osan lähdekoodi.
  2. Muuta kaikki navigointipalkin linkit puoliabsoluuttisiksi, jotta samat linkit toimivat miltä tahansa Nanonanon sivulta. Esim:
    <li><a href="/~omatunnus/www/artikkelit/">Artikkelit</a></li>
    
  3. Tallenna navigointipalkki navbar.include-nimellä Nanonanon kotisivuhakemistoon juureen W:\www\.
  4. Muuta W:\www\-hakemistossa olevan index.html-tiedoston nimeksi index.shtml.
    • Useissa Apache-palvelimissa oletuksena .shtml-päätteiset tiedostot prosessoidaan SSI-komentojen varalta. Hakemistosta palautetaan yleensä index.shtml-tiedosto, jos hakemistossa ei ole index.html-tiedostoa. Voimme siis käyttää hakemistoissa aivan hyvin index.shtml-nimisiä tiedostoja, koska linkkimme viittaavat hakemistoihin eivätkä index.html-tiedostoihin.
  5. Muuta index.shtml-tiedostoa siten, että korvaat navbar-lohkon seuraavalla SSI-komennolla:
    <!--#include virtual="/~omatunnuksesi/www/navbar.include"-->
  6. Kokeile selaimella miten etusivu toimii nyt selaimessa:
    http://users.jyu.fi/~omatunnus/www/

    Jos kaikki meni oikein, niin edellä lisäämäsi SSI-komennon tilalla pitäisi selaimessa näkyä ihan normaali navigointipalkki, jonka WWW-palvelin lisäsi navbar.include-tiedostosta SSI-komennon kohdalle.

  7. Varmista, että navigointipalkin linkit toimivat. Kokeile kaikkien linkkien toimintaa itse tai tarkista sivu W3C:n Link Checkerillä.
  8. Kokeillaan lisätä SSI:n avulla myös dokumentin muutosaika sivulle. Siirrä index.shtml-tiedoston lopussa oleva strong-elementti pois address-lohkosta ja sijoita se p-elementin sisälle address-lohkon perään. Korvaa aikamääre rivillä:
    <!--#config timefmt="%Y-%m-%d %T"--><!--#echo var="LAST_MODIFIED"-->
    • Ensimmäinen kommentti määrää SSI:n päivämäärämuotoilun.
    • Jälkimmäinen kommentti aiheuttaa varsinaisen muutosajankohdan lisäämisen.
    • Kokeile selaimella ilmestyikö muutosaika sivulle.
    • HUOM! Jos muutosajankohta tai muut SSI-komentosi eivät tunnu toimivan, niin varmista että hakemistossasi ei ole enää index.html- ja/tai index.htm-nimisiä tiedostoja. Jos niitä löytyy, niin silloin index.shtml-tiedostoja ei prosessoida hakemiston oletustiedostoiksi. Tällöin kyseiset index.html- ja/tai index.htm-tiedostot täytyy joko nimetä uudelleen tai poistaa, jotta index.shtml-tiedoston saa toimimaan hakemiston oletustiedostona.
  9. Tee ohjaus3.css:ään asiayhteydestä riippuva tyyli, joka siirtää address-lohkon jälkeisen p-elementin oikeaan laitaan address-lohkon alapuolelle. Tee vastaavat lisäykset myös Nanonanon sivuston mobiili.css-tiedostoon.
  10. Siirrä address-lohko omaan tiedostoon address.include. Lisää se etusivun loppuun SSI-komennolla:
    <!--#include virtual="/~omatunnuksesi/www/address.include"-->
    • Miksi päivitysajankohtaa ei voitu siirtää suoraan address.include-tiedostoon?
  11. Avaa pääteyhteys esimerkiksi PuTTY-ohjelmalla jalava.cc.jyu.fi-palvelimeen (tai halava.cc.jyu.fi). Siirry cd-komennolla symbolisen html-linkin alla olevaan www-hakemistoon.
  12. Aja komento
    nano -w .htaccess

    Komento luo .htaccess tiedoston, jolla voidaan ohjata Apache-palvelimen toimintaa hakemistokohtaisesti.

  13. Lisää .htaccess-tiedostoon seuraavat asetukset:
    AddHandler Server-Parsed .html 
    AddType text/html .html
    
    • Ensimmäisellä direktiivillä käsketään palvelimen etsiä mahdolliset SSI-komennot kaikista .html-päätteisistä tiedostoista.
    • Toinen määre varmistaa, että prosessoinnin jälkeenkin tiedostot jaetaan oikealla mediatyypillä. Apache 2 -WWW-palvelin jakaa oletuksena .shtml-päätteiset XHTML-tiedostot text/xml-muodossa, mikä ei sovi kaikille selaimille ja validaattoreille, joten pitää määrätä mediatyypiksi text/html.
    • Tavallisia .html-päätteisiä tiedostoja ei yleensä kannata automaattisesti parsia SSI-komentojen varalta, koska se aiheuttaa palvelimelle raskasta ja turhaa työtä. Tässä tehtävässä kaikkiin .html-tiedostoihin on kuitenkin tarkoitus lisätä navigointipalkki automaattisesti, joten operaatio on perusteltu.
    • Tallenna lopuksi tiedosto valinnalla Ctrl+O ja poistu tiedoston muokkauksesta valinnalla Ctrl+X.
  14. Lisää SSI-komentojen avulla navigointipalkki, tekijätiedot ja muutosajankohta ainakin artikkelit-, opiskelu- ja linkit-hakemistoissa oleville sivuille.
  15. Varmista W3C:n Link Checker -ohjelmalla, että navigointilinkit toimivat varmasti kaikilla alasivuilla.
  16. Validoi lopuksi HTML- ja CSS-koodit ja korjaa mahdolliset virheet.

Salasanasuojaus

Yksittäinen kansio ja sen alikansiot on helppo suojata salasanalla.

Käyttäjien kommentit

Kommentoi Lisää kommentti
Kurssimateriaalien käyttäminen kaupallisiin tarkoituksiin tai opetusmateriaalina ilman lupaa on ehdottomasti kielletty!
http://appro.mit.jyu.fi/itkp1011/ohjaus/ohjaus7/
© Tommi Lahtonen (tommi.j.lahtonen@jyu.fi) <http://hazor.iki.fi/>
2017-11-07 11:20:38
Informaatioteknologia - Jyväskylän yliopiston informaatioteknologian tiedekunta