Ero sivun ”Apache HTTPD:n asetukset” versioiden välillä

Linux.fista
Siirry navigaatioon Siirry hakuun
pEi muokkausyhteenvetoa
 
(22 välissä olevaa versiota 14 käyttäjän tekeminä ei näytetä)
Rivi 1: Rivi 1:
Kyseessä on OPEKO:n kurssille (30-31.1.2006 / Timo Kapanen) tehtyä materiaalia, josta on poistettu kuvat ja muita vain kurssille kuuluvaa materiaalia.
[[Apache HTTPD]] on ylivoimaisesti käytetyin www-palvelin, joka mukautuu helposti haluamiisi tarpeisiin. Apache HTTPD löytyy myös [[Windows]]-alustalle.


Apache on Linuxin puolella ylivoimainen www-palvelin, joka mukautuu helposti haluamiisi tarpeisiin. Kyseinen ohjelmisto löytyy myös Windows alustalle (siis testailtavaksi, palvelimeksi ei kannata Microsoftin tuotteita ottaa käyttöön).
Apachen määritykset ovat [[asetustiedosto]]ssa <tt>/etc/httpd/conf/httpd.conf</tt> tai <tt>/etc/apache2/httpd.conf</tt>. Kyseinen tiedosto sisältää runsaasti kommentteja, joiden avulla on helppo päästä alkuun Apachen hallinnassa. Lisätietoja löytyy Apachen [https://httpd.apache.org/docs-2.0/ ohjeista]. Alla on pyritty suomentamaan ja selkeyttämään ohjeita. Ohjeistus on tehty kommenttimuotoon Apachen asetustiedostoon, jolloin voit halutessasi siirtää sen sellaisenaan oman asetustiedostosi pohjaksi.


Apachen määritykset ovat tiedostossa /etc/httpd/conf/httpd.conf. Kyseinen tiedosto sisältää runsaasti kommentteja, joiden avulla on helppo päästä alkuun Apachen hallinnassa. Lisätietoja löytyy erittäin hyvin tehdystä dokumentoinnista ja ohjeistuksesta Apachen www-saitilta (http://httpd.apache.org/docs-2.0/). Alla on pyritty suomentamaan ja selkeyttämään dokumenttia. Kyseinen ohjeistus on tehty kommenttimuotoon, jolloin voit halutessasi siirtää sen sellaisenaan omien konfiguraatioidesi pohjaksi.
<source lang="bash">


[[Apache harjoituksia]] on harjoituksia osiossa.
# Piilottaa käynnissä olevat moduulit näkymästä maailmalle
 
# Tarkemmat ohjeet <URL:http://httpd.apache.org/docs-2.0/>
 
# Määritykset jaettu kolmeen perustyyppiin
#  1. Määritykset, jotka koskettavat Apache palvelimen prosesseja
# kokonaisuudessaan (globaali ympäristö)
#  2. Määritykset, jotka koskettavat Apache palvelimen pääsivustoa
# (main/default server) eli vastaa niistä määrityksistä, joita ei ole
# erikseen määritetty virtuaalipalvelimille. Nämä määritykset antavat
# myös perusasetukset virtuaalipalvelimille.
#  3. Virtuaalipalvelinten määritykset
 
### 1: globaali ymp.
 
# Piilottaa käynnissä olevat modulit näkymästä maailmalle
ServerTokens OS
ServerTokens OS


# Palvelimen juurihakemisto, mistä löytyvät konfiguraatio-, logi- ja
# Palvelimen juurihakemisto, mistä löytyvät asetus-, loki- ja
# virhetiedostot.
# virhetiedostot.
ServerRoot "/etc/httpd"
ServerRoot "/etc/httpd"


# Tiedosto, joka sisältää httpd:n käynnistyessään saaman prosessinumeron
# Tiedosto, joka sisältää HTTPD:n käynnistyessään saaman prosessinumeron
PidFile run/httpd.pid
PidFile run/httpd.pid


# Aika sekunneissa kauanko palvelin odottaa vastausta pyyntöön
# Aika sekunneissa kauanko palvelin odottaa vastausta pyyntöön
# Pyyntö voi olla
# Pyyntö voi olla
# GET
# GET
# POST / PUT pyyntöjen välinen TCP-pakettien aika
# POST- / PUT-pyyntöjen välinen TCP-pakettien aika
# TCP-pakettien kättelyjen (ACK) välinen aika
# TCP-pakettien kättelyjen (ACK) välinen aika
Timeout 120
Timeout 120


# Sallitaanko jatkuva yhteys (enemmän kuin yksi pyyntö / yhteys)
# Sallitaanko jatkuva yhteys (enemmän kuin yksi pyyntö / yhteys)
# Nopeuttaa staattisten sivujen käsittelyä, oletuksena pois
# Nopeuttaa staattisten sivujen käsittelyä, oletuksena pois päältä
KeepAlive Off
KeepAlive Off


# Jos edellinen käytössä, niin montako kyselyä samaan yhteyteen
# Jos edellinen käytössä, niin montako kyselyä samaan yhteyteen
MaxKeepAliveRequests 100
MaxKeepAliveRequests 100


# Montako sekunttia odotetaan pyyntöä samasta yhteydestä ennen sen
# Montako sekuntia odotetaan pyyntöä samasta yhteydestä ennen sen
# sulkemista. Ruuhkaisilla palvelimilla ei kannata odottaa liian kauaa
# sulkemista. Ruuhkaisilla palvelimilla ei kannata odottaa liian kauaa
KeepAliveTimeout 15
KeepAliveTimeout 15


# prefork MPM on oletus, worker MPM pitää määrittää asennuksessa erikseen
# prefork MPM on oletus, worker MPM pitää määrittää asennuksessa erikseen
# StartServers: montako palvelinprosessia käynnistetään
# StartServers: montako palvelinprosessia käynnistetään
# MinSpareServers: minimimäärä varapalvelinprosesseja
# MinSpareServers: minimimäärä varapalvelinprosesseja
# MaxSpareServers: maksimimäärä varapalvelinprosesseja
# MaxSpareServers: maksimimäärä varapalvelinprosesseja
# ServerLimit: Maxclients muuttujan maksimimäärä (Älä muuta)
# ServerLimit: Maxclients muuttujan maksimimäärä (Älä muuta)
# MaxClients: Käynnistettävien serveriprosessien maksimimäärä
# MaxClients: Käynnistettävien serveriprosessien maksimimäärä
# MaxRequestsPerChild: palvelinprosessin tarjoamien pyyntöjen
# MaxRequestsPerChild: palvelinprosessin tarjoamien pyyntöjen
# maksimimäärä
# maksimimäärä
<IfModule prefork.c>
<IfModule prefork.c>
StartServers      8
StartServers      8
Rivi 65: Rivi 50:
</IfModule>
</IfModule>


# worker MPM
# worker MPM
<IfModule worker.c>
<IfModule worker.c>
StartServers        2
StartServers        2
Rivi 75: Rivi 60:
</IfModule>
</IfModule>


# Jos haluat Apachen kuuntelevan vain tiettyä Ip-osoitetta ja/tai porttia
# Jos haluat Apachen kuuntelevan vain tiettyä Ip-osoitetta ja/tai porttia
#Listen 12.34.56.78:80
# Portti 80 on http:n oletusportti
#Listen 12.34.56.78:80
Listen 80
Listen 80


# Dynamic Shared Object (DSO) Support (Linkkikirjastojen tuki)
# Dynamic Shared Object (DSO) Support (Linkkikirjastojen tuki)
# Lisätietoja: http://httpd.apache.org/docs/2.0/mod/
# Lisätietoja: https://httpd.apache.org/docs/2.0/mod/
LoadModule access_module modules/mod_access.so <br>
LoadModule access_module modules/mod_access.so
LoadModule auth_module modules/mod_auth.so <br>
LoadModule auth_module modules/mod_auth.so
LoadModule auth_anon_module modules/mod_auth_anon.so <br>
LoadModule auth_anon_module modules/mod_auth_anon.so
LoadModule auth_dbm_module modules/mod_auth_dbm.so <br>
LoadModule auth_dbm_module modules/mod_auth_dbm.so
LoadModule auth_digest_module modules/mod_auth_digest.so <br>
LoadModule auth_digest_module modules/mod_auth_digest.so
LoadModule ldap_module modules/mod_ldap.so <br>
LoadModule ldap_module modules/mod_ldap.so
LoadModule auth_ldap_module modules/mod_auth_ldap.so <br>
LoadModule auth_ldap_module modules/mod_auth_ldap.so
LoadModule include_module modules/mod_include.so <br>
LoadModule include_module modules/mod_include.so
LoadModule log_config_module modules/mod_log_config.so <br>
LoadModule log_config_module modules/mod_log_config.so
LoadModule logio_module modules/mod_logio.so <br>
LoadModule logio_module modules/mod_logio.so
LoadModule env_module modules/mod_env.so <br>
LoadModule env_module modules/mod_env.so
LoadModule mime_magic_module modules/mod_mime_magic.so <br>
LoadModule mime_magic_module modules/mod_mime_magic.so
LoadModule cern_meta_module modules/mod_cern_meta.so <br>
LoadModule cern_meta_module modules/mod_cern_meta.so
LoadModule expires_module modules/mod_expires.so <br>
LoadModule expires_module modules/mod_expires.so
LoadModule deflate_module modules/mod_deflate.so <br>
LoadModule deflate_module modules/mod_deflate.so
LoadModule headers_module modules/mod_headers.so <br>
LoadModule headers_module modules/mod_headers.so
LoadModule usertrack_module modules/mod_usertrack.so <br>
LoadModule usertrack_module modules/mod_usertrack.so
LoadModule setenvif_module modules/mod_setenvif.so <br>
LoadModule setenvif_module modules/mod_setenvif.so
LoadModule mime_module modules/mod_mime.so <br>
LoadModule mime_module modules/mod_mime.so
LoadModule dav_module modules/mod_dav.so <br>
LoadModule dav_module modules/mod_dav.so
LoadModule status_module modules/mod_status.so <br>
LoadModule status_module modules/mod_status.so
LoadModule autoindex_module modules/mod_autoindex.so <br>
LoadModule autoindex_module modules/mod_autoindex.so
LoadModule asis_module modules/mod_asis.so <br>
LoadModule asis_module modules/mod_asis.so
LoadModule info_module modules/mod_info.so <br>
LoadModule info_module modules/mod_info.so
LoadModule dav_fs_module modules/mod_dav_fs.so <br>
LoadModule dav_fs_module modules/mod_dav_fs.so
LoadModule vhost_alias_module modules/mod_vhost_alias.so <br>
LoadModule vhost_alias_module modules/mod_vhost_alias.so
LoadModule negotiation_module modules/mod_negotiation.so <br>
LoadModule negotiation_module modules/mod_negotiation.so
LoadModule dir_module modules/mod_dir.so <br>
LoadModule dir_module modules/mod_dir.so
LoadModule actions_module modules/mod_actions.so <br>
LoadModule actions_module modules/mod_actions.so
LoadModule speling_module modules/mod_speling.so <br>
LoadModule speling_module modules/mod_speling.so
LoadModule userdir_module modules/mod_userdir.so <br>
LoadModule userdir_module modules/mod_userdir.so
LoadModule alias_module modules/mod_alias.so <br>
LoadModule alias_module modules/mod_alias.so
LoadModule rewrite_module modules/mod_rewrite.so <br>
LoadModule rewrite_module modules/mod_rewrite.so
LoadModule proxy_module modules/mod_proxy.so <br>
LoadModule proxy_module modules/mod_proxy.so
LoadModule proxy_ftp_module modules/mod_proxy_ftp.so <br>
LoadModule proxy_ftp_module modules/mod_proxy_ftp.so
LoadModule proxy_http_module modules/mod_proxy_http.so <br>
LoadModule proxy_http_module modules/mod_proxy_http.so
LoadModule proxy_connect_module modules/mod_proxy_connect.so <br>
LoadModule proxy_connect_module modules/mod_proxy_connect.so
LoadModule cache_module modules/mod_cache.so <br>
LoadModule cache_module modules/mod_cache.so
LoadModule suexec_module modules/mod_suexec.so <br>
LoadModule suexec_module modules/mod_suexec.so
LoadModule disk_cache_module modules/mod_disk_cache.so <br>
LoadModule disk_cache_module modules/mod_disk_cache.so
LoadModule file_cache_module modules/mod_file_cache.so <br>
LoadModule file_cache_module modules/mod_file_cache.so
LoadModule mem_cache_module modules/mod_mem_cache.so <br>
LoadModule mem_cache_module modules/mod_mem_cache.so
LoadModule cgi_module modules/mod_cgi.so <br>
LoadModule cgi_module modules/mod_cgi.so


# Lataa määritystiedostot hakemistosta "/etc/httpd/conf.d".
# Lataa määritystiedostot hakemistosta "/etc/httpd/conf.d".
Include conf.d/*.conf
Include conf.d/*.conf


# ExtendedStatus määrittää luoko Apache täyden vai perustilainformaation
# ExtendedStatus määrittää luoko Apache täyden vai perustilainformaation
# kun "server-status" käsittelijää kutsutaan. Oletuksena Off.
# kun "server-status" käsittelijää kutsutaan. Oletuksena Off.
#ExtendedStatus On
#ExtendedStatus On


# httpd käyttäjä ja käyttäjäryhmä
# httpd-käyttäjä ja -käyttäjäryhmä
User apache
User apache
Group apache
Group apache


### 2: "Pääpalvelimen" määritykset
### 2: "Pääpalvelimen" määritykset
# Kaikkia näitä määrityksiä voi käyttää virtuaalipalvelimissa,
# Kaikkia näitä määrityksiä voi käyttää virtuaalipalvelimissa,
# jolloin ne korvaavat tässä esitetyt
# jolloin ne korvaavat tässä esitetyt


# Mihin osoitteeseen virheet tulee postitttaa
# Mihin osoitteeseen virheet tulee postitttaa
ServerAdmin root@localhost
ServerAdmin root@localhost


# Servername määrittää nimen ja portin, jolla palvelin tunnistaa itsensä.
# Servername määrittää nimen ja portin, jolla palvelin tunnistaa itsensä.
# Jollei palvelimen nimi ole rekisteröity, niin laita tähän ip-osoite
# Jollei palvelimen nimi ole rekisteröity, niin laita tähän ip-osoite
# Tällöin uudelleenohjaukset toimivat varmemmin
# Tällöin uudelleenohjaukset toimivat varmemmin
#ServerName www.example.com:80
#ServerName www.example.com:80


# UseCanonicalName määrittää kuinka Apache luo itseensä viittaavat URL:t.  
# UseCanonicalName määrittää kuinka Apache luo itseensä viittaavat URL:t.  
# sekä SERVER_NAME ja SERVER_PORT muuttujat.
# sekä SERVER_NAME ja SERVER_PORT muuttujat.
# "Off", Apache käyttää asiakkaalta tulevaa Hostname ja Port arvoa
# "Off", Apache käyttää asiakkaalta tulevaa Hostname ja Port arvoa
# "On", Apache käyttää ServerName määritettä (yllä)
# "On", Apache käyttää ServerName määritettä (yllä)
# Esimerkki:
# Esimerkki:
# Käyttäjät kirjautuvat sisäverkon www-palvelimeen lyhennetyllä nimellä  
# Käyttäjät kirjautuvat sisäverkon www-palvelimeen lyhennetyllä nimellä  
# kuten www. Mikäli URL sisältää myös hakemiston esim. http://www/splat
# kuten www. Mikäli URL sisältää myös hakemiston esim. http://www/splat
# ilman lopussa olevaa kauttaviivaa, niin Apache ohjaa osoitteeseen
# ilman lopussa olevaa kauttaviivaa, niin Apache ohjaa osoitteeseen
# http://www.example.com/splat/. Tämä tuottaa autentikoinnin tapauksessa
# http://www.example.com/splat/. Tämä tuottaa autentikoinnin tapauksessa
# sen, että käyttäjän tarvitsee kirjautua kahdesti (kerran www ja kerran
# sen, että käyttäjän tarvitsee kirjautua kahdesti (kerran www ja kerran
# www.example.com). Mutta jos UseCanonicalName on "Off", niin Apache  
# www.example.com). Mutta jos UseCanonicalName on "Off", niin Apache  
# ohjaa oikeaan osoitteeseen http://www/splat/.
# ohjaa oikeaan osoitteeseen http://www/splat/.
UseCanonicalName Off
UseCanonicalName Off


# DocumentRoot: oletushakemisto sivustoille
# DocumentRoot: oletushakemisto sivustoille
DocumentRoot "/var/www/html"
DocumentRoot "/var/www/html"


# Jokaiseen hakemistoon (johon Apachella on pääsy) voidaan määrittää
# Jokaiseen hakemistoon johon Apachella on pääsy voidaan määrittää
# palvelut ja ominaisuudet jotka sallitaan / kielletään kyseisessä
# palvelut ja ominaisuudet jotka sallitaan / kielletään kyseisessä
# hakemistossa ja sen alihakemistoissa
# hakemistossa ja sen alihakemistoissa
# Oletukseksi määritetään hyvin rajoitetut ominaisuudet  
# Oletukseksi määritetään hyvin rajoitetut ominaisuudet  
<Directory />
<Directory />
    Options FollowSymLinks
  Options FollowSymLinks
    AllowOverride None
  AllowOverride None
</Directory>
</Directory>


# Tästä eteenpäin sinun tulee erityisesti sallia (enable) tietyt
# Tästä eteenpäin sinun tulee erityisesti sallia (enable) tietyt
# ominaisuudet
# ominaisuudet
# Vaihda myös tämä, jos vaihdat DocumentRoot määritettä (yllä).
# Vaihda myös tämä, jos vaihdat DocumentRoot määritettä (yllä).
<Directory "/var/www/html">
<Directory "/var/www/html">


# Mahdollisia arvoja Options määritteelle ovat "None", "All",
# Mahdollisia arvoja Options määritteelle ovat "None", "All",
# tai mikä tahansa yhdistelmä seuraavista
# tai mikä tahansa yhdistelmä seuraavista
# Indexes Includes FollowSymLinks SymLinksifOwnerMatch ExecCGI MultiViews
# Indexes Includes FollowSymLinks SymLinksifOwnerMatch ExecCGI MultiViews
# Huomaa että "MultiViews" täytyy määrittää erikseen se ei tule  
# Huomaa että "MultiViews" täytyy määrittää erikseen se ei tule  
# "Options All" mukana
# "Options All" mukana
# Arvojen selitykset  
# Arvojen selitykset  
# (http://httpd.apache.org/docs-2.0/mod/core.html#options):
# (https://httpd.apache.org/docs-2.0/mod/core.html#options):


# Indexes - Jos annettu pelkkä hakemisto ja sieltä puuttuu DirectoryIndex
# Indexes - Jos annettu pelkkä hakemisto ja sieltä puuttuu DirectoryIndex
# kohdassa määritetyn niminen tiedosto, niin mod_autoindex moduli luo
# kohdassa määritetyn niminen tiedosto, niin mod_autoindex moduli luo
# asiakkaalle kyseisen hakemiston listauksen.
# asiakkaalle kyseisen hakemiston listauksen.


# Includes - mod_includen mukanaan tuomat Server-side includes (shtml)
# Includes - mod_includen mukanaan tuomat Server-side includes (shtml)
# sallitaan
# sallitaan


# FollowSymLinks- Palvelin seuraa symbolisia linkkejä
# FollowSymLinks- Palvelin seuraa symbolisia linkkejä


# SymLinksifOwnerMatch - Palvelin seuraa symbolisia linkkejä vain jos
# SymLinksifOwnerMatch - Palvelin seuraa symbolisia linkkejä vain jos
# kohdetiedoston tai -hakemiston omistaa sama käyttäjäid kuin linkin
# kohdetiedoston tai -hakemiston omistaa sama käyttäjäid kuin linkin
# ExecCGI - CGI skriptien käyttö mod_cgi:n avulla sallittu
# ExecCGI - CGI skriptien käyttö mod_cgi:n avulla sallittu


# MultiViews - jos palvelin saa kyselyn /some/dir/foo,  
# MultiViews - jos palvelin saa kyselyn /some/dir/foo,  
# ja kyseisessä hakemistossa (/some/dir) on MultiViews käytössä
# ja kyseisessä hakemistossa (/some/dir) on MultiViews käytössä
# ja /some/dir/foo ei ole olemassa, niin palvelin etsii hakemistosta
# ja /some/dir/foo ei ole olemassa, niin palvelin etsii hakemistosta
# kaikki tiedostot nimeltä foo.* ja luo tilapäisen "type map"in ja
# kaikki tiedostot nimeltä foo.* ja luo tilapäisen "type map"in ja
# valitsee niistä parhaan asiakkaan vaatimuksiin
# valitsee niistä parhaan asiakkaan vaatimuksiin
   
 
Options Indexes FollowSymLinks
Options Indexes FollowSymLinks


# AllowOverride kontrolloi .htaccess tiedostoihin laitettavat
# AllowOverride kontrolloi .htaccess tiedostoihin laitettavat
# määritetteet. Se voi olla "All", "None" tai mikä tahansa  
# määritetteet. Se voi olla "All", "None" tai mikä tahansa  
# yhdistelmä seuraavista:
# yhdistelmä seuraavista:
# Options FileInfo AuthConfig Limit
# Options FileInfo AuthConfig Limit
# Lisätietoa autentikoinnista:
# Lisätietoa autentikoinnista:
# http://httpd.apache.org/docs/2.0/howto/auth.html
# https://httpd.apache.org/docs/2.0/howto/auth.html


# None - .htaccess tiedostot jätetään huomioitta
# None - .htaccess-tiedostot jätetään huomioitta


# AuthConfig - Sallii lupamääritteiden käytön
# AuthConfig - Sallii lupamääritteiden käytön
# Lupamääritteitä voivat olla:
# Lupamääritteitä voivat olla:
# - AuthDBMGroupFile - Käyttäjäryhmien nimet sisältävä DBM tiedosto.
# - AuthDBMGroupFile - Käyttäjäryhmien nimet sisältävä DBM-tiedosto.
# Käyttää mod_auth_dbm modulia, joka tarjoaa perusautentikoinnin, missä
# Käyttää mod_auth_dbm-moduulia, joka tarjoaa perusautentikoinnin, missä
# käyttäjänimet ja salasanat tallennetaan DBM tyyppiseen tietokantaan
# käyttäjänimet ja salasanat tallennetaan DBM-tyyppiseen tietokantaan
# toisin kuin mod_auth moduli, joka käyttää tekstitiedostoja.
# toisin kuin mod_auth-moduuli, joka käyttää tekstitiedostoja.
# Lisää DBM tiedostoista ja niiden luonnista:
# Lisää DBM-tiedostoista ja niiden luonnista:
# http://www.apacheweek.com/features/dbmauth
# http://www.apacheweek.com/features/dbmauth
# - AuthDBMUserFile - Käyttäjien nimet ja salasanat sisältävä DBM
# - AuthDBMUserFile - Käyttäjien nimet ja salasanat sisältävä DBM-
# tiedosto
# tiedosto
# - AuthGroupFile - Käyttäjäryhmät sisältävä tekstitiedosto
# - AuthGroupFile - Käyttäjäryhmät sisältävä tekstitiedosto
# - AuthName - Salasanaa pyytävän ikkunan Title-osan teksti
# - AuthName - Salasanaa pyytävän ikkunan Title-osan teksti
# - AuthType - Hakemiston autentikointitapa, joka voi olla joko Basic
# - AuthType - Hakemiston autentikointitapa, joka voi olla joko Basic
# tai Digest. Digest lähettää tiedon suojattuna (toisin kuin Basic),
# tai Digest. Digest lähettää tiedon suojattuna (toisin kuin Basic),
# mutta toimii vain tietyillä selaimilla, lisätietoja Digest tavan
# mutta toimii vain tietyillä selaimilla, lisätietoja Digest tavan
# käytöstä löydät osoitteesta:
# käytöstä löydät osoitteesta:
# http://httpd.apache.org/docs/2.0/mod/mod_auth_digest.html
# https://httpd.apache.org/docs/2.0/mod/mod_auth_digest.html


# AuthUserFile - Käyttäjien nimet ja salasanat sisältävän  
# AuthUserFile - Käyttäjien nimet ja salasanat sisältävän  
# tekstitiedoston nimi
# tekstitiedoston nimi


# Require - Määrittää ketkä autentikoidut käyttäjät pääsevät resurssiin
# Require - Määrittää ketkä autentikoidut käyttäjät pääsevät resurssiin


# Esimerkki:
# Esimerkki:
# AuthType Basic
# AuthType Basic
# AuthName "Restricted Resource"
# AuthName "Restricted Resource"
# AuthUserFile /web/users
# AuthUserFile /web/users
# AuthGroupFile /web/groups
# AuthGroupFile /web/groups
# Require group admin
# Require group admin
AllowOverride None
AllowOverride None


# Määritetään kenellä on oikeus palvelimelle
# Määritetään kenellä on oikeus palvelimelle
# Order määrittää allow ja deny määritteiden järjestyksen
# Order määrittää allow ja deny määritteiden järjestyksen
# Määritteet (ja niihin alla määritetyt tiedot) luetaan annetussa
# Määritteet (ja niihin alla määritetyt tiedot) luetaan annetussa
# järjestyksessä. Näin ollen jälkimmäisenä annettu määrite päättää
# järjestyksessä. Näin ollen jälkimmäisenä annettu määrite päättää
# oletuskäytännön (Allow,Deny -> Oletuksena kaikilta kielletty).
# oletuskäytännön (Allow,Deny -> Oletuksena kaikilta kielletty).


# Esim. (päästää vain Apache.org domainiin kuuluvat koneet,  
# Esim. (päästää vain Apache.org-domainiin kuuluvat koneet,  
# muut kielletään):
# muut kielletään):
# Order Deny,Allow
# Order Deny,Allow
# Deny from all
# Deny from all
# Allow from apache.org
# Allow from apache.org


# Esim. (Päästää vain apache.org domainiin kuuluvat, oletuksena kielto)
# Esim. (Päästää vain apache.org-domainiin kuuluvat, oletuksena kielto)
# Order Allow,Deny
# Order Allow,Deny
# Allow from apache.org
# Allow from apache.org
# Deny from foo.apache.org
# Deny from foo.apache.org


# Esim. (Päästää kaikki, koska oletuksena vapaa pääsy, huomaa järjestys)
# Esim. (Päästää kaikki, koska oletuksena vapaa pääsy, huomaa järjestys)
# Order Deny,Allow
# Order Deny,Allow
# Allow from apache.org
# Allow from apache.org
# Deny from foo.apache.org
# Deny from foo.apache.org


# Edellä olevat esimerkit tarkemmin:
# Edellä olevat esimerkit tarkemmin:
# http://httpd.apache.org/docs/2.0/mod/mod_access.html#order
# https://httpd.apache.org/docs/2.0/mod/mod_access.html#order


# Allow määritteellä annetaan ne koneet, joilla on oikeus palvelimelle
# Allow määritteellä annetaan ne koneet, joilla on oikeus palvelimelle
# Pääsyä voidaan kontrolloida IP-osoitteella, -alueella tai muilla
# Pääsyä voidaan kontrolloida IP-osoitteella, -alueella tai muilla
# ympäristömuuttujista saatavalla tiedolla. Ympäristö muuttujien käytöstä
# ympäristömuuttujista saatavalla tiedolla. Ympäristö muuttujien käytöstä
# löydät tietoja ja esimerkkejä mm. seuraavista osoitteista:
# löydät tietoja ja esimerkkejä mm. seuraavista osoitteista:
# http://httpd.apache.org/docs/2.0/mod/mod_access.html#allow
# https://httpd.apache.org/docs/2.0/mod/mod_access.html#allow
# http://httpd.apache.org/docs/2.0/mod/mod_setenvif.html
# https://httpd.apache.org/docs/2.0/mod/mod_setenvif.html
# http://httpd.apache.org/docs/2.0/env.html
# https://httpd.apache.org/docs/2.0/env.html
# http://www.serverwatch.com/tutorials/article.php/1132731
# http://www.serverwatch.com/tutorials/article.php/1132731
# Esimerkkejä:
# Esimerkkejä:
# Allow from apache.org
# Allow from apache.org
# Allow from .net example.edu
# Allow from .net example.edu
# Allow from 10.1.2.3
# Allow from 10.1.2.3
# Allow from 192.168.1.104 192.168.1.205
# Allow from 192.168.1.104 192.168.1.205
# Allow from 10.1
# Allow from 10.1
# Allow from 10 172.20 192.168.2
# Allow from 10 172.20 192.168.2
# Allow from 10.1.0.0/255.255.0.0
# Allow from 10.1.0.0/255.255.0.0
# Allow from 10.1.0.0/16  
# Allow from 10.1.0.0/16  
# Allow from 2001:db8::a00:20ff:fea7:ccea
# Allow from 2001:db8::a00:20ff:fea7:ccea
# Allow from 2001:db8::a00:20ff:fea7:ccea/10
# Allow from 2001:db8::a00:20ff:fea7:ccea/10


Order allow,deny
Order allow,deny
Allow from all
Allow from all


# Lopettaa oletushakemiston (/var/www/html) oikeuksien käsittelyn
# Lopettaa oletushakemiston (/var/www/html) oikeuksien käsittelyn
</Directory>
</Directory>
# UserDir on hakemiston nimi, josta käyttäjän kotihakemistossa
# UserDir on hakemiston nimi, josta käyttäjän kotihakemistossa
# sijaitsevat www-sivut haetaan ~käyttäjänimi haulla.
# sijaitsevat www-sivut haetaan ~käyttäjänimi haulla.
# Käyttäjän kotihakemiston oikeuksiksi (/home/userid) tulee muuttaa 711
# Käyttäjän kotihakemiston oikeuksiksi (/home/userid) tulee muuttaa 711
# ja /home/userid/public_html oikeudet tulee olla 755,
# ja /home/userid/public_html oikeudet tulee olla 755,
# Muuten asiakas ei pääse hakemistoon ja saa "403 Forbidden" ilmoituksen.
# Muuten asiakas ei pääse hakemistoon ja saa "403 Forbidden"-ilmoituksen.


<IfModule mod_userdir.c>
<IfModule mod_userdir.c>
# Ottaaksesi käyttäjien kotihakemistojen alla olevat www-sivut käyttöön
# Ottaaksesi käyttäjien kotihakemistojen alla olevat www-sivut käyttöön
# kommentoi seuraava rivi
# kommentoi seuraava rivi
UserDir disable
  UserDir disable
# ja poista risuaita seuraavan edestä
# ja poista risuaita seuraavan edestä
    #UserDir public_html
      #UserDir public_html
</IfModule>
</IfModule>


# Halutessasi laittaa määritteet kaikkien käyttäjien www-hakemistoihin
# Halutessasi laittaa määritteet kaikkien käyttäjien www-hakemistoihin
# käytä /home/*/public_html polkua
# käytä /home/*/public_html polkua
# Esimerkki:
# Esimerkki:
# <Directory /home/*/public_html>
# <Directory /home/*/public_html>
# AllowOverride AuthConfig
# AllowOverride AuthConfig
# </Directory>
# </Directory>


# DirectoryIndex: Minkä nimisiä tiedostoja haetaan, jos vain hakemisto
# DirectoryIndex: Minkä nimisiä tiedostoja haetaan, jos vain hakemisto
# annettu. Yleensä tähän lisätään mm. index.htm, index.php,
# annettu. Yleensä tähän lisätään mm. index.htm, index.php,
# index.php3, default.htm, default.html jne.
# index.php3, default.htm, default.html jne.
DirectoryIndex index.html index.html.var
DirectoryIndex index.html index.html.var


# AccessFileName tiedoston nimi
# AccessFileName tiedoston nimi
AccessFileName .htaccess
AccessFileName .htaccess


# Seuraavat rivit estävät .htaccess ja .htpasswd tiedostoja näkymästä
# Seuraavat rivit estävät .htaccess ja .htpasswd tiedostoja näkymästä
# asiakkaille (vain Apache näkee ne oikeutta tarkistaessaan)
# asiakkaille (vain Apache näkee ne oikeutta tarkistaessaan)
<Files ~ "^\.ht">
<Files ~ "^\.ht">
    Order allow,deny
  Order allow,deny
    Deny from all
  Deny from all
</Files>
</Files>


# mime.type tiedoston sijainti
# mime.type-tiedoston sijainti
TypesConfig /etc/mime.types
TypesConfig /etc/mime.types


# Oletus MIME-tyyppi. Perus-HTML sivustoille oikea valinta on text/plain  
# Oletus MIME-tyyppi. Perus-HTML sivustoille oikea valinta on text/plain  
# Sovelluksille tai pääasiallisesti kuville
# Sovelluksille tai pääasiallisesti kuville
# "application/octet-stream" voi olla parempi vaihtoehto
# "application/octet-stream" voi olla parempi vaihtoehto
DefaultType text/plain
DefaultType text/plain


# MIME-tyypin tunnistukseen käytettävän MIMEMagicFile tiedoston sijainti
# MIME-tyypin tunnistukseen käytettävän MIMEMagicFile-tiedoston sijainti
<IfModule mod_mime_magic.c>
<IfModule mod_mime_magic.c>
#  MIMEMagicFile /usr/share/magic.mime
#  MIMEMagicFile /usr/share/magic.mime
    MIMEMagicFile conf/magic
  MIMEMagicFile conf/magic
</IfModule>
</IfModule>


# Tallennetaanko logeihin asiakkaiden nimet vai pelkät IP-osoitteet
# Tallennetaanko lokeihin asiakkaiden nimet vai pelkät IP-osoitteet
# esim. www.apache.org (on) tai 204.62.129.132 (off).
# esim. www.apache.org (on) tai 204.62.129.132 (off).
HostnameLookups Off
HostnameLookups Off


# EnableMMAP lukee tiedoston muistiinsa voidakseen prosessoida ne ennen
# EnableMMAP lukee tiedoston muistiinsa voidakseen prosessoida ne ennen
# lähetystä asiakkaalle. Tämä on olennaista palvelimen päässä
# lähetystä asiakkaalle. Tämä on olennaista palvelimen päässä
# käsiteltäville tiedostoille kuten .shtml. Oletuksena päällä.
# käsiteltäville tiedostoille kuten .shtml. Oletuksena päällä.
# Lisätietoja: http://httpd.apache.org/docs/2.0/mod/core.html#enablemmap
# Lisätietoja: https://httpd.apache.org/docs/2.0/mod/core.html#enablemmap
#EnableMMAP off
#EnableMMAP off


# EnableSendfile määritteen ollessa päällä Apache näyttää staattisen
# EnableSendfile määritteen ollessa päällä Apache näyttää staattisen
# tiedoston asiakkaalle käsittelemättä sitä ensin. Päällä oletuksena.
# tiedoston asiakkaalle käsittelemättä sitä ensin. Päällä oletuksena.
# Lisätietoa http://httpd.apache.org/docs-2.0/mod/core.html#enablesendfile
# Lisätietoa https://httpd.apache.org/docs-2.0/mod/core.html#enablesendfile
#EnableSendfile off
#EnableSendfile off


# ErrorLog: Virhelogitiedoston sijainti
# ErrorLog: Virhelogitiedoston sijainti
ErrorLog logs/error_log
ErrorLog logs/error_log


# LogLevel: Virhelogitiedostoon tallennettavien viestien taso.
# LogLevel: Virhelogitiedostoon tallennettavien viestien taso.
# Mahdollisia arvoja: debug, info, notice, warn, error, crit,  
# Mahdollisia arvoja: debug, info, notice, warn, error, crit,  
# alert, emerg.
# alert, emerg.
# Tarkemmin: http://httpd.apache.org/docs/2.0/mod/core.html#loglevel
# Tarkemmin: https://httpd.apache.org/docs/2.0/mod/core.html#loglevel
LogLevel warn
LogLevel warn
# Palvelimelle kohdistuneet pyynnöt taltioidaan CustomLog määritteen
# Palvelimelle kohdistuneet pyynnöt taltioidaan CustomLog määritteen
# mukaisesti.
# mukaisesti.
# Login tiedot voidaan määrittää ympäristömuuttujien avulla.
# Login tiedot voidaan määrittää ympäristömuuttujien avulla.
# Login muotoiluun vaikuttavia rivejä
# Login muotoiluun vaikuttavia rivejä
LogFormat "%h %l %u %t \"%r\" %>s %b \"%{Referer}i\" \"%{User-Agent}i\"" combined
LogFormat "%h %l %u %t \"%r\" %>s %b \"%{Referer}i\" \"%{User-Agent}i\"" combined
LogFormat "%h %l %u %t \"%r\" %>s %b" common
LogFormat "%h %l %u %t \"%r\" %>s %b" common
Rivi 380: Rivi 366:
LogFormat "%{User-agent}i" agent
LogFormat "%{User-agent}i" agent


# mod_logio modulin ollessa ladattuna voi käyttää combinedio muotoilua,  
# mod_logio moduulin ollessa ladattuna voi käyttää combinedio muotoilua,  
# joka sisältää todellisten lähetettyjen ja saatujen tavujen lukumäärän.
# joka sisältää todellisten lähetettyjen ja saatujen tavujen lukumäärän.
#LogFormat "%h %l %u %t \"%r\" %>s %b \"%{Referer}i\" \"%{User-Agent}i\" %I %O" combinedio
#LogFormat "%h %l %u %t \"%r\" %>s %b \"%{Referer}i\" \"%{User-Agent}i\" %I %O" combinedio


# Tavallisen käyttölogin (access logfile) sijainti ja tyyppi.
# Tavallisen käyttölogin (access logfile) sijainti ja tyyppi.
# Oletuksena käyttöön otetaan combined tyyppi, jossa logitiedot yhdistetty
# Oletuksena käyttöön otetaan combined tyyppi, jossa logitiedot yhdistetty
#CustomLog logs/access_log common
#CustomLog logs/access_log common
#CustomLog logs/referer_log referer
#CustomLog logs/referer_log referer
#CustomLog logs/agent_log agent
#CustomLog logs/agent_log agent
CustomLog logs/access_log combined
CustomLog logs/access_log combined


# Voit lisätä logiin tiedon, joka sisältää palvelimen version, virtuaali-isännän
# Voit lisätä logiin tiedon, joka sisältää palvelimen version, virtuaali-isännän
# nimen palvelimen generoimiin sivuihin (virhesivut, ftp-listaukset jne).
# nimen palvelimen generoimiin sivuihin (virhesivut, ftp-listaukset jne).
# Vaihtoehto "EMail" sisältää myös sähköpostin lähetyksen ServerAdminille.
# Vaihtoehto "EMail" sisältää myös sähköpostin lähetyksen ServerAdminille.
# Valitse joku seuraavista kolmesta:  On | Off | EMail
# Valitse joku seuraavista kolmesta:  On | Off | EMail
ServerSignature On
ServerSignature On


# Lisää tässä kohdin niin monta aliasnimeä kuin haluat muodossa  
# Lisää tässä kohdin niin monta aliasnimeä kuin haluat muodossa  
# Alias fakename realname
# Alias fakename realname
# Esimerkki:  
# Esimerkki:  
# Alias /image /ftp/pub/image
# Alias /image /ftp/pub/image
# Jolloin pyyntö http://myserver/image/foo.gif palauttaa tiedoston
# Jolloin pyyntö http://myserver/image/foo.gif palauttaa tiedoston
# /ftp/pub/image/foo.gif, jonka siis ei tarvitse olla /var/www/html/ alla.
# /ftp/pub/image/foo.gif, jonka siis ei tarvitse olla /var/www/html/ alla.
# /icons/ alias FancyIndexeding toimintoa varten on oletuksena käytössä.
# /icons/ alias FancyIndexeding toimintoa varten on oletuksena käytössä.
# FancyIndexing tarkoittaa tapaa tehdä hakemistolistaus niin, että se muodostuu
# FancyIndexing tarkoittaa tapaa tehdä hakemistolistaus niin, että se muodostuu
# eri sarakkeista ikonille, tiedostonimelle (Name), tiedoston muutosajalle  
# eri sarakkeista ikonille, tiedostonimelle (Name), tiedoston muutosajalle  
# (Last modified), tiedostokoolle (Size) ja kuvaukselle (Description).  
# (Last modified), tiedostokoolle (Size) ja kuvaukselle (Description).  
# Mikäli FancyIndexing on poissa päältä, hakemistolistaus on tavallinen
# Mikäli FancyIndexing on poissa päältä, hakemistolistaus on tavallinen
# järjestämätön lista.
# järjestämätön lista.
Alias /icons/ "/var/www/icons/"
Alias /icons/ "/var/www/icons/"
<Directory "/var/www/icons">
<Directory "/var/www/icons">
    Options Indexes MultiViews
  Options Indexes MultiViews
    AllowOverride None
  AllowOverride None
    Order allow,deny
  Order allow,deny
    Allow from all
  Allow from all
</Directory>
</Directory>


# WebDAV module configuration section.
# WebDAV module configuration section.
# WebDAV on www-sivujen etähallintaan tarkoitettu standardi.  
# WebDAV on www-sivujen etähallintaan tarkoitettu standardi.  
# Esimerkiksi WebDev, joka on php:llä toteutettu sivustonhallintasovellus,
# Esimerkiksi WebDev, joka on php:llä toteutettu sivustonhallintasovellus,
# tukee WebDAV protokollaa.
# tukee WebDAV-protokollaa.
<IfModule mod_dav_fs.c>
<IfModule mod_dav_fs.c>
    # WebDAV lukitus tietokannan sijainti
  # WebDAV-lukitustietokannan sijainti
    DAVLockDB /var/lib/dav/lockdb
  DAVLockDB /var/lib/dav/lockdb
</IfModule>
</IfModule>


# ScriptAliakset ovat kuin aliakset mutta CGI-skriptejä varten
# ScriptAliakset ovat kuin aliakset mutta CGI-skriptejä varten
ScriptAlias /cgi-bin/ "/var/www/cgi-bin/"
ScriptAlias /cgi-bin/ "/var/www/cgi-bin/"




# cgi-scriptien hakemisto ja määritteet
# cgi-scriptien hakemisto ja määritteet
<Directory "/var/www/cgi-bin">
<Directory "/var/www/cgi-bin">
    AllowOverride None
  AllowOverride None
    Options None
  Options None
    Order allow,deny
  Order allow,deny
    Allow from all
  Allow from all
</Directory>
</Directory>


# Redirect määritteen avulla voit ohjata asiakkaan toisaalle
# Redirect määritteen avulla voit ohjata asiakkaan toisaalle
# Esimerkki:
# Esimerkki:
# Redirect /service http://foo2.bar.com/service
# Redirect /service http://foo2.bar.com/service
# Ohjaa asiakkaan pyynnön http://pyynnönsaanutpalvelin/service/foo.txt
# Ohjaa asiakkaan pyynnön http://pyynnönsaanutpalvelin/service/foo.txt
# osoitteeseen http://foo2.bar.com/service/foo.txt
# osoitteeseen http://foo2.bar.com/service/foo.txt


# Palvelimen generoimien listausten määritteet
# Palvelimen generoimien listausten määritteet
IndexOptions FancyIndexing VersionSort NameWidth=*
IndexOptions FancyIndexing VersionSort NameWidth=*
AddIconByEncoding (CMP,/icons/compressed.gif) x-compress x-gzip
AddIconByEncoding (CMP,/icons/compressed.gif) x-compress x-gzip
Rivi 471: Rivi 457:
AddIcon /icons/folder.gif ^^DIRECTORY^^
AddIcon /icons/folder.gif ^^DIRECTORY^^
AddIcon /icons/blank.gif ^^BLANKICON^^
AddIcon /icons/blank.gif ^^BLANKICON^^
# Oletuskuvake niille tiedoistoille joiden kuvaketta ei määritetty yllä
# Oletuskuvake niille tiedoistoille joiden kuvaketta ei määritetty yllä
DefaultIcon /icons/unknown.gif
DefaultIcon /icons/unknown.gif
#AddDescription salli pienen selityksen liittämisen tiedostopäätteiden mukaan
#AddDescription salli pienen selityksen liittämisen tiedostopäätteiden mukaan
#AddDescription "GZIP compressed document" .gz
#AddDescription "GZIP compressed document" .gz
#AddDescription "tar archive" .tar
#AddDescription "tar archive" .tar
#AddDescription "GZIP compressed tar archive" .tgz
#AddDescription "GZIP compressed tar archive" .tgz


# ReadmeName liitetään listauksen loppuun ja HeaderName listauksen alkuun
# ReadmeName liitetään listauksen loppuun ja HeaderName listauksen alkuun
ReadmeName README.html
ReadmeName README.html
HeaderName HEADER.html
HeaderName HEADER.html


# IndexIgnore sisältää tiedostonikmet, joita ei listata
# IndexIgnore sisältää tiedostonimet, joita ei listata
IndexIgnore .??* *~ *# HEADER* README* RCS CVS *,v *,t
IndexIgnore .??* *~ *# HEADER* README* RCS CVS *,v *,t


# DefaultLanguage ja AddLanguage mahdollistaa dokumentin kielen määrittämisen
# DefaultLanguage ja AddLanguage mahdollistaa dokumentin kielen määrittämisen
# jonka jälkeen sisältötarkastelun (content negotiation) avulla voit näyttää
# jonka jälkeen sisältötarkastelun (content negotiation) avulla voit näyttää
# asiakkaalle dokumentin hänen selaimeensa määrittämällä kielellä.
# asiakkaalle dokumentin hänen selaimeensa määrittämällä kielellä.
# Ohjeistusta monikielisten sivustojen hallintaan löytyy
# Ohjeistusta monikielisten sivustojen hallintaan löytyy
# osoitteesta http://www.cs.tut.fi/~jkorpela/multi/index-en.htm
# osoitteesta http://www.cs.tut.fi/~jkorpela/multi/index-en.htm
# Oletuskielen määrittäminen
# Oletuskielen määrittäminen
# DefaultLanguage nl
# DefaultLanguage nl
AddLanguage ca .ca
AddLanguage ca .ca
AddLanguage cs .cz .cs
AddLanguage cs .cz .cs
Rivi 518: Rivi 504:
AddLanguage zh-CN .zh-cn
AddLanguage zh-CN .zh-cn
AddLanguage zh-TW .zh-tw
AddLanguage zh-TW .zh-tw
# Lisää tämä itse
# Lisää tämä itse
AddLanguage fi .fi
AddLanguage fi .fi


# Muuta kielien prioriteetin määrittävä LanguagePriority haluamaksesi
# Muuta kielien prioriteetin määrittävä LanguagePriority haluamaksesi
# Lisää alkuun halutessasi fi
# Lisää alkuun halutessasi fi
LanguagePriority fi en  
LanguagePriority fi en  
# ca cs da de el eo es et fr he hr it ja ko ltz nl nn no pl pt pt-BR ru sv zh-CN
# ca cs da de el eo es et fr he hr it ja ko ltz nl nn no pl pt pt-BR ru sv zh-CN
# zh-TW
# zh-TW


# Jos halutunkielistä sivua ei löydy tai löytyy useita, niin  
# Jos halutunkielistä sivua ei löydy tai löytyy useita, niin  
# Prefer hakee priorityjärjestyksestä ensimmäiseksi parhaan
# Prefer hakee priorityjärjestyksestä ensimmäiseksi parhaan
# ja Fallback näyttää ensimmäisen languagepriority listasta
# ja Fallback näyttää ensimmäisen languagepriority listasta
ForceLanguagePriority Prefer Fallback
ForceLanguagePriority Prefer Fallback


# Oletusmerkistö
# Oletusmerkistö
AddDefaultCharset UTF-8
AddDefaultCharset UTF-8


# AddType mahdollistaa MIME määritysten korvaamisen tietyille tiedostotyypeille
# AddType mahdollistaa MIME määritysten korvaamisen tietyille tiedostotyypeille
#AddType application/x-tar .tgz
#AddType application/x-tar .tgz


# AddEncoding mahdollistaa joidenkin selainten purkaa pakattu tiedosto lennossa
# AddEncoding mahdollistaa joidenkin selainten purkaa pakattu tiedosto lennossa
#AddEncoding x-compress .Z
#AddEncoding x-compress .Z
#AddEncoding x-gzip .gz .tgz
#AddEncoding x-gzip .gz .tgz


# Jos AddEncoding on kommentoituna kannattaa mediatyypit ilmaista
# Jos AddEncoding on kommentoituna kannattaa mediatyypit ilmaista
AddType application/x-compress .Z
AddType application/x-compress .Z
AddType application/x-gzip .gz .tgz
AddType application/x-gzip .gz .tgz


# AddHandler mahdollistaa tiettyjen tiedostopäätteiden liittämisen
# AddHandler mahdollistaa tiettyjen tiedostopäätteiden liittämisen
# käsittelijöihin eli tiedostotyyppiin liittymättömiin tapahtumiin
# käsittelijöihin eli tiedostotyyppiin liittymättömiin tapahtumiin
# Käyttä CGI-skriptejä muualla kuin ScriptAliased merkityissä
# Käyttä CGI-skriptejä muualla kuin ScriptAliased merkityissä
# hakemistoissa (Sinun tulee myös lisästä "ExecCGI" "Options" määritteeseen)
# hakemistoissa (Sinun tulee myös lisästä "ExecCGI" "Options" määritteeseen)
#AddHandler cgi-script .cgi
#AddHandler cgi-script .cgi


# Tiedostoille, joilla on omat HTTP otsikot (headers).
# Tiedostoille, joilla on omat HTTP otsikot (headers).
#AddHandler send-as-is asis
#AddHandler send-as-is asis


# Tyyppikartoille (.var):
# Tyyppikartoille (.var):
# (Oletuksena päälle, jotta Apachen oletussivu voidaan näyttää usealla kielellä)
# (Oletuksena päälle, jotta Apachen oletussivu voidaan näyttää usealla kielellä)
AddHandler type-map var
AddHandler type-map var


# Filttereiden avulla voit käsitellä tiedoston ennen asiakkaalle lähettämistä
# Filttereiden avulla voit käsitellä tiedoston ennen asiakkaalle lähettämistä
# Filters allow you to process content before it is sent to the client.
# Filters allow you to process content before it is sent to the client.
# .shtml tiedostot vaativat myös "Includes" "Options" määritteeseen).
# .shtml tiedostot vaativat myös "Includes" "Options" määritteeseen).
AddType text/html .shtml
AddType text/html .shtml
AddOutputFilter INCLUDES .shtml
AddOutputFilter INCLUDES .shtml


# Action mahdollistaa halutun CGI-skriptin suorittamisen tietyn tiedostotyypin
# Action mahdollistaa halutun CGI-skriptin suorittamisen tietyn tiedostotyypin
# yhteydessä
# yhteydessä
# Format: Action media/type /cgi-script/location
# Format: Action media/type /cgi-script/location
# Format: Action handler-name /cgi-script/location
# Format: Action handler-name /cgi-script/location


# Mukautetut virheilmoitukset voivat tulla kolmessa muodossa:
# Mukautetut virheilmoitukset voivat tulla kolmessa muodossa:
# 1) pelkkä teksti 2) sisäinen ohjaus 3) ulkoinen ohjaus
# 1) pelkkä teksti 2) sisäinen ohjaus 3) ulkoinen ohjaus
# Esimerkit:
# Esimerkit:
#ErrorDocument 500 "The server made a boo boo."
#ErrorDocument 500 "The server made a boo boo."
#ErrorDocument 404 /missing.html
#ErrorDocument 404 /missing.html
#ErrorDocument 404 "/cgi-bin/missing_handler.pl"
#ErrorDocument 404 "/cgi-bin/missing_handler.pl"
#ErrorDocument 402 http://www.example.com/subscription_info.html
#ErrorDocument 402 http://www.example.com/subscription_info.html


# Edellisiä yhdistämällä voimme antaa virheilmoitukset asiakkaan kielellä.
# Edellisiä yhdistämällä voimme antaa virheilmoitukset asiakkaan kielellä.
# Alias ohjaa kaikki /error/HTTP_<error>.html.var vastaukset virheenmukaisiin
# Alias ohjaa kaikki /error/HTTP_<error>.html.var vastaukset virheenmukaisiin
# monikielisiin kokoelmiin. Includes korvaa halutun tekstin.
# monikielisiin kokoelmiin. Includes korvaa halutun tekstin.
# Voit muuttaa viestejä muuttamatta oletus  HTTP_<error>.html.var tiedostoa
# Voit muuttaa viestejä muuttamatta oletus  HTTP_<error>.html.var tiedostoa
# lisäämällä rivin
# lisäämällä rivin
# Alias /error/include/ "/oma/include/polku/"
# Alias /error/include/ "/oma/include/polku/"
# Jolloin voit luoda omia tiedostojasi kopioimalla /var/www/error/include/  
# Jolloin voit luoda omia tiedostojasi kopioimalla /var/www/error/include/  
# "/oma/include/polku/" hakemistoon.
# "/oma/include/polku/" hakemistoon.
Alias /error/ "/var/www/error/"
Alias /error/ "/var/www/error/"
<IfModule mod_negotiation.c>
<IfModule mod_negotiation.c>
<IfModule mod_include.c>
<IfModule mod_include.c>
    <Directory "/var/www/error">
  <Directory "/var/www/error">
        AllowOverride None
      AllowOverride None
        Options IncludesNoExec
      Options IncludesNoExec
        AddOutputFilter Includes html
      AddOutputFilter Includes html
        AddHandler type-map var
      AddHandler type-map var
        Order allow,deny
      Order allow,deny
        Allow from all
      Allow from all
        LanguagePriority en es de fr
      LanguagePriority en es de fr
        ForceLanguagePriority Prefer Fallback
      ForceLanguagePriority Prefer Fallback
    </Directory>
  </Directory>


#    ErrorDocument 400 /error/HTTP_BAD_REQUEST.html.var
#    ErrorDocument 400 /error/HTTP_BAD_REQUEST.html.var
#    ErrorDocument 401 /error/HTTP_UNAUTHORIZED.html.var
#    ErrorDocument 401 /error/HTTP_UNAUTHORIZED.html.var
#    ErrorDocument 403 /error/HTTP_FORBIDDEN.html.var
#    ErrorDocument 403 /error/HTTP_FORBIDDEN.html.var
#    ErrorDocument 404 /error/HTTP_NOT_FOUND.html.var
#    ErrorDocument 404 /error/HTTP_NOT_FOUND.html.var
#    ErrorDocument 405 /error/HTTP_METHOD_NOT_ALLOWED.html.var
#    ErrorDocument 405 /error/HTTP_METHOD_NOT_ALLOWED.html.var
#    ErrorDocument 408 /error/HTTP_REQUEST_TIME_OUT.html.var
#    ErrorDocument 408 /error/HTTP_REQUEST_TIME_OUT.html.var
#    ErrorDocument 410 /error/HTTP_GONE.html.var
#    ErrorDocument 410 /error/HTTP_GONE.html.var
#    ErrorDocument 411 /error/HTTP_LENGTH_REQUIRED.html.var
#    ErrorDocument 411 /error/HTTP_LENGTH_REQUIRED.html.var
#    ErrorDocument 412 /error/HTTP_PRECONDITION_FAILED.html.var
#    ErrorDocument 412 /error/HTTP_PRECONDITION_FAILED.html.var
#    ErrorDocument 413 /error/HTTP_REQUEST_ENTITY_TOO_LARGE.html.var
#    ErrorDocument 413 /error/HTTP_REQUEST_ENTITY_TOO_LARGE.html.var
#    ErrorDocument 414 /error/HTTP_REQUEST_URI_TOO_LARGE.html.var
#    ErrorDocument 414 /error/HTTP_REQUEST_URI_TOO_LARGE.html.var
#    ErrorDocument 415 /error/HTTP_UNSUPPORTED_MEDIA_TYPE.html.var
#    ErrorDocument 415 /error/HTTP_UNSUPPORTED_MEDIA_TYPE.html.var
#    ErrorDocument 500 /error/HTTP_INTERNAL_SERVER_ERROR.html.var
#    ErrorDocument 500 /error/HTTP_INTERNAL_SERVER_ERROR.html.var
#    ErrorDocument 501 /error/HTTP_NOT_IMPLEMENTED.html.var
#    ErrorDocument 501 /error/HTTP_NOT_IMPLEMENTED.html.var
#    ErrorDocument 502 /error/HTTP_BAD_GATEWAY.html.var
#    ErrorDocument 502 /error/HTTP_BAD_GATEWAY.html.var
#    ErrorDocument 503 /error/HTTP_SERVICE_UNAVAILABLE.html.var
#    ErrorDocument 503 /error/HTTP_SERVICE_UNAVAILABLE.html.var
#    ErrorDocument 506 /error/HTTP_VARIANT_ALSO_VARIES.html.var
#    ErrorDocument 506 /error/HTTP_VARIANT_ALSO_VARIES.html.var


</IfModule>
</IfModule>
</IfModule>
</IfModule>


# Seuraavat määritteet korjaavat ongelmia tietyissä selaimissa
# Seuraavat määritteet korjaavat ongelmia tietyissä selaimissa
BrowserMatch "Mozilla/2" nokeepalive
BrowserMatch "Mozilla/2" nokeepalive
BrowserMatch "MSIE 4\.0b2;" nokeepalive downgrade-1.0 force-response-1.0
BrowserMatch "MSIE 4\.0b2;" nokeepalive downgrade-1.0 force-response-1.0
BrowserMatch "RealPlayer 4\.0" force-response-1.0
BrowserMatch "RealPlayer 4\.0" force-response-1.0
BrowserMatch "Java/1\.0" force-response-1.0
BrowserMatch "Java/1\.0" force-response-1.0
BrowserMatch "JDK/1\.0" force-response-1.0
BrowserMatch "JDK/1\.0" force-response-1.0  


# Korjataan non-GET pyyntöjä
# Korjataan non-GET pyyntöjä
BrowserMatch "Microsoft Data Access Internet Publishing Provider" redirect-carefully
BrowserMatch "Microsoft Data Access Internet Publishing Provider" redirect-carefully
BrowserMatch "^WebDrive" redirect-carefully
BrowserMatch "^WebDrive" redirect-carefully
Rivi 634: Rivi 620:
BrowserMatch "^gnome-vfs" redirect-carefully
BrowserMatch "^gnome-vfs" redirect-carefully


# Mahdollistetaan mod_status modulin luoda palvelintilaraportteja
# Mahdollistetaan mod_status-moduulin luoda palvelintilaraportteja
#<Location /server-status>
#<Location /server-status>
#    SetHandler server-status
#    SetHandler server-status
#    Order deny,allow
#    Order deny,allow
#    Deny from all
#    Deny from all
#    Allow from .example.com
#    Allow from .example.com
#</Location>
#</Location>
 
# Mahdollistaa etäpalvelimen määritysrapotteja
#<Location /server-info>
#    SetHandler server-info
#    Order deny,allow
#    Deny from all
#    Allow from .example.com
#</Location>
 
# Proxypalvelimen määritteet. Poista risuaidat mahdollistaaksesi Proxyn.
#<IfModule mod_proxy.c>
#ProxyRequests On
#
#<Proxy *>
#    Order deny,allow
#    Deny from all
#    Allow from .example.com
#</Proxy>
 
# Proxyn HTTP/1.1 "Via:" headers -käsittely.
# "Full" lisää palvelinversion, "Block" poistaa kaikki Via: headers:it)
# Valitse Off | On | Full | Block
#ProxyVia On


# Mahdollistaa etäpalvelimen määritysrapotteja
# Proxyn cachen mahdollistaminen
#<Location /server-info>
# Lisätietoa https://httpd.apache.org/docs-2.0/mod/mod_cache.html
#   SetHandler server-info
#<IfModule mod_disk_cache.c>
#   Order deny,allow
#   CacheEnable disk /
#   Deny from all
#   CacheRoot "/var/cache/mod_proxy"
#   Allow from .example.com
#</IfModule>
#</Location>
#</IfModule>
# Proxy määritteiden loppu


# Proxypalvelimen määritteet. Poista risuaidat mahdollistaaksesi Proxyn.
# 3: Virtuaali-isännät
#<IfModule mod_proxy.c>
# Mikäli palvelimellasi on useita domainnimiä tarvitset näitä.
#ProxyRequests On
# Poista risuaita ottaaksesi virtuaali-isännät käyttöön
#
# NameVirtualHost *:80
#<Proxy *>
#    Order deny,allow
#    Deny from all
#    Allow from .example.com
#</Proxy>
# Proxyn HTTP/1.1 "Via:" headers käsittely.
# "Full" lisää palvelinversion, "Block" poistaa kaikki Via: headers:it)
# Valitse Off | On | Full | Block
#ProxyVia On


# Proxyn cachen mahdollistaminen
# HUOM: NameVirtualHost täytyy sisältää portin, jos mod_ssl käytössä
# Lisätietoa http://httpd.apache.org/docs-2.0/mod/mod_cache.html
# VirtualHost sisältöpohja:
#<IfModule mod_disk_cache.c>
# Lähes mikä tahansa määritettä voidaan käyttää Virtuaali-isännän sisällössä
#   CacheEnable disk /
# Sisältöpohja on tarkoitettu niille pyynnöille joiden palvelinnimeä ei
#   CacheRoot "/var/cache/mod_proxy"
# tunnisteta.
#</IfModule>
#<VirtualHost *:80>
#</IfModule>
#    ServerAdmin webmaster@dummy-host.example.com
# Proxy määritteiden loppu
#    DocumentRoot /www/docs/dummy-host.example.com
#   ServerName dummy-host.example.com
#   ErrorLog logs/dummy-host.example.com-error_log
#   CustomLog logs/dummy-host.example.com-access_log common
#</VirtualHost>


# 3: Virtuaali-isännät
</source>
# Mikäli palvelimellasi on useita domainnimiä tarvitset näitä.
# Poista risuaita ottaaksesi virtuaali-isännät käyttöön
# NameVirtualHost *:80


# HUOM: NameVirtualHost täytyy sisältää portin, jos mod_ssl käytössä
== Katso myös ==
# VirtualHost sisältöpohja:
*[[Apache-harjoituksia]]
# Lähes mikä tahansa määritettä voidaan käyttää Virtuaali-isännän sisällössä
# Sisältöpohja on tarkoitettu niille pyynnöille joiden palvelinnimeä ei
# tunnisteta.
#<VirtualHost *:80>
#    ServerAdmin webmaster@dummy-host.example.com
#    DocumentRoot /www/docs/dummy-host.example.com
#    ServerName dummy-host.example.com
#    ErrorLog logs/dummy-host.example.com-error_log
#    CustomLog logs/dummy-host.example.com-access_log common
#</VirtualHost>


[[Luokka:Apache]]
[[Luokka:Apache]]
[[Luokka:Opetusmateriaalit]]

Nykyinen versio 9. joulukuuta 2020 kello 10.29

Apache HTTPD on ylivoimaisesti käytetyin www-palvelin, joka mukautuu helposti haluamiisi tarpeisiin. Apache HTTPD löytyy myös Windows-alustalle.

Apachen määritykset ovat asetustiedostossa /etc/httpd/conf/httpd.conf tai /etc/apache2/httpd.conf. Kyseinen tiedosto sisältää runsaasti kommentteja, joiden avulla on helppo päästä alkuun Apachen hallinnassa. Lisätietoja löytyy Apachen ohjeista. Alla on pyritty suomentamaan ja selkeyttämään ohjeita. Ohjeistus on tehty kommenttimuotoon Apachen asetustiedostoon, jolloin voit halutessasi siirtää sen sellaisenaan oman asetustiedostosi pohjaksi.

# Piilottaa käynnissä olevat moduulit näkymästä maailmalle
ServerTokens OS

# Palvelimen juurihakemisto, mistä löytyvät asetus-, loki- ja
# virhetiedostot.
ServerRoot "/etc/httpd"

# Tiedosto, joka sisältää HTTPD:n käynnistyessään saaman prosessinumeron
PidFile run/httpd.pid

# Aika sekunneissa kauanko palvelin odottaa vastausta pyyntöön
# Pyyntö voi olla
# GET
# POST- / PUT-pyyntöjen välinen TCP-pakettien aika
# TCP-pakettien kättelyjen (ACK) välinen aika
Timeout 120

# Sallitaanko jatkuva yhteys (enemmän kuin yksi pyyntö / yhteys)
# Nopeuttaa staattisten sivujen käsittelyä, oletuksena pois päältä
KeepAlive Off

# Jos edellinen käytössä, niin montako kyselyä samaan yhteyteen
MaxKeepAliveRequests 100

# Montako sekuntia odotetaan pyyntöä samasta yhteydestä ennen sen
# sulkemista. Ruuhkaisilla palvelimilla ei kannata odottaa liian kauaa
KeepAliveTimeout 15

# prefork MPM on oletus, worker MPM pitää määrittää asennuksessa erikseen
# StartServers: montako palvelinprosessia käynnistetään
# MinSpareServers: minimimäärä varapalvelinprosesseja
# MaxSpareServers: maksimimäärä varapalvelinprosesseja
# ServerLimit: Maxclients muuttujan maksimimäärä (Älä muuta)
# MaxClients: Käynnistettävien serveriprosessien maksimimäärä
# MaxRequestsPerChild: palvelinprosessin tarjoamien pyyntöjen
# maksimimäärä
<IfModule prefork.c>
StartServers       8
MinSpareServers    5
MaxSpareServers   20
ServerLimit      256
MaxClients       256
MaxRequestsPerChild  4000
</IfModule>

# worker MPM
<IfModule worker.c>
StartServers         2
MaxClients         150
MinSpareThreads     25
MaxSpareThreads     75 
ThreadsPerChild     25
MaxRequestsPerChild  0
</IfModule>

# Jos haluat Apachen kuuntelevan vain tiettyä Ip-osoitetta ja/tai porttia
# Portti 80 on http:n oletusportti
#Listen 12.34.56.78:80
Listen 80

# Dynamic Shared Object (DSO) Support (Linkkikirjastojen tuki)
# Lisätietoja: https://httpd.apache.org/docs/2.0/mod/
LoadModule access_module modules/mod_access.so
LoadModule auth_module modules/mod_auth.so
LoadModule auth_anon_module modules/mod_auth_anon.so
LoadModule auth_dbm_module modules/mod_auth_dbm.so
LoadModule auth_digest_module modules/mod_auth_digest.so
LoadModule ldap_module modules/mod_ldap.so
LoadModule auth_ldap_module modules/mod_auth_ldap.so
LoadModule include_module modules/mod_include.so
LoadModule log_config_module modules/mod_log_config.so
LoadModule logio_module modules/mod_logio.so
LoadModule env_module modules/mod_env.so
LoadModule mime_magic_module modules/mod_mime_magic.so
LoadModule cern_meta_module modules/mod_cern_meta.so
LoadModule expires_module modules/mod_expires.so
LoadModule deflate_module modules/mod_deflate.so
LoadModule headers_module modules/mod_headers.so
LoadModule usertrack_module modules/mod_usertrack.so
LoadModule setenvif_module modules/mod_setenvif.so
LoadModule mime_module modules/mod_mime.so
LoadModule dav_module modules/mod_dav.so
LoadModule status_module modules/mod_status.so
LoadModule autoindex_module modules/mod_autoindex.so
LoadModule asis_module modules/mod_asis.so
LoadModule info_module modules/mod_info.so
LoadModule dav_fs_module modules/mod_dav_fs.so
LoadModule vhost_alias_module modules/mod_vhost_alias.so
LoadModule negotiation_module modules/mod_negotiation.so
LoadModule dir_module modules/mod_dir.so
LoadModule actions_module modules/mod_actions.so
LoadModule speling_module modules/mod_speling.so
LoadModule userdir_module modules/mod_userdir.so
LoadModule alias_module modules/mod_alias.so
LoadModule rewrite_module modules/mod_rewrite.so
LoadModule proxy_module modules/mod_proxy.so
LoadModule proxy_ftp_module modules/mod_proxy_ftp.so
LoadModule proxy_http_module modules/mod_proxy_http.so
LoadModule proxy_connect_module modules/mod_proxy_connect.so
LoadModule cache_module modules/mod_cache.so
LoadModule suexec_module modules/mod_suexec.so
LoadModule disk_cache_module modules/mod_disk_cache.so
LoadModule file_cache_module modules/mod_file_cache.so
LoadModule mem_cache_module modules/mod_mem_cache.so
LoadModule cgi_module modules/mod_cgi.so

# Lataa määritystiedostot hakemistosta "/etc/httpd/conf.d".
Include conf.d/*.conf

# ExtendedStatus määrittää luoko Apache täyden vai perustilainformaation
# kun "server-status" käsittelijää kutsutaan. Oletuksena Off.
#ExtendedStatus On

# httpd-käyttäjä ja -käyttäjäryhmä
User apache
Group apache

### 2: "Pääpalvelimen" määritykset
# Kaikkia näitä määrityksiä voi käyttää virtuaalipalvelimissa,
# jolloin ne korvaavat tässä esitetyt

# Mihin osoitteeseen virheet tulee postitttaa
ServerAdmin root@localhost

# Servername määrittää nimen ja portin, jolla palvelin tunnistaa itsensä.
# Jollei palvelimen nimi ole rekisteröity, niin laita tähän ip-osoite
# Tällöin uudelleenohjaukset toimivat varmemmin
#ServerName www.example.com:80

# UseCanonicalName määrittää kuinka Apache luo itseensä viittaavat URL:t. 
# sekä SERVER_NAME ja SERVER_PORT muuttujat.
# "Off", Apache käyttää asiakkaalta tulevaa Hostname ja Port arvoa
# "On", Apache käyttää ServerName määritettä (yllä)
# Esimerkki:
# Käyttäjät kirjautuvat sisäverkon www-palvelimeen lyhennetyllä nimellä 
# kuten www. Mikäli URL sisältää myös hakemiston esim. http://www/splat
# ilman lopussa olevaa kauttaviivaa, niin Apache ohjaa osoitteeseen
# http://www.example.com/splat/. Tämä tuottaa autentikoinnin tapauksessa
# sen, että käyttäjän tarvitsee kirjautua kahdesti (kerran www ja kerran
# www.example.com). Mutta jos UseCanonicalName on "Off", niin Apache 
# ohjaa oikeaan osoitteeseen http://www/splat/.
UseCanonicalName Off

# DocumentRoot: oletushakemisto sivustoille
DocumentRoot "/var/www/html"

# Jokaiseen hakemistoon johon Apachella on pääsy voidaan määrittää
# palvelut ja ominaisuudet jotka sallitaan / kielletään kyseisessä
# hakemistossa ja sen alihakemistoissa
# Oletukseksi määritetään hyvin rajoitetut ominaisuudet 
<Directory />
   Options FollowSymLinks
   AllowOverride None
</Directory>

# Tästä eteenpäin sinun tulee erityisesti sallia (enable) tietyt
# ominaisuudet
# Vaihda myös tämä, jos vaihdat DocumentRoot määritettä (yllä).
<Directory "/var/www/html">

# Mahdollisia arvoja Options määritteelle ovat "None", "All",
# tai mikä tahansa yhdistelmä seuraavista
# Indexes Includes FollowSymLinks SymLinksifOwnerMatch ExecCGI MultiViews
# Huomaa että "MultiViews" täytyy määrittää erikseen se ei tule 
# "Options All" mukana
# Arvojen selitykset 
# (https://httpd.apache.org/docs-2.0/mod/core.html#options):

# Indexes - Jos annettu pelkkä hakemisto ja sieltä puuttuu DirectoryIndex
# kohdassa määritetyn niminen tiedosto, niin mod_autoindex moduli luo
# asiakkaalle kyseisen hakemiston listauksen.

# Includes - mod_includen mukanaan tuomat Server-side includes (shtml)
# sallitaan

# FollowSymLinks- Palvelin seuraa symbolisia linkkejä

# SymLinksifOwnerMatch - Palvelin seuraa symbolisia linkkejä vain jos
# kohdetiedoston tai -hakemiston omistaa sama käyttäjäid kuin linkin
# ExecCGI - CGI skriptien käyttö mod_cgi:n avulla sallittu

# MultiViews - jos palvelin saa kyselyn /some/dir/foo, 
# ja kyseisessä hakemistossa (/some/dir) on MultiViews käytössä
# ja /some/dir/foo ei ole olemassa, niin palvelin etsii hakemistosta
# kaikki tiedostot nimeltä foo.* ja luo tilapäisen "type map"in ja
# valitsee niistä parhaan asiakkaan vaatimuksiin
   
Options Indexes FollowSymLinks

# AllowOverride kontrolloi .htaccess tiedostoihin laitettavat
# määritetteet. Se voi olla "All", "None" tai mikä tahansa 
# yhdistelmä seuraavista:
# Options FileInfo AuthConfig Limit
# Lisätietoa autentikoinnista:
# https://httpd.apache.org/docs/2.0/howto/auth.html

# None - .htaccess-tiedostot jätetään huomioitta

# AuthConfig - Sallii lupamääritteiden käytön
# Lupamääritteitä voivat olla:
# - AuthDBMGroupFile - Käyttäjäryhmien nimet sisältävä DBM-tiedosto.
# Käyttää mod_auth_dbm-moduulia, joka tarjoaa perusautentikoinnin, missä
# käyttäjänimet ja salasanat tallennetaan DBM-tyyppiseen tietokantaan
# toisin kuin mod_auth-moduuli, joka käyttää tekstitiedostoja.
# Lisää DBM-tiedostoista ja niiden luonnista:
# http://www.apacheweek.com/features/dbmauth
# - AuthDBMUserFile - Käyttäjien nimet ja salasanat sisältävä DBM-
# tiedosto
# - AuthGroupFile - Käyttäjäryhmät sisältävä tekstitiedosto
# - AuthName - Salasanaa pyytävän ikkunan Title-osan teksti
# - AuthType - Hakemiston autentikointitapa, joka voi olla joko Basic
# tai Digest. Digest lähettää tiedon suojattuna (toisin kuin Basic),
# mutta toimii vain tietyillä selaimilla, lisätietoja Digest tavan
# käytöstä löydät osoitteesta:
# https://httpd.apache.org/docs/2.0/mod/mod_auth_digest.html

# AuthUserFile - Käyttäjien nimet ja salasanat sisältävän 
# tekstitiedoston nimi

# Require - Määrittää ketkä autentikoidut käyttäjät pääsevät resurssiin

# Esimerkki:
# AuthType Basic
# AuthName "Restricted Resource"
# AuthUserFile /web/users
# AuthGroupFile /web/groups
# Require group admin
AllowOverride None

# Määritetään kenellä on oikeus palvelimelle
# Order määrittää allow ja deny määritteiden järjestyksen
# Määritteet (ja niihin alla määritetyt tiedot) luetaan annetussa
# järjestyksessä. Näin ollen jälkimmäisenä annettu määrite päättää
# oletuskäytännön (Allow,Deny -> Oletuksena kaikilta kielletty).

# Esim. (päästää vain Apache.org-domainiin kuuluvat koneet, 
# muut kielletään):
# Order Deny,Allow
# Deny from all
# Allow from apache.org

# Esim. (Päästää vain apache.org-domainiin kuuluvat, oletuksena kielto)
# Order Allow,Deny
# Allow from apache.org
# Deny from foo.apache.org

# Esim. (Päästää kaikki, koska oletuksena vapaa pääsy, huomaa järjestys)
# Order Deny,Allow
# Allow from apache.org
# Deny from foo.apache.org

# Edellä olevat esimerkit tarkemmin:
# https://httpd.apache.org/docs/2.0/mod/mod_access.html#order

# Allow määritteellä annetaan ne koneet, joilla on oikeus palvelimelle
# Pääsyä voidaan kontrolloida IP-osoitteella, -alueella tai muilla
# ympäristömuuttujista saatavalla tiedolla. Ympäristö muuttujien käytöstä
# löydät tietoja ja esimerkkejä mm. seuraavista osoitteista:
# https://httpd.apache.org/docs/2.0/mod/mod_access.html#allow
# https://httpd.apache.org/docs/2.0/mod/mod_setenvif.html
# https://httpd.apache.org/docs/2.0/env.html
# http://www.serverwatch.com/tutorials/article.php/1132731
# Esimerkkejä:
# Allow from apache.org
# Allow from .net example.edu
# Allow from 10.1.2.3
# Allow from 192.168.1.104 192.168.1.205
# Allow from 10.1
# Allow from 10 172.20 192.168.2
# Allow from 10.1.0.0/255.255.0.0
# Allow from 10.1.0.0/16 
# Allow from 2001:db8::a00:20ff:fea7:ccea
# Allow from 2001:db8::a00:20ff:fea7:ccea/10

Order allow,deny
Allow from all

# Lopettaa oletushakemiston (/var/www/html) oikeuksien käsittelyn
</Directory>
# UserDir on hakemiston nimi, josta käyttäjän kotihakemistossa
# sijaitsevat www-sivut haetaan ~käyttäjänimi haulla.
# Käyttäjän kotihakemiston oikeuksiksi (/home/userid) tulee muuttaa 711
# ja /home/userid/public_html oikeudet tulee olla 755,
# Muuten asiakas ei pääse hakemistoon ja saa "403 Forbidden"-ilmoituksen.

<IfModule mod_userdir.c>
# Ottaaksesi käyttäjien kotihakemistojen alla olevat www-sivut käyttöön
# kommentoi seuraava rivi
   UserDir disable
# ja poista risuaita seuraavan edestä
       #UserDir public_html
</IfModule>

# Halutessasi laittaa määritteet kaikkien käyttäjien www-hakemistoihin
# käytä /home/*/public_html polkua
# Esimerkki:
# <Directory /home/*/public_html>
# AllowOverride AuthConfig
# </Directory>

# DirectoryIndex: Minkä nimisiä tiedostoja haetaan, jos vain hakemisto
# annettu. Yleensä tähän lisätään mm. index.htm, index.php,
# index.php3, default.htm, default.html jne.
DirectoryIndex index.html index.html.var

# AccessFileName tiedoston nimi
AccessFileName .htaccess

# Seuraavat rivit estävät .htaccess ja .htpasswd tiedostoja näkymästä
# asiakkaille (vain Apache näkee ne oikeutta tarkistaessaan)
<Files ~ "^\.ht">
   Order allow,deny
   Deny from all
</Files>

# mime.type-tiedoston sijainti
TypesConfig /etc/mime.types

# Oletus MIME-tyyppi. Perus-HTML sivustoille oikea valinta on text/plain 
# Sovelluksille tai pääasiallisesti kuville
# "application/octet-stream" voi olla parempi vaihtoehto
DefaultType text/plain

# MIME-tyypin tunnistukseen käytettävän MIMEMagicFile-tiedoston sijainti
<IfModule mod_mime_magic.c>
#   MIMEMagicFile /usr/share/magic.mime
   MIMEMagicFile conf/magic
</IfModule>

# Tallennetaanko lokeihin asiakkaiden nimet vai pelkät IP-osoitteet
# esim. www.apache.org (on) tai 204.62.129.132 (off).
HostnameLookups Off

# EnableMMAP lukee tiedoston muistiinsa voidakseen prosessoida ne ennen
# lähetystä asiakkaalle. Tämä on olennaista palvelimen päässä
# käsiteltäville tiedostoille kuten .shtml. Oletuksena päällä.
# Lisätietoja: https://httpd.apache.org/docs/2.0/mod/core.html#enablemmap
#EnableMMAP off

# EnableSendfile määritteen ollessa päällä Apache näyttää staattisen
# tiedoston asiakkaalle käsittelemättä sitä ensin. Päällä oletuksena.
# Lisätietoa https://httpd.apache.org/docs-2.0/mod/core.html#enablesendfile
#EnableSendfile off

# ErrorLog: Virhelogitiedoston sijainti
ErrorLog logs/error_log

# LogLevel: Virhelogitiedostoon tallennettavien viestien taso.
# Mahdollisia arvoja: debug, info, notice, warn, error, crit, 
# alert, emerg.
# Tarkemmin: https://httpd.apache.org/docs/2.0/mod/core.html#loglevel
LogLevel warn
# Palvelimelle kohdistuneet pyynnöt taltioidaan CustomLog määritteen
# mukaisesti.
# Login tiedot voidaan määrittää ympäristömuuttujien avulla.
# Login muotoiluun vaikuttavia rivejä
LogFormat "%h %l %u %t \"%r\" %>s %b \"%{Referer}i\" \"%{User-Agent}i\"" combined
LogFormat "%h %l %u %t \"%r\" %>s %b" common
LogFormat "%{Referer}i -> %U" referer
LogFormat "%{User-agent}i" agent

# mod_logio moduulin ollessa ladattuna voi käyttää combinedio muotoilua, 
# joka sisältää todellisten lähetettyjen ja saatujen tavujen lukumäärän.
#LogFormat "%h %l %u %t \"%r\" %>s %b \"%{Referer}i\" \"%{User-Agent}i\" %I %O" combinedio

# Tavallisen käyttölogin (access logfile) sijainti ja tyyppi.
# Oletuksena käyttöön otetaan combined tyyppi, jossa logitiedot yhdistetty
#CustomLog logs/access_log common
#CustomLog logs/referer_log referer
#CustomLog logs/agent_log agent
CustomLog logs/access_log combined

# Voit lisätä logiin tiedon, joka sisältää palvelimen version, virtuaali-isännän
# nimen palvelimen generoimiin sivuihin (virhesivut, ftp-listaukset jne).
# Vaihtoehto "EMail" sisältää myös sähköpostin lähetyksen ServerAdminille.
# Valitse joku seuraavista kolmesta:  On | Off | EMail
ServerSignature On

# Lisää tässä kohdin niin monta aliasnimeä kuin haluat muodossa 
# Alias fakename realname
# Esimerkki: 
# Alias /image /ftp/pub/image
# Jolloin pyyntö http://myserver/image/foo.gif palauttaa tiedoston
# /ftp/pub/image/foo.gif, jonka siis ei tarvitse olla /var/www/html/ alla.
# /icons/ alias FancyIndexeding toimintoa varten on oletuksena käytössä.
# FancyIndexing tarkoittaa tapaa tehdä hakemistolistaus niin, että se muodostuu
# eri sarakkeista ikonille, tiedostonimelle (Name), tiedoston muutosajalle 
# (Last modified), tiedostokoolle (Size) ja kuvaukselle (Description). 
# Mikäli FancyIndexing on poissa päältä, hakemistolistaus on tavallinen
# järjestämätön lista.
Alias /icons/ "/var/www/icons/"
<Directory "/var/www/icons">
   Options Indexes MultiViews
   AllowOverride None
   Order allow,deny
   Allow from all
</Directory>

# WebDAV module configuration section.
# WebDAV on www-sivujen etähallintaan tarkoitettu standardi. 
# Esimerkiksi WebDev, joka on php:llä toteutettu sivustonhallintasovellus,
# tukee WebDAV-protokollaa.
<IfModule mod_dav_fs.c>
   # WebDAV-lukitustietokannan sijainti
   DAVLockDB /var/lib/dav/lockdb
</IfModule>

# ScriptAliakset ovat kuin aliakset mutta CGI-skriptejä varten
ScriptAlias /cgi-bin/ "/var/www/cgi-bin/"


# cgi-scriptien hakemisto ja määritteet
<Directory "/var/www/cgi-bin">
   AllowOverride None
   Options None
   Order allow,deny
   Allow from all
</Directory>

# Redirect määritteen avulla voit ohjata asiakkaan toisaalle
# Esimerkki:
# Redirect /service http://foo2.bar.com/service
# Ohjaa asiakkaan pyynnön http://pyynnönsaanutpalvelin/service/foo.txt
# osoitteeseen http://foo2.bar.com/service/foo.txt

# Palvelimen generoimien listausten määritteet
IndexOptions FancyIndexing VersionSort NameWidth=*
AddIconByEncoding (CMP,/icons/compressed.gif) x-compress x-gzip
AddIconByType (TXT,/icons/text.gif) text/*
AddIconByType (IMG,/icons/image2.gif) image/*
AddIconByType (SND,/icons/sound2.gif) audio/*
AddIconByType (VID,/icons/movie.gif) video/*
AddIcon /icons/binary.gif .bin .exe
AddIcon /icons/binhex.gif .hqx
AddIcon /icons/tar.gif .tar
AddIcon /icons/world2.gif .wrl .wrl.gz .vrml .vrm .iv
AddIcon /icons/compressed.gif .Z .z .tgz .gz .zip
AddIcon /icons/a.gif .ps .ai .eps
AddIcon /icons/layout.gif .html .shtml .htm .pdf
AddIcon /icons/text.gif .txt
AddIcon /icons/c.gif .c
AddIcon /icons/p.gif .pl .py
AddIcon /icons/f.gif .for
AddIcon /icons/dvi.gif .dvi
AddIcon /icons/uuencoded.gif .uu
AddIcon /icons/script.gif .conf .sh .shar .csh .ksh .tcl
AddIcon /icons/tex.gif .tex
AddIcon /icons/bomb.gif core
AddIcon /icons/back.gif ..
AddIcon /icons/hand.right.gif README
AddIcon /icons/folder.gif ^^DIRECTORY^^
AddIcon /icons/blank.gif ^^BLANKICON^^
# Oletuskuvake niille tiedoistoille joiden kuvaketta ei määritetty yllä
DefaultIcon /icons/unknown.gif
#AddDescription salli pienen selityksen liittämisen tiedostopäätteiden mukaan
#AddDescription "GZIP compressed document" .gz
#AddDescription "tar archive" .tar
#AddDescription "GZIP compressed tar archive" .tgz

# ReadmeName liitetään listauksen loppuun ja HeaderName listauksen alkuun
ReadmeName README.html
HeaderName HEADER.html

# IndexIgnore sisältää tiedostonimet, joita ei listata
IndexIgnore .??* *~ *# HEADER* README* RCS CVS *,v *,t

# DefaultLanguage ja AddLanguage mahdollistaa dokumentin kielen määrittämisen
# jonka jälkeen sisältötarkastelun (content negotiation) avulla voit näyttää
# asiakkaalle dokumentin hänen selaimeensa määrittämällä kielellä.
# Ohjeistusta monikielisten sivustojen hallintaan löytyy
# osoitteesta http://www.cs.tut.fi/~jkorpela/multi/index-en.htm
# Oletuskielen määrittäminen
# DefaultLanguage nl
AddLanguage ca .ca
AddLanguage cs .cz .cs
AddLanguage da .dk
AddLanguage de .de
AddLanguage el .el
AddLanguage en .en
AddLanguage eo .eo
AddLanguage es .es
AddLanguage et .et
AddLanguage fr .fr
AddLanguage he .he
AddLanguage hr .hr
AddLanguage it .it
AddLanguage ja .ja
AddLanguage ko .ko
AddLanguage ltz .ltz
AddLanguage nl .nl
AddLanguage nn .nn
AddLanguage no .no
AddLanguage pl .po
AddLanguage pt .pt
AddLanguage pt-BR .pt-br
AddLanguage ru .ru
AddLanguage sv .sv
AddLanguage zh-CN .zh-cn
AddLanguage zh-TW .zh-tw
# Lisää tämä itse
AddLanguage fi .fi

# Muuta kielien prioriteetin määrittävä LanguagePriority haluamaksesi
# Lisää alkuun halutessasi fi
LanguagePriority fi en 
# ca cs da de el eo es et fr he hr it ja ko ltz nl nn no pl pt pt-BR ru sv zh-CN
# zh-TW

# Jos halutunkielistä sivua ei löydy tai löytyy useita, niin 
# Prefer hakee priorityjärjestyksestä ensimmäiseksi parhaan
# ja Fallback näyttää ensimmäisen languagepriority listasta
ForceLanguagePriority Prefer Fallback

# Oletusmerkistö
AddDefaultCharset UTF-8

# AddType mahdollistaa MIME määritysten korvaamisen tietyille tiedostotyypeille
#AddType application/x-tar .tgz

# AddEncoding mahdollistaa joidenkin selainten purkaa pakattu tiedosto lennossa
#AddEncoding x-compress .Z
#AddEncoding x-gzip .gz .tgz

# Jos AddEncoding on kommentoituna kannattaa mediatyypit ilmaista
AddType application/x-compress .Z
AddType application/x-gzip .gz .tgz

# AddHandler mahdollistaa tiettyjen tiedostopäätteiden liittämisen
# käsittelijöihin eli tiedostotyyppiin liittymättömiin tapahtumiin
# Käyttä CGI-skriptejä muualla kuin ScriptAliased merkityissä
# hakemistoissa (Sinun tulee myös lisästä "ExecCGI" "Options" määritteeseen)
#AddHandler cgi-script .cgi

# Tiedostoille, joilla on omat HTTP otsikot (headers).
#AddHandler send-as-is asis

# Tyyppikartoille (.var):
# (Oletuksena päälle, jotta Apachen oletussivu voidaan näyttää usealla kielellä)
AddHandler type-map var

# Filttereiden avulla voit käsitellä tiedoston ennen asiakkaalle lähettämistä
# Filters allow you to process content before it is sent to the client.
# .shtml tiedostot vaativat myös "Includes" "Options" määritteeseen).
AddType text/html .shtml
AddOutputFilter INCLUDES .shtml

# Action mahdollistaa halutun CGI-skriptin suorittamisen tietyn tiedostotyypin
# yhteydessä
# Format: Action media/type /cgi-script/location
# Format: Action handler-name /cgi-script/location

# Mukautetut virheilmoitukset voivat tulla kolmessa muodossa:
# 1) pelkkä teksti 2) sisäinen ohjaus 3) ulkoinen ohjaus
# Esimerkit:
#ErrorDocument 500 "The server made a boo boo."
#ErrorDocument 404 /missing.html
#ErrorDocument 404 "/cgi-bin/missing_handler.pl"
#ErrorDocument 402 http://www.example.com/subscription_info.html

# Edellisiä yhdistämällä voimme antaa virheilmoitukset asiakkaan kielellä.
# Alias ohjaa kaikki /error/HTTP_<error>.html.var vastaukset virheenmukaisiin
# monikielisiin kokoelmiin. Includes korvaa halutun tekstin.
# Voit muuttaa viestejä muuttamatta oletus  HTTP_<error>.html.var tiedostoa
# lisäämällä rivin
# Alias /error/include/ "/oma/include/polku/"
# Jolloin voit luoda omia tiedostojasi kopioimalla /var/www/error/include/ 
# "/oma/include/polku/" hakemistoon.
Alias /error/ "/var/www/error/"
<IfModule mod_negotiation.c>
<IfModule mod_include.c>
   <Directory "/var/www/error">
       AllowOverride None
       Options IncludesNoExec
       AddOutputFilter Includes html
       AddHandler type-map var
       Order allow,deny
       Allow from all
       LanguagePriority en es de fr
       ForceLanguagePriority Prefer Fallback
   </Directory>

#    ErrorDocument 400 /error/HTTP_BAD_REQUEST.html.var
#    ErrorDocument 401 /error/HTTP_UNAUTHORIZED.html.var
#    ErrorDocument 403 /error/HTTP_FORBIDDEN.html.var
#    ErrorDocument 404 /error/HTTP_NOT_FOUND.html.var
#    ErrorDocument 405 /error/HTTP_METHOD_NOT_ALLOWED.html.var
#    ErrorDocument 408 /error/HTTP_REQUEST_TIME_OUT.html.var
#    ErrorDocument 410 /error/HTTP_GONE.html.var
#    ErrorDocument 411 /error/HTTP_LENGTH_REQUIRED.html.var
#    ErrorDocument 412 /error/HTTP_PRECONDITION_FAILED.html.var
#    ErrorDocument 413 /error/HTTP_REQUEST_ENTITY_TOO_LARGE.html.var
#    ErrorDocument 414 /error/HTTP_REQUEST_URI_TOO_LARGE.html.var
#    ErrorDocument 415 /error/HTTP_UNSUPPORTED_MEDIA_TYPE.html.var
#    ErrorDocument 500 /error/HTTP_INTERNAL_SERVER_ERROR.html.var
#    ErrorDocument 501 /error/HTTP_NOT_IMPLEMENTED.html.var
#    ErrorDocument 502 /error/HTTP_BAD_GATEWAY.html.var
#    ErrorDocument 503 /error/HTTP_SERVICE_UNAVAILABLE.html.var
#    ErrorDocument 506 /error/HTTP_VARIANT_ALSO_VARIES.html.var

</IfModule>
</IfModule>

# Seuraavat määritteet korjaavat ongelmia tietyissä selaimissa
BrowserMatch "Mozilla/2" nokeepalive
BrowserMatch "MSIE 4\.0b2;" nokeepalive downgrade-1.0 force-response-1.0
BrowserMatch "RealPlayer 4\.0" force-response-1.0
BrowserMatch "Java/1\.0" force-response-1.0
BrowserMatch "JDK/1\.0" force-response-1.0 

# Korjataan non-GET pyyntöjä
BrowserMatch "Microsoft Data Access Internet Publishing Provider" redirect-carefully
BrowserMatch "^WebDrive" redirect-carefully
BrowserMatch "^WebDAVFS/1.[012]" redirect-carefully
BrowserMatch "^gnome-vfs" redirect-carefully

# Mahdollistetaan mod_status-moduulin luoda palvelintilaraportteja
#<Location /server-status>
#    SetHandler server-status
#    Order deny,allow
#    Deny from all
#    Allow from .example.com
#</Location>

# Mahdollistaa etäpalvelimen määritysrapotteja
#<Location /server-info>
#    SetHandler server-info
#    Order deny,allow
#    Deny from all
#    Allow from .example.com
#</Location>

# Proxypalvelimen määritteet. Poista risuaidat mahdollistaaksesi Proxyn.
#<IfModule mod_proxy.c>
#ProxyRequests On
#
#<Proxy *>
#    Order deny,allow
#    Deny from all
#    Allow from .example.com
#</Proxy>

# Proxyn HTTP/1.1 "Via:" headers -käsittely.
# "Full" lisää palvelinversion, "Block" poistaa kaikki Via: headers:it)
# Valitse Off | On | Full | Block
#ProxyVia On

# Proxyn cachen mahdollistaminen
# Lisätietoa https://httpd.apache.org/docs-2.0/mod/mod_cache.html
#<IfModule mod_disk_cache.c>
#   CacheEnable disk /
#   CacheRoot "/var/cache/mod_proxy"
#</IfModule>
#</IfModule>
# Proxy määritteiden loppu

# 3: Virtuaali-isännät
# Mikäli palvelimellasi on useita domainnimiä tarvitset näitä.
# Poista risuaita ottaaksesi virtuaali-isännät käyttöön
# NameVirtualHost *:80

# HUOM: NameVirtualHost täytyy sisältää portin, jos mod_ssl käytössä
# VirtualHost sisältöpohja:
# Lähes mikä tahansa määritettä voidaan käyttää Virtuaali-isännän sisällössä
# Sisältöpohja on tarkoitettu niille pyynnöille joiden palvelinnimeä ei
# tunnisteta.
#<VirtualHost *:80>
#    ServerAdmin webmaster@dummy-host.example.com
#    DocumentRoot /www/docs/dummy-host.example.com
#    ServerName dummy-host.example.com
#    ErrorLog logs/dummy-host.example.com-error_log
#    CustomLog logs/dummy-host.example.com-access_log common
#</VirtualHost>

Katso myös[muokkaa]