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

Linux.fista
Siirry navigaatioon Siirry hakuun
(wikiin paremmin sopivaksi)
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.
Kyseessä on OPEKO:n kurssille (30-31.1.2006 / Timo Kapanen) tehtyä materiaalia, josta on poistettu kuvat ja muita vain kurssille kuuluvaa materiaalia.


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).
[[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 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.
Apachen määritykset ovat tiedostossa /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 erittäin hyvin tehdystä dokumentoinnista ja ohjeistuksesta Apachen [http://httpd.apache.org/docs-2.0/ www-saitilta]. Alla on pyritty suomentamaan ja selkeyttämään dokumenttia. Kyseinen ohjeistus on tehty kommenttimuotoon, jolloin voit halutessasi siirtää sen sellaisenaan omien konfiguraatioidesi pohjaksi.


[[Apache harjoituksia]] on harjoituksia osiossa.
[[Apache harjoituksia]] on harjoituksia osiossa.


  # Tarkemmat ohjeet <URL:http://httpd.apache.org/docs-2.0/>
  # Tarkemmat ohjeet: http://httpd.apache.org/docs-2.0  


  # Määritykset jaettu kolmeen perustyyppiin
  # Määritykset jaettu kolmeen perustyyppiin
Rivi 21: Rivi 21:


  # Piilottaa käynnissä olevat modulit näkymästä maailmalle
  # 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 konfiguraatio-, logi- 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
Rivi 35: Rivi 35:
  # 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
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 sekunttia 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
Rivi 56: Rivi 56:
  # MaxRequestsPerChild: palvelinprosessin tarjoamien pyyntöjen
  # MaxRequestsPerChild: palvelinprosessin tarjoamien pyyntöjen
  # maksimimäärä
  # maksimimäärä
<IfModule prefork.c>
<IfModule prefork.c>
StartServers      8
StartServers      8
MinSpareServers    5
MinSpareServers    5
MaxSpareServers  20
MaxSpareServers  20
ServerLimit      256
ServerLimit      256
MaxClients      256
MaxClients      256
MaxRequestsPerChild  4000
MaxRequestsPerChild  4000
</IfModule>
</IfModule>


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


  # Jos haluat Apachen kuuntelevan vain tiettyä Ip-osoitetta ja/tai porttia
  # Jos haluat Apachen kuuntelevan vain tiettyä Ip-osoitetta ja/tai porttia
# Portti 80 on http:n oletusportti
  #Listen 12.34.56.78:80
  #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: http://httpd.apache.org/docs/2.0/mod/
LoadModule access_module modules/mod_access.so <br>
LoadModule access_module modules/mod_access.so <br>
LoadModule auth_module modules/mod_auth.so <br>
LoadModule auth_module modules/mod_auth.so <br>
LoadModule auth_anon_module modules/mod_auth_anon.so <br>
LoadModule auth_anon_module modules/mod_auth_anon.so <br>
LoadModule auth_dbm_module modules/mod_auth_dbm.so <br>
LoadModule auth_dbm_module modules/mod_auth_dbm.so <br>
LoadModule auth_digest_module modules/mod_auth_digest.so <br>
LoadModule auth_digest_module modules/mod_auth_digest.so <br>
LoadModule ldap_module modules/mod_ldap.so <br>
LoadModule ldap_module modules/mod_ldap.so <br>
LoadModule auth_ldap_module modules/mod_auth_ldap.so <br>
LoadModule auth_ldap_module modules/mod_auth_ldap.so <br>
LoadModule include_module modules/mod_include.so <br>
LoadModule include_module modules/mod_include.so <br>
LoadModule log_config_module modules/mod_log_config.so <br>
LoadModule log_config_module modules/mod_log_config.so <br>
LoadModule logio_module modules/mod_logio.so <br>
LoadModule logio_module modules/mod_logio.so <br>
LoadModule env_module modules/mod_env.so <br>
LoadModule env_module modules/mod_env.so <br>
LoadModule mime_magic_module modules/mod_mime_magic.so <br>
LoadModule mime_magic_module modules/mod_mime_magic.so <br>
LoadModule cern_meta_module modules/mod_cern_meta.so <br>
LoadModule cern_meta_module modules/mod_cern_meta.so <br>
LoadModule expires_module modules/mod_expires.so <br>
LoadModule expires_module modules/mod_expires.so <br>
LoadModule deflate_module modules/mod_deflate.so <br>
LoadModule deflate_module modules/mod_deflate.so <br>
LoadModule headers_module modules/mod_headers.so <br>
LoadModule headers_module modules/mod_headers.so <br>
LoadModule usertrack_module modules/mod_usertrack.so <br>
LoadModule usertrack_module modules/mod_usertrack.so <br>
LoadModule setenvif_module modules/mod_setenvif.so <br>
LoadModule setenvif_module modules/mod_setenvif.so <br>
LoadModule mime_module modules/mod_mime.so <br>
LoadModule mime_module modules/mod_mime.so <br>
LoadModule dav_module modules/mod_dav.so <br>
LoadModule dav_module modules/mod_dav.so <br>
LoadModule status_module modules/mod_status.so <br>
LoadModule status_module modules/mod_status.so <br>
LoadModule autoindex_module modules/mod_autoindex.so <br>
LoadModule autoindex_module modules/mod_autoindex.so <br>
LoadModule asis_module modules/mod_asis.so <br>
LoadModule asis_module modules/mod_asis.so <br>
LoadModule info_module modules/mod_info.so <br>
LoadModule info_module modules/mod_info.so <br>
LoadModule dav_fs_module modules/mod_dav_fs.so <br>
LoadModule dav_fs_module modules/mod_dav_fs.so <br>
LoadModule vhost_alias_module modules/mod_vhost_alias.so <br>
LoadModule vhost_alias_module modules/mod_vhost_alias.so <br>
LoadModule negotiation_module modules/mod_negotiation.so <br>
LoadModule negotiation_module modules/mod_negotiation.so <br>
LoadModule dir_module modules/mod_dir.so <br>
LoadModule dir_module modules/mod_dir.so <br>
LoadModule actions_module modules/mod_actions.so <br>
LoadModule actions_module modules/mod_actions.so <br>
LoadModule speling_module modules/mod_speling.so <br>
LoadModule speling_module modules/mod_speling.so <br>
LoadModule userdir_module modules/mod_userdir.so <br>
LoadModule userdir_module modules/mod_userdir.so <br>
LoadModule alias_module modules/mod_alias.so <br>
LoadModule alias_module modules/mod_alias.so <br>
LoadModule rewrite_module modules/mod_rewrite.so <br>
LoadModule rewrite_module modules/mod_rewrite.so <br>
LoadModule proxy_module modules/mod_proxy.so <br>
LoadModule proxy_module modules/mod_proxy.so <br>
LoadModule proxy_ftp_module modules/mod_proxy_ftp.so <br>
LoadModule proxy_ftp_module modules/mod_proxy_ftp.so <br>
LoadModule proxy_http_module modules/mod_proxy_http.so <br>
LoadModule proxy_http_module modules/mod_proxy_http.so <br>
LoadModule proxy_connect_module modules/mod_proxy_connect.so <br>
LoadModule proxy_connect_module modules/mod_proxy_connect.so <br>
LoadModule cache_module modules/mod_cache.so <br>
LoadModule cache_module modules/mod_cache.so <br>
LoadModule suexec_module modules/mod_suexec.so <br>
LoadModule suexec_module modules/mod_suexec.so <br>
LoadModule disk_cache_module modules/mod_disk_cache.so <br>
LoadModule disk_cache_module modules/mod_disk_cache.so <br>
LoadModule file_cache_module modules/mod_file_cache.so <br>
LoadModule file_cache_module modules/mod_file_cache.so <br>
LoadModule mem_cache_module modules/mod_mem_cache.so <br>
LoadModule mem_cache_module modules/mod_mem_cache.so <br>
LoadModule cgi_module modules/mod_cgi.so <br>
LoadModule cgi_module modules/mod_cgi.so <br>  


  # 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
Rivi 133: Rivi 134:


  # 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
Rivi 141: Rivi 142:


  # 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ä.
Rivi 160: Rivi 161:
  # 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ää
Rivi 169: Rivi 170:
  # 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",
Rivi 206: Rivi 207:
  # 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
Rivi 246: Rivi 247:
  # 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
Rivi 293: Rivi 294:
  # 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.
Rivi 304: Rivi 305:
  # 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
Rivi 310: Rivi 311:
  # 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
Rivi 322: Rivi 323:
  # 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 logeihin 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
Rivi 364: Rivi 365:


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


  # LogLevel: Virhelogitiedostoon tallennettavien viestien taso.
  # LogLevel: Virhelogitiedostoon tallennettavien viestien taso.
Rivi 370: Rivi 371:
  # alert, emerg.
  # alert, emerg.
  # Tarkemmin: http://httpd.apache.org/docs/2.0/mod/core.html#loglevel
  # Tarkemmin: http://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
LogFormat "%{Referer}i -> %U" referer
LogFormat "%{Referer}i -> %U" referer
LogFormat "%{User-agent}i" agent
LogFormat "%{User-agent}i" agent


  # mod_logio modulin ollessa ladattuna voi käyttää combinedio muotoilua,  
  # mod_logio modulin ollessa ladattuna voi käyttää combinedio muotoilua,  
Rivi 389: Rivi 390:
  #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
Rivi 395: Rivi 396:
  # 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  
Rivi 409: Rivi 410:
  # 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.
Rivi 421: Rivi 422:
  # 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 lukitus tietokannan 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
Rivi 445: Rivi 446:


  # 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
AddIconByType (TXT,/icons/text.gif) text/*
AddIconByType (TXT,/icons/text.gif) text/*
AddIconByType (IMG,/icons/image2.gif) image/*
AddIconByType (IMG,/icons/image2.gif) image/*
AddIconByType (SND,/icons/sound2.gif) audio/*
AddIconByType (SND,/icons/sound2.gif) audio/*
AddIconByType (VID,/icons/movie.gif) video/*
AddIconByType (VID,/icons/movie.gif) video/*
AddIcon /icons/binary.gif .bin .exe
AddIcon /icons/binary.gif .bin .exe
AddIcon /icons/binhex.gif .hqx
AddIcon /icons/binhex.gif .hqx
AddIcon /icons/tar.gif .tar
AddIcon /icons/tar.gif .tar
AddIcon /icons/world2.gif .wrl .wrl.gz .vrml .vrm .iv
AddIcon /icons/world2.gif .wrl .wrl.gz .vrml .vrm .iv
AddIcon /icons/compressed.gif .Z .z .tgz .gz .zip
AddIcon /icons/compressed.gif .Z .z .tgz .gz .zip
AddIcon /icons/a.gif .ps .ai .eps
AddIcon /icons/a.gif .ps .ai .eps
AddIcon /icons/layout.gif .html .shtml .htm .pdf
AddIcon /icons/layout.gif .html .shtml .htm .pdf
AddIcon /icons/text.gif .txt
AddIcon /icons/text.gif .txt
AddIcon /icons/c.gif .c
AddIcon /icons/c.gif .c
AddIcon /icons/p.gif .pl .py
AddIcon /icons/p.gif .pl .py
AddIcon /icons/f.gif .for
AddIcon /icons/f.gif .for
AddIcon /icons/dvi.gif .dvi
AddIcon /icons/dvi.gif .dvi
AddIcon /icons/uuencoded.gif .uu
AddIcon /icons/uuencoded.gif .uu
AddIcon /icons/script.gif .conf .sh .shar .csh .ksh .tcl
AddIcon /icons/script.gif .conf .sh .shar .csh .ksh .tcl
AddIcon /icons/tex.gif .tex
AddIcon /icons/tex.gif .tex
AddIcon /icons/bomb.gif core
AddIcon /icons/bomb.gif core
AddIcon /icons/back.gif ..
AddIcon /icons/back.gif ..
AddIcon /icons/hand.right.gif README
AddIcon /icons/hand.right.gif README
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
Rivi 479: Rivi 480:


  # 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ää tiedostonikmet, 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
Rivi 492: Rivi 493:
  # 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
AddLanguage da .dk
AddLanguage da .dk
AddLanguage de .de
AddLanguage de .de
AddLanguage el .el
AddLanguage el .el
AddLanguage en .en
AddLanguage en .en
AddLanguage eo .eo
AddLanguage eo .eo
AddLanguage es .es
AddLanguage es .es
AddLanguage et .et
AddLanguage et .et
AddLanguage fr .fr
AddLanguage fr .fr
AddLanguage he .he
AddLanguage he .he
AddLanguage hr .hr
AddLanguage hr .hr
AddLanguage it .it
AddLanguage it .it
AddLanguage ja .ja
AddLanguage ja .ja
AddLanguage ko .ko
AddLanguage ko .ko
AddLanguage ltz .ltz
AddLanguage ltz .ltz
AddLanguage nl .nl
AddLanguage nl .nl
AddLanguage nn .nn
AddLanguage nn .nn
AddLanguage no .no
AddLanguage no .no
AddLanguage pl .po
AddLanguage pl .po
AddLanguage pt .pt
AddLanguage pt .pt
AddLanguage pt-BR .pt-br
AddLanguage pt-BR .pt-br
AddLanguage ru .ru
AddLanguage ru .ru
AddLanguage sv .sv
AddLanguage sv .sv
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
Rivi 530: Rivi 531:
  # 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
Rivi 543: Rivi 544:


  # 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
Rivi 557: Rivi 558:
  # 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
Rivi 586: Rivi 587:
  # 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
Rivi 618: Rivi 619:
  #    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
BrowserMatch "^WebDAVFS/1.[012]" redirect-carefully
BrowserMatch "^WebDAVFS/1.[012]" redirect-carefully
BrowserMatch "^gnome-vfs" redirect-carefully
BrowserMatch "^gnome-vfs" redirect-carefully


  # Mahdollistetaan mod_status modulin luoda palvelintilaraportteja
  # Mahdollistetaan mod_status modulin luoda palvelintilaraportteja

Versio 13. tammikuuta 2006 kello 18.40

Kyseessä on OPEKO:n kurssille (30-31.1.2006 / Timo Kapanen) tehtyä materiaalia, josta on poistettu kuvat ja muita vain kurssille kuuluvaa materiaalia.

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 tiedostossa /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 erittäin hyvin tehdystä dokumentoinnista ja ohjeistuksesta Apachen www-saitilta. Alla on pyritty suomentamaan ja selkeyttämään dokumenttia. Kyseinen ohjeistus on tehty kommenttimuotoon, jolloin voit halutessasi siirtää sen sellaisenaan omien konfiguraatioidesi pohjaksi.

Apache harjoituksia on harjoituksia osiossa.

# Tarkemmat ohjeet: 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
# Palvelimen juurihakemisto, mistä löytyvät konfiguraatio-, logi- 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
KeepAlive Off
# Jos edellinen käytössä, niin montako kyselyä samaan yhteyteen
MaxKeepAliveRequests 100
# Montako sekunttia 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: http://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 
# (http://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:
# http://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 modulia, joka tarjoaa perusautentikoinnin, missä
# käyttäjänimet ja salasanat tallennetaan DBM tyyppiseen tietokantaan
# toisin kuin mod_auth moduli, 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:
# http://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:
# http://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:
# http://httpd.apache.org/docs/2.0/mod/mod_access.html#allow
# http://httpd.apache.org/docs/2.0/mod/mod_setenvif.html
# http://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 logeihin 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: http://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 http://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: http://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 modulin 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 lukitus tietokannan 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ää tiedostonikmet, 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 modulin 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 http://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>