<?xml version="1.0"?>
<feed xmlns="http://www.w3.org/2005/Atom" xml:lang="et">
	<id>https://kuutorvaja.eenet.ee/w/api.php?action=feedcontributions&amp;feedformat=atom&amp;user=Triinu</id>
	<title>Kuutõrvaja - Kasutaja kaastöö [et]</title>
	<link rel="self" type="application/atom+xml" href="https://kuutorvaja.eenet.ee/w/api.php?action=feedcontributions&amp;feedformat=atom&amp;user=Triinu"/>
	<link rel="alternate" type="text/html" href="https://kuutorvaja.eenet.ee/w/index.php/Eri:Kaast%C3%B6%C3%B6/Triinu"/>
	<updated>2026-06-03T21:06:26Z</updated>
	<subtitle>Kasutaja kaastöö</subtitle>
	<generator>MediaWiki 1.43.6</generator>
	<entry>
		<id>https://kuutorvaja.eenet.ee/w/index.php?title=Slackware_Linux&amp;diff=2974</id>
		<title>Slackware Linux</title>
		<link rel="alternate" type="text/html" href="https://kuutorvaja.eenet.ee/w/index.php?title=Slackware_Linux&amp;diff=2974"/>
		<updated>2007-02-02T13:45:15Z</updated>

		<summary type="html">&lt;p&gt;Triinu: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;[http://www.slackware.com/ Slackware Linux] on üks esimesi Linuxi distributsioone ja on tänapäeval tuntud heas mõttes oma konservatiivsusega. Näiteks läks Slackware viimasena üle libc5lt glibc2 libradele. Siiski, distributsiooni kuuluvad nii serverina kui töökohal kasutamiseks olulised vahendid. &lt;br /&gt;
&lt;br /&gt;
[[Installeerimine]] Juhised operatsioonisüsteemi installeerimiseks. &lt;br /&gt;
&lt;br /&gt;
[[Tarkvara]] Kuidas töötavale süsteemile tarkvara lisada, värskendada ja eemaldada. &lt;br /&gt;
&lt;br /&gt;
[[Eesti asetusega klaviatuuri kasutamine]] Juhised eesti asetusega klaviatuuri kasutamiseks Xi ja konsooli all.&lt;/div&gt;</summary>
		<author><name>Triinu</name></author>
	</entry>
	<entry>
		<id>https://kuutorvaja.eenet.ee/w/index.php?title=Programmide_portimine&amp;diff=2971</id>
		<title>Programmide portimine</title>
		<link rel="alternate" type="text/html" href="https://kuutorvaja.eenet.ee/w/index.php?title=Programmide_portimine&amp;diff=2971"/>
		<updated>2007-02-02T13:42:18Z</updated>

		<summary type="html">&lt;p&gt;Triinu: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;[Tekst on kirjutatud FreeBSD-d silmas pidades, aga üldjoontes klapib kõigega]&lt;br /&gt;
&lt;br /&gt;
Avatud lähtekoodidega maailmas võib juhtuda, et sinu opsüsteemile ei ole binaarpakki mingist vajalikust programmist. Ja portsudest ei pruugi ka asja olla.&lt;br /&gt;
&lt;br /&gt;
Heal juhul kompileerub asi esimese katsega. Veidi halvemal juhul on vaja ./configure skriptile mõned parameetrid kaasa anda.&lt;br /&gt;
&lt;br /&gt;
Veel halvemal juhul hakkab kompilaator protesteerima.&lt;br /&gt;
&lt;br /&gt;
Siis tuleks vaadata rahulikult veateateid.&lt;br /&gt;
* Kõige lihtsamal juhul vingutakse puuduva .h faili pärast. Kui puudu on fail, mis üsna kindlasti peaks süsteemis olemas olema( GL/gl.h; jpeg.h; jne), siis võib põhjuseks olla see, et mõned ./configured ei tea, et FreeBSD hoiab asju /usr/local kataloogis. Kõige lihtsam on käivitada ./configure nõnda:&lt;br /&gt;
 ./configure CPPFLAGS=-I/usr/local/include LDFLAGS=-L/usr/local/lib&lt;br /&gt;
* Mõnikord vajatakse mingeid linux/* headereid. Nendega on FreeBSDs juba raskem. Mõnedele neist on analoogid, mõnedele neist ei ole... [vot siia tuleks veel juttu (joystick ühes ja teises, ioctl ühes ja teises jne)]&lt;br /&gt;
* Teinekord on kompilaator liiga uus / liiga vana / liiga mittestandartne / jne. [siia ka veel juurde]&lt;br /&gt;
* Linkimisel protesteeritakse puuduva -ldl pärast. Asi on selles, et dünaamilise linkimise funktsioonide jaoks on Linuxis vaja linkida külge -ldl, aga FreeBSD on need funktsioonid juba standardteegis sees. Sellest takistusest möödasaamiseks on vaja minna kataloogi, kus viga esines ja sealses Makefiles koristada ära kõik -ldl esinemised&lt;br /&gt;
* Vahel tekivad kompileerimisel hoiatused, aga gcc loeb neid vigadena ja peatab kompilatsiooni. Sel juhul on Makefilest vaja ära koristada kõik -Werror esinemised.&lt;br /&gt;
&lt;br /&gt;
[paar sõna sconsi kohta]&lt;/div&gt;</summary>
		<author><name>Triinu</name></author>
	</entry>
	<entry>
		<id>https://kuutorvaja.eenet.ee/w/index.php?title=WRT-ruuteri_h%C3%A4kkimine&amp;diff=2970</id>
		<title>WRT-ruuteri häkkimine</title>
		<link rel="alternate" type="text/html" href="https://kuutorvaja.eenet.ee/w/index.php?title=WRT-ruuteri_h%C3%A4kkimine&amp;diff=2970"/>
		<updated>2007-02-02T13:39:26Z</updated>

		<summary type="html">&lt;p&gt;Triinu: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;==Linksys WRT54GL==&lt;br /&gt;
===Wärkvara===&lt;br /&gt;
WRT54GL on väike, ühel plaadil on kokku pandud interneti ruuter, &lt;br /&gt;
4-pordiline 10/100 switch ja 54Mbps Wireless-G (802.11g) Access Point. &lt;br /&gt;
Kaks antennipistikut koos antennidega. &lt;br /&gt;
&lt;br /&gt;
Mootoriks on 200MHz Broadcom 5352 protsessor, 4MB Flash-mälu ja 16MB RAM. &lt;br /&gt;
Serial interface: UART otsad on trükkplaadil olemas. &lt;br /&gt;
&lt;br /&gt;
Opsüsteemiks on Linux. Haldamine käib veebiliidese kaudu.&lt;br /&gt;
&lt;br /&gt;
===Modimine===&lt;br /&gt;
====Firmware vahetamine====&lt;br /&gt;
OpenWRT, DD+WRT ja mitmed teised.&lt;br /&gt;
====Wärkvara täiustamine====&lt;br /&gt;
Täisväärtusliku jadaliidese tegemine&lt;br /&gt;
* Termomeeter&lt;br /&gt;
** Digitemp&lt;br /&gt;
SD mälukaardi ühendamine&lt;br /&gt;
===Mis-on-mis===&lt;br /&gt;
; rs232 port : rs232 standardile vastav jadaliides (serial port). &lt;br /&gt;
; 3,5V serial port : rs232 port aga signaalitasemed on 0V ja 3,5V -10V ja +10V asemel. -10V/+10V&lt;br /&gt;
&lt;br /&gt;
===Lingid===&lt;br /&gt;
* [http://www.dd-wrt.com/wiki/index.php/ DD-WRT koduka wiki]&lt;br /&gt;
* [http://wiki.openwrt.org/ OpenWRT kodukas]&lt;br /&gt;
* [http://www.lecad.uni-lj.si/~leon/other/wlan/wrt54ow/ rs-liidese variant]&lt;br /&gt;
* [http://www.brianlane.com/digitemp.php Digitemp programmid]&lt;br /&gt;
* http://www.linksysinfo.org/&lt;br /&gt;
* http://www.linksys.com/&lt;br /&gt;
* http://www.linksysinfo.org/forums/showthread.php?t=47535&lt;/div&gt;</summary>
		<author><name>Triinu</name></author>
	</entry>
	<entry>
		<id>https://kuutorvaja.eenet.ee/w/index.php?title=WRT-ruuteri_h%C3%A4kkimine&amp;diff=2969</id>
		<title>WRT-ruuteri häkkimine</title>
		<link rel="alternate" type="text/html" href="https://kuutorvaja.eenet.ee/w/index.php?title=WRT-ruuteri_h%C3%A4kkimine&amp;diff=2969"/>
		<updated>2007-02-02T13:39:12Z</updated>

		<summary type="html">&lt;p&gt;Triinu: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;==Linksys WRT54GL==&lt;br /&gt;
===Wärkvara===&lt;br /&gt;
WRT54GL on väike, ühel plaadil on kokku pandud interneti ruuter, &lt;br /&gt;
4-pordiline 10/100 switch ja 54Mbps Wireless-G (802.11g) Access Point. &lt;br /&gt;
Kaks antennipistikut koos antennidega. &lt;br /&gt;
Mootoriks on 200MHz Broadcom 5352 protsessor, 4MB Flash-mälu ja 16MB RAM. &lt;br /&gt;
Serial interface: UART otsad on trükkplaadil olemas. &lt;br /&gt;
&lt;br /&gt;
Opsüsteemiks on Linux. Haldamine käib veebiliidese kaudu.&lt;br /&gt;
&lt;br /&gt;
===Modimine===&lt;br /&gt;
====Firmware vahetamine====&lt;br /&gt;
OpenWRT, DD+WRT ja mitmed teised.&lt;br /&gt;
====Wärkvara täiustamine====&lt;br /&gt;
Täisväärtusliku jadaliidese tegemine&lt;br /&gt;
* Termomeeter&lt;br /&gt;
** Digitemp&lt;br /&gt;
SD mälukaardi ühendamine&lt;br /&gt;
===Mis-on-mis===&lt;br /&gt;
; rs232 port : rs232 standardile vastav jadaliides (serial port). &lt;br /&gt;
; 3,5V serial port : rs232 port aga signaalitasemed on 0V ja 3,5V -10V ja +10V asemel. -10V/+10V&lt;br /&gt;
&lt;br /&gt;
===Lingid===&lt;br /&gt;
* [http://www.dd-wrt.com/wiki/index.php/ DD-WRT koduka wiki]&lt;br /&gt;
* [http://wiki.openwrt.org/ OpenWRT kodukas]&lt;br /&gt;
* [http://www.lecad.uni-lj.si/~leon/other/wlan/wrt54ow/ rs-liidese variant]&lt;br /&gt;
* [http://www.brianlane.com/digitemp.php Digitemp programmid]&lt;br /&gt;
* http://www.linksysinfo.org/&lt;br /&gt;
* http://www.linksys.com/&lt;br /&gt;
* http://www.linksysinfo.org/forums/showthread.php?t=47535&lt;/div&gt;</summary>
		<author><name>Triinu</name></author>
	</entry>
	<entry>
		<id>https://kuutorvaja.eenet.ee/w/index.php?title=WRT-ruuteri_h%C3%A4kkimine&amp;diff=2968</id>
		<title>WRT-ruuteri häkkimine</title>
		<link rel="alternate" type="text/html" href="https://kuutorvaja.eenet.ee/w/index.php?title=WRT-ruuteri_h%C3%A4kkimine&amp;diff=2968"/>
		<updated>2007-02-02T13:38:46Z</updated>

		<summary type="html">&lt;p&gt;Triinu: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;==Linksys WRT54GL==&lt;br /&gt;
===Wärkvara===&lt;br /&gt;
WRT54GL on väike, ühel plaadil on kokku pandud interneti ruuter, 4-pordiline 10/100 switch ja 54Mbps Wireless-G (802.11g) Access Point. Kaks antennipistikut koos antennidega. Mootoriks on 200MHz Broadcom 5352 protsessor, 4MB Flash-mälu ja 16MB RAM. Serial interface: UART otsad on trükkplaadil olemas. &lt;br /&gt;
&lt;br /&gt;
Opsüsteemiks on Linux. Haldamine käib veebiliidese kaudu.&lt;br /&gt;
&lt;br /&gt;
===Modimine===&lt;br /&gt;
====Firmware vahetamine====&lt;br /&gt;
OpenWRT, DD+WRT ja mitmed teised.&lt;br /&gt;
====Wärkvara täiustamine====&lt;br /&gt;
Täisväärtusliku jadaliidese tegemine&lt;br /&gt;
* Termomeeter&lt;br /&gt;
** Digitemp&lt;br /&gt;
SD mälukaardi ühendamine&lt;br /&gt;
===Mis-on-mis===&lt;br /&gt;
; rs232 port : rs232 standardile vastav jadaliides (serial port). &lt;br /&gt;
; 3,5V serial port : rs232 port aga signaalitasemed on 0V ja 3,5V -10V ja +10V asemel. -10V/+10V&lt;br /&gt;
&lt;br /&gt;
===Lingid===&lt;br /&gt;
* [http://www.dd-wrt.com/wiki/index.php/ DD-WRT koduka wiki]&lt;br /&gt;
* [http://wiki.openwrt.org/ OpenWRT kodukas]&lt;br /&gt;
* [http://www.lecad.uni-lj.si/~leon/other/wlan/wrt54ow/ rs-liidese variant]&lt;br /&gt;
* [http://www.brianlane.com/digitemp.php Digitemp programmid]&lt;br /&gt;
* http://www.linksysinfo.org/&lt;br /&gt;
* http://www.linksys.com/&lt;br /&gt;
* http://www.linksysinfo.org/forums/showthread.php?t=47535&lt;/div&gt;</summary>
		<author><name>Triinu</name></author>
	</entry>
	<entry>
		<id>https://kuutorvaja.eenet.ee/w/index.php?title=Linux_2_Solaris_howto&amp;diff=2966</id>
		<title>Linux 2 Solaris howto</title>
		<link rel="alternate" type="text/html" href="https://kuutorvaja.eenet.ee/w/index.php?title=Linux_2_Solaris_howto&amp;diff=2966"/>
		<updated>2007-02-02T13:34:11Z</updated>

		<summary type="html">&lt;p&gt;Triinu: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;# prstat (võtmetega -J ja -T huvitav) on midagi top sarnast&lt;br /&gt;
# prtdiag -v näitab riistvaraliste ressursside nimekirja&lt;br /&gt;
# psrinfo näitab protsessorite nimekirja&lt;br /&gt;
# võrguseadme seadistamiseks, ifconfig qfe1 plumb &amp;amp;&amp;amp; ifconfig qfe1 192.168.5.1/24 &amp;amp;&amp;amp; ifconfig qfe1 up&lt;br /&gt;
# &#039;shutdown -y -g 0 -i 6&#039; teeb reboodi, nagu shutdown -r now&lt;br /&gt;
# &#039;shutdown -y -g 0 -i 5 teeb poweroff&lt;br /&gt;
# ps -ef on nagu ps aux&lt;br /&gt;
# df -k annab df moodi väljundi&lt;br /&gt;
# pkgchk -l CSWtomcat5 - paketis sisalduvate failide nimekiri&lt;br /&gt;
# patchadd -p paikade nimekiri&lt;br /&gt;
# id -a - näitab kasutaja gruppe&lt;br /&gt;
# snoop on tcpdump (nt snoop -d fjgi0 -o arvuti-20070110.log host 192.168.1.1 kirjutab faili) &lt;br /&gt;
# &#039;svcadm restart ssh&#039; on /etc/init.d/ssh restart&lt;br /&gt;
# &#039;tar -cf - -C /kata1/kata2 . -C /kata3/kata4 . | tar xf -&#039; kopeerib suhtelise teega&lt;br /&gt;
# pargs näitab käivitatud programmi argumente, keskkonnamuutujaid jms&lt;br /&gt;
# &#039;egrep -r string .&#039; on &#039;find . -type f -print | xargs grep string&#039;&lt;br /&gt;
# netstat -rn on route -n&lt;br /&gt;
# /etc/fstab on /etc/vfstab&lt;br /&gt;
# uue riistvara äratundmiseks ütelda OBP promptis &#039;boot -r&#039; ehk opsüsteemis devfsadm&lt;br /&gt;
# cd pealt bootimine single userisse, &#039;boot cdrom -s&#039;&lt;br /&gt;
# kõvaketta uurimine, nt &#039;prtvtoc /dev/dsk/c1t9d0s0&#039;&lt;br /&gt;
# failisüsteemi dump, nt &#039;ufsdump 0f /tmp/v2/juurikas.dump /dev/dsk/c1t9d0s0&#039;&lt;br /&gt;
# failisüsteemi restore, nt &#039;cd kataloog &amp;amp;&amp;amp; ufsrestore rf /tmp/v2/juurikas.dump&#039;&lt;br /&gt;
# bootloaderi paigaldamine, &#039;installboot /usr/platform/`name -i`/lib/fs/ufs/bootblk /dev/rdsk/cwtxdys0&#039;&lt;br /&gt;
# swap lisamine, nt swap -a /dev/dsk/cwtxdys0&#039; (sarnaselt faili puhul)&lt;br /&gt;
# format -&amp;gt; analyze abil saab kõvaketta nö bloki tasemel kontrollida&lt;br /&gt;
# dump-device &#039;i swapi peale keeramine, dumpadm -d swap&lt;br /&gt;
# ZFS failisüsteemi info vaatamine - &#039;zfs get -o property,value,source all tank/csw&#039;&lt;br /&gt;
# versiooni vaatamine, &#039;cat /etc/release&#039; -&amp;gt; Solaris 10 1/06 s10s_u1wos_19a SPARC&lt;br /&gt;
# lsmod on modinfo&lt;br /&gt;
# md5sum on digest -a md5&lt;/div&gt;</summary>
		<author><name>Triinu</name></author>
	</entry>
	<entry>
		<id>https://kuutorvaja.eenet.ee/w/index.php?title=LVM&amp;diff=2965</id>
		<title>LVM</title>
		<link rel="alternate" type="text/html" href="https://kuutorvaja.eenet.ee/w/index.php?title=LVM&amp;diff=2965"/>
		<updated>2007-02-02T13:31:15Z</updated>

		<summary type="html">&lt;p&gt;Triinu: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;&#039;&#039;&#039;LVM&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
LVM moodustab kihi failisüsteemi ja füüsilise kõvaketta vahele. Kui kasutusel on ka RAID, siis võiks kujutleda kihte selliselt&lt;br /&gt;
&lt;br /&gt;
 Failisüsteemid&lt;br /&gt;
 LVM&lt;br /&gt;
 RAID&lt;br /&gt;
 Füüsilised blokkseadmed&lt;br /&gt;
&lt;br /&gt;
LVM võimaldab teha failisüsteemidest snapshotte ning kui failisüsteem seda toetab, siis ka olemasoleva failisüsteemi suurust muuta.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Tuuma seadistamine&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
Linuxi 2.6 tuuma puhul on oluline lisaks füüsiliste ketaste draiveritele valida eriti device-mapper&lt;br /&gt;
&lt;br /&gt;
 Device Drivers -&amp;gt; Multi-device support (RAID and LVM) -&amp;gt; valida kõik&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;LVM seadistamine&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
LVM lahenduse seadistamiseks sobib kasutada tarkvara lvm2 http://sourceware.org/lvm2/, reeglina on see distributsiooni jaoks pakendatud.&lt;br /&gt;
&lt;br /&gt;
LVMi tuleks käsitleda kolmekihilisena&lt;br /&gt;
&lt;br /&gt;
# Blokkseadmed tuleb LVM juures kasutamiseks spetsiaalselt märgistada.&lt;br /&gt;
# Blokkseadmed on organiseeritud voluum gruppidesse, mis on konteinerid loogilistele voluumidele.&lt;br /&gt;
# Loogilised voluumid on kõige otsekohesemalt kasutatavad, sinna peale moodustatakse tavaliselt failisüsteemid.&lt;br /&gt;
&lt;br /&gt;
Iga kihi tegevusteks kasutatakse oma utiliite, vastavalt nimedega pv*, vg* ja lv*.&lt;br /&gt;
&lt;br /&gt;
Esmalt tuleb olemasolevad blokkseadmed (füüsilised kõvakettad või RAID seadmed) märkida füüsilisteks voluumideks&lt;br /&gt;
&lt;br /&gt;
 aix:~# pvcreate /dev/md0&lt;br /&gt;
&lt;br /&gt;
Tulemust näeb sedasi&lt;br /&gt;
&lt;br /&gt;
 aix:~# pvdisplay&lt;br /&gt;
  --- Physical volume ---&lt;br /&gt;
  PV Name               /dev/md0&lt;br /&gt;
  VG Name               voluum&lt;br /&gt;
  PV Size               465.77 GB / not usable 0   &lt;br /&gt;
  Allocatable           yes &lt;br /&gt;
  PE Size (KByte)       4096&lt;br /&gt;
  Total PE              119237&lt;br /&gt;
  Free PE               106949&lt;br /&gt;
  Allocated PE          12288&lt;br /&gt;
  PV UUID               dC1zcu-3caT-Uirt-sbB9-r7j0-Yf06-FUGVmP&lt;br /&gt;
&lt;br /&gt;
Seejärel tuleb moodustada loogiline grupp&lt;br /&gt;
&lt;br /&gt;
 aix:~# vgcreate voluum /dev/md0&lt;br /&gt;
&lt;br /&gt;
Tulemust näeb selliselt&lt;br /&gt;
&lt;br /&gt;
 aix:~# vgdisplay voluum&lt;br /&gt;
  --- Volume group ---&lt;br /&gt;
  VG Name               voluum&lt;br /&gt;
  System ID             &lt;br /&gt;
  Format                lvm2&lt;br /&gt;
  Metadata Areas        1&lt;br /&gt;
  Metadata Sequence No  16&lt;br /&gt;
  VG Access             read/write&lt;br /&gt;
  VG Status             resizable&lt;br /&gt;
  MAX LV                0&lt;br /&gt;
  Cur LV                3&lt;br /&gt;
  Open LV               0&lt;br /&gt;
  Max PV                0&lt;br /&gt;
  Cur PV                1&lt;br /&gt;
  Act PV                1&lt;br /&gt;
  VG Size               465.77 GB&lt;br /&gt;
  PE Size               4.00 MB&lt;br /&gt;
  Total PE              119237&lt;br /&gt;
  Alloc PE / Size       12288 / 48.00 GB&lt;br /&gt;
  Free  PE / Size       106949 / 417.77 GB&lt;br /&gt;
  VG UUID               j8OONB-HABJ-HH1g-7Ywx-RLVG-1OzZ-IA68j9&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Lõpuks moodustada loogilised voluumid&lt;br /&gt;
&lt;br /&gt;
 aix:~# lvcreate -L 16G -n vm01 voluum     &lt;br /&gt;
  Logical volume &amp;quot;vm01&amp;quot; created&lt;br /&gt;
 aix:~# lvcreate -L 16G -n vm02 voluum&lt;br /&gt;
  Logical volume &amp;quot;vm02&amp;quot; created&lt;br /&gt;
 aix:~# lvcreate -L 16G -n vm03 voluum&lt;br /&gt;
  Logical volume &amp;quot;vm03&amp;quot; created&lt;br /&gt;
&lt;br /&gt;
Tulemust näeb selliselt&lt;br /&gt;
&lt;br /&gt;
 aix:~# lvdisplay /dev/voluum/vm01&lt;br /&gt;
  --- Logical volume ---&lt;br /&gt;
  LV Name                /dev/voluum/vm01&lt;br /&gt;
  VG Name                voluum&lt;br /&gt;
  LV UUID                dXfxk5-0jmz-TfQY-hTwz-XxKw-XtgS-H1IOvz&lt;br /&gt;
  LV Write Access        read/write&lt;br /&gt;
  LV Status              available&lt;br /&gt;
  # open                 0&lt;br /&gt;
  LV Size                16.00 GB&lt;br /&gt;
  Current LE             4096&lt;br /&gt;
  Segments               1&lt;br /&gt;
  Allocation             inherit&lt;br /&gt;
  Read ahead sectors     0&lt;br /&gt;
  Block device           253:0&lt;br /&gt;
&lt;br /&gt;
Voluum saab olla available või NOT available olekus. Kasutada saab available voluume, kusjuures lvcreate järgselt viiakse voluum automaatselt available olekusse. &lt;br /&gt;
&lt;br /&gt;
Voluumi eemaldamiseks tuleb esmalt ta viia NOT available olekusse&lt;br /&gt;
&lt;br /&gt;
 aix:~# lvchange -a n /dev/voluum/vm01&lt;br /&gt;
&lt;br /&gt;
ning seejärel&lt;br /&gt;
&lt;br /&gt;
 aix:~# lvremove /dev/voluum/vm03&lt;br /&gt;
&lt;br /&gt;
Voluumigruppide eemaldamiseks tuleks öelda&lt;br /&gt;
&lt;br /&gt;
 aix:~# vgremove /dev/voluum&lt;br /&gt;
&lt;br /&gt;
Peale arvuti käivitamist tuleb näiteks Debian GNU/Linuxi puhul öelda&lt;br /&gt;
&lt;br /&gt;
 aix:~# /etc/init.d/lvm start&lt;br /&gt;
&lt;br /&gt;
/dev kataloogi seadmete moodustamiseks ning ennem arvuti seiskamist&lt;br /&gt;
&lt;br /&gt;
 aix:~# /etc/init.d/lvm stop&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Snapshot&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
Snapshot tekitab koopia tema moodustamise ajahetkele vastavast loogilise seadme olekust, mida saab seejärel kasutada nagu tavalist failisüsteemi. Snapshoti tegemise eelduseks on, et samas voluumi grupis on piisavalt vaba kasutamata ruumi, st mida pole omistatud ühelegi loogilisele voluumile.&lt;br /&gt;
&lt;br /&gt;
 aix:~# lvcreate -L2G -s -n vm01_snapshot /dev/voluum/vm01&lt;br /&gt;
&lt;br /&gt;
Tavaliselt on snapshoti moodustamise põhjuseks soov olemasoleva failisüsteemi seisuga mingi muudatus järgi proovida, näiteks tarkvara uuendamine ilma, et see töötavat süsteemi segaks. Sel juhul tuleb peale snapshoti moodustamist ta külge ühendada&lt;br /&gt;
&lt;br /&gt;
 aix:~# mount /dev/voluum/vm01_snapshot /mnt/vm01_snapshot&lt;br /&gt;
&lt;br /&gt;
Snapshoti vabastamiseks tuleb esmalt ta lahti ühendada ja siis öelda&lt;br /&gt;
&lt;br /&gt;
 aix:~# lvremove /dev/voluum/vm01_snapshot&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Veel toredaid programme&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
Programm lvm töötab interaktiivses režiimis&lt;br /&gt;
&lt;br /&gt;
 aix:~# lvm&lt;br /&gt;
 lvm&amp;gt; pvs&lt;br /&gt;
  PV         VG     Fmt  Attr PSize   PFree  &lt;br /&gt;
  /dev/md0   voluum lvm2 a-   465.77G 167.77G&lt;br /&gt;
&lt;br /&gt;
 lvm&amp;gt; lvs&lt;br /&gt;
  LV       VG     Attr   LSize   Origin Snap%  Move Log Copy% &lt;br /&gt;
  kraam250 voluum -wi-ao 250.00G                              &lt;br /&gt;
  vm01     voluum -wi-ao  16.00G                              &lt;br /&gt;
  vm02     voluum -wi-ao  16.00G                              &lt;br /&gt;
  vm03     voluum -wi-ao  16.00G                              &lt;br /&gt;
&lt;br /&gt;
 lvm&amp;gt; vgs&lt;br /&gt;
  VG     #PV #LV #SN Attr   VSize   VFree  &lt;br /&gt;
  voluum   1   4   0 wz--n- 465.77G 167.77G&lt;br /&gt;
&lt;br /&gt;
 lvm&amp;gt; lvscan&lt;br /&gt;
  ACTIVE            &#039;/dev/voluum/vm01&#039; [16.00 GB] inherit&lt;br /&gt;
  ACTIVE            &#039;/dev/voluum/vm02&#039; [16.00 GB] inherit&lt;br /&gt;
  ACTIVE            &#039;/dev/voluum/vm03&#039; [16.00 GB] inherit&lt;br /&gt;
  ACTIVE            &#039;/dev/voluum/kraam250&#039; [250.00 GB] inherit&lt;br /&gt;
&lt;br /&gt;
 lvm&amp;gt; vgscan&lt;br /&gt;
  Reading all physical volumes.  This may take a while...&lt;br /&gt;
  Found volume group &amp;quot;voluum&amp;quot; using metadata type lvm2&lt;br /&gt;
&lt;br /&gt;
 lvm&amp;gt; pvscan&lt;br /&gt;
  PV /dev/md0   VG voluum   lvm2 [465.77 GB / 167.77 GB free]&lt;br /&gt;
  Total: 1 [465.77 GB] / in use: 1 [465.77 GB] / in no VG: 0 [0   ]&lt;/div&gt;</summary>
		<author><name>Triinu</name></author>
	</entry>
	<entry>
		<id>https://kuutorvaja.eenet.ee/w/index.php?title=Tarkvaralise_RAID_massiivi_kasutamine_Linuxiga&amp;diff=2964</id>
		<title>Tarkvaralise RAID massiivi kasutamine Linuxiga</title>
		<link rel="alternate" type="text/html" href="https://kuutorvaja.eenet.ee/w/index.php?title=Tarkvaralise_RAID_massiivi_kasutamine_Linuxiga&amp;diff=2964"/>
		<updated>2007-02-02T10:48:06Z</updated>

		<summary type="html">&lt;p&gt;Triinu: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;&#039;&#039;&#039;Tarkvaraline RAID&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
RAID (Redundant Arrays of Inexpensive Disks) tähistab mitmetest iseseisvatest füüsilistest blokkseadmetest (kõvaketastest) tervikliku loogilise blokkseadme moodustamist. Kui loogilise seadme moodustamiseks kasutatakse spetsiaalselt RAID kontrollerit, siis on tegu riistvaralise RAID lahendusega. Mitmetest iseseisvatest füüsilistest kõvaketastest saab loogilise blokkseadme moodustada ka ilma riistvaralise kontrollerita, sel juhul nimetatakse lahendust tarkvaraliseks RAID&#039;iks.&lt;br /&gt;
&lt;br /&gt;
Kuigi tihtipeale kõneldakse ja kasutatakse RAID ja LVM (Logical Volume Management) teemat koos, on sisuliselt tegu kahe erineva küsimusega. Materjali esituse selguse mõttes esitatakse nad Kuutõrvajas erinevates punktides.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Linuxi tuuma seadistamine&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
Linuxi 2.6 tuuma puhul on oluline lisaks füüsiliste ketaste draiveritele valida&lt;br /&gt;
&lt;br /&gt;
 Device Drivers -&amp;gt; Multi-device support (RAID and LVM) -&amp;gt; valida kõik&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;RAID&#039;i seadistamine&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
Tarkvaralise RAID lahenduse seadistamiseks sobib kasutada tarkvara mdadm http://cgi.cse.unsw.edu.au/~neilb/SoftRaid. Põhiliselt on tegu ühe programmiga mdadm ning ühe seadistusfailiga /etc/mdadm/mdadm.conf, distributsioonides sisaldub see reeglina pakendatud kujul.&lt;br /&gt;
&lt;br /&gt;
Näite varal on kirjeldatud kuidas moodustada kahest füüsilisest kõvakettast /dev/sda ja /dev/sdb üks RAID0 blokkseade.&lt;br /&gt;
&lt;br /&gt;
 aix:~# mdadm --create /dev/md0 --level=1 --raid-devices=2 /dev/sda /dev/sdb&lt;br /&gt;
&lt;br /&gt;
ning vaadates tulemust&lt;br /&gt;
&lt;br /&gt;
 aix:~# mdadm --query /dev/md0&lt;br /&gt;
 /dev/md0: 232.89GiB raid1 2 devices, 0 spares. Use mdadm --detail for more detail.&lt;br /&gt;
&lt;br /&gt;
ja ka detailsemalt&lt;br /&gt;
&lt;br /&gt;
 aix:~# mdadm --detail /dev/md0&lt;br /&gt;
 /dev/md0:&lt;br /&gt;
        Version : 00.90.03&lt;br /&gt;
  Creation Time : Mon Dec 25 19:33:34 2006&lt;br /&gt;
     Raid Level : raid1&lt;br /&gt;
     Array Size : 244198464 (232.89 GiB 250.06 GB)&lt;br /&gt;
    Device Size : 244198464 (232.89 GiB 250.06 GB)&lt;br /&gt;
   Raid Devices : 2&lt;br /&gt;
  Total Devices : 2&lt;br /&gt;
 Preferred Minor : 0&lt;br /&gt;
    Persistence : Superblock is persistent&lt;br /&gt;
 &lt;br /&gt;
    Update Time : Mon Dec 25 19:33:34 2006&lt;br /&gt;
          State : clean, resyncing &lt;br /&gt;
  Active Devices : 2&lt;br /&gt;
 Working Devices : 2&lt;br /&gt;
  Failed Devices : 0&lt;br /&gt;
   Spare Devices : 0&lt;br /&gt;
 &lt;br /&gt;
 Rebuild Status : 0% complete&lt;br /&gt;
 &lt;br /&gt;
           UUID : 0f549edf:66839bd6:e2188e78:0f4ec762&lt;br /&gt;
         Events : 0.1aix~# mdadm --assemble &lt;br /&gt;
 &lt;br /&gt;
    Number   Major   Minor   RaidDevice State&lt;br /&gt;
       0       8        0        0      active sync   /dev/sda&lt;br /&gt;
       1       8       16        1      active sync   /dev/sdb&lt;br /&gt;
&lt;br /&gt;
Seadistusfaili /etc/mdadm/mdadm.conf sisu võiks olla selline&lt;br /&gt;
&lt;br /&gt;
 ARRAY /dev/md0 devices=/dev/sda,/dev/sdb level=raid1 num-devices=2&lt;br /&gt;
&lt;br /&gt;
Moodustatud RAID skeemi kasutuselevõtmiseks tuleb üldiselt skeem aktiviseerida, kuid skeemi moodustamisel tehakse see automaatselt&lt;br /&gt;
&lt;br /&gt;
 aix~# mdadm --assemble /dev/md0&lt;br /&gt;
 mdadm: /dev/md0 has been started with 2 drives.&lt;br /&gt;
 &lt;br /&gt;
ning edasi võib moodustatud blokkseadet /dev/md0 käsitleda nagu tavalist kõvaketast, näiteks fdisk või parted abil moodustada partitsioonid ning seejärel failisüsteemid. Samuti võib RAID seadet kasutada LVM juures füüsilise seadmena&lt;br /&gt;
&lt;br /&gt;
 aix:~# parted /dev/md0 p&lt;br /&gt;
 &lt;br /&gt;
 Disk /dev/md0: 250GB &lt;br /&gt;
 Sector size (logical/physical): 512B/512B&lt;br /&gt;
 Partition Table: msdos&lt;br /&gt;
 &lt;br /&gt;
 Number  Start  End  Size  Type  File system  Flags&lt;br /&gt;
 &lt;br /&gt;
 Information: Don&#039;t forget to update /etc/fstab, if necessary.&lt;br /&gt;
&lt;br /&gt;
RAID skeemi deaktiviseerimiseks tuleb öelda&lt;br /&gt;
&lt;br /&gt;
 aix:~# mdadm --stop -scan&lt;br /&gt;
 mdadm: stopped /dev/md0&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Arvuti käivitamine ja seiskamine&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
Arvuti käivitamisel tuleb seadistusfailis kirjeldatud kõigi RAID skeemide aktiviseerimiseks öelda&lt;br /&gt;
&lt;br /&gt;
 aix~# mdadm --assemble --scan&lt;br /&gt;
&lt;br /&gt;
Arvuti seiskamisel&lt;br /&gt;
&lt;br /&gt;
 aix~# mdadm --stop --scan&lt;br /&gt;
&lt;br /&gt;
Need käsud tuleks ära näidata startup ja stop skriptide juures.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;RAID skeemi eemaldamine&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
RAID skeemi eemdaldamiseks tuleb eemaldada mdadm.conf failist ning kävitusskriptidest vastavad read ning seejärel kõvakettad võtta muul moel kasutusele.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Monitooring&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
mdadm programmi abil saab jälgida RAID skeemi tööd ning vajadusel korraldada näiteks e-posti aadressile või syslogi teadete saatmist. Lisaks on taastestsenaariumide läbimängimiseks võimalik loogiliselt märkida RAIDi komponente katkisteks.&lt;/div&gt;</summary>
		<author><name>Triinu</name></author>
	</entry>
	<entry>
		<id>https://kuutorvaja.eenet.ee/w/index.php?title=Squid&amp;diff=2962</id>
		<title>Squid</title>
		<link rel="alternate" type="text/html" href="https://kuutorvaja.eenet.ee/w/index.php?title=Squid&amp;diff=2962"/>
		<updated>2007-02-02T10:43:14Z</updated>

		<summary type="html">&lt;p&gt;Triinu: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;Squid (in. k. kalmaar :)&lt;br /&gt;
&lt;br /&gt;
===Sissejuhatus===&lt;br /&gt;
&lt;br /&gt;
Probleem, mida järgnev jutt lahendada püüab, seisneb selles, et kas ei saaks kuidagi asja optimiseerida, kui terve klassitäis arvuteid korraga (ja tunni aja pärast jälle) püüab külastada ühte ja sama kodulehekülge (nt. www.postimees.ee&#039;d).&lt;br /&gt;
&lt;br /&gt;
Klassikaliselt on arvutiklass ühe serveri taha ära maskeeritud ja igasse arvutisse tuuakse info eemalt internetist (antud juhul www.postimees.ee&#039;st) eraldi kohale.&lt;br /&gt;
Alltoodud joonis kujutab kolme võrgukaardiga serverit, millel töötab programm squid. On näha kahte alamvõrku (192.168.1.0, 192.168.2.0), millel istuvad nn. klientarvutid.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Programmi squid roll seisneb selles, et kogu infovahetus välismaailmast klientide poole toimub läbi tema. Squid kuulab pealt klientide poolt sooritatavaid päringuid (nt. www.postimees.ee) ja lisaks sellele, et ta toob netist ära vastava materjali ning annab need üle päringu esitanud klendile, talletab ta tolle materjali teatud ajaks (mõned päevad) oma andmebaasi (selle maht on ca 100 MB). Ja kui nüüd paari minuti või tunni pärast esitab keegi sama päringu (st. soovib netist alla laadida www.postimees.ee pealehte), siis squid ei lähe sellele enam netti järele, vaid võtab materjali oma kohalikust andmebaasist ning annab kliendile.&lt;br /&gt;
&lt;br /&gt;
Selline mehhanism toimib ja praktiliselt iga kolmas-neljas päring saab vastatud kasutades kohalikku materjali. See efekt on juba märgatav.&lt;br /&gt;
&lt;br /&gt;
Siin on veel selline moment, et mitu squid serverit võivad teha omavahel koostööd.&lt;br /&gt;
&lt;br /&gt;
Üks võimalus on see, et määrata oma squidile parent (vanem) - siis on nii, et päringud, mis ei sisaldu enda kohalikus andmebaasis, saadetakse parent squidile (see asub tavaliselt teises - suuremas, paremas masinas) ning too vaatab kust saab.&lt;br /&gt;
&lt;br /&gt;
Teine võimalus on määrata oma squidile sibling (naaber) - siis on nii, et naabrid peavad efektiivselt ühte suurt andmebaasi mitme peale. Ja kui päring esitatakse ning kohalik squid ei leia oma andmebaasist vastust, siis kõigepealt külastab ta naabreid ja seejärel parent&#039;i.&lt;br /&gt;
&lt;br /&gt;
Ülalesitatud jutus kasutasin ilmestamiseks konkreetseid arve (minutid, päevad, 100 MB). Nende arvude valik, parent ja naabri valik, võib osutuda keeruliseks ja teiste administraatoritega koostööd eeldavaks ettevõtmiseks.&lt;br /&gt;
&lt;br /&gt;
Allpool on toodud ära sammud, mida kasutasin squidi installeerimisel, konfigureerimisel, käivitamisel ja seismajätmisel.&lt;br /&gt;
&lt;br /&gt;
===Installeerimine===&lt;br /&gt;
&lt;br /&gt;
Tarkvara saab aadressilt squid.nlanr.net, kus on ka palju lugemist!&lt;br /&gt;
Oluline on vaadata ka cache.eenet.ee, milline parent endale vailda (ilus oleks omanikelt luba küsida) ja cache.online.ee/cache/cacheware.old.html ideoloogilise poole pealt (autor Andres Kroonmaa) tõmbasin squid 2.0 ära.&lt;br /&gt;
&lt;br /&gt;
Lõin kasutaja (homeiga /usr/local/squid) ja grupi squid ja kõik järgnevad sammud sooritasin, olles sisse loginud selle kasutaja alt.&lt;br /&gt;
&lt;br /&gt;
Pakkisin /usr/local/squid alla lahti src-i&lt;br /&gt;
&lt;br /&gt;
 tegin ./configure --prefix=/usr/local/squid&lt;br /&gt;
&lt;br /&gt;
 make; make install&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
===Konfigureerimine===&lt;br /&gt;
&lt;br /&gt;
Ainus konf fail, millega saab ja on vaja tegeleda, on squid.conf, minul on ta selline:&lt;br /&gt;
&lt;br /&gt;
 root@masin# egrep ^[^#] squid.conf&lt;br /&gt;
&lt;br /&gt;
 http_port 3128&lt;br /&gt;
 icp_port 3130&lt;br /&gt;
 cache_peer cache.tartu.eenet.ee       parent    3128  3130 no-query&lt;br /&gt;
 cache_peer_domain cache.tartu.eenet.ee  !.ee&lt;br /&gt;
 acl QUERY urlpath_regex cgi-bin \?&lt;br /&gt;
 no_cache deny QUERY&lt;br /&gt;
 cache_mem  8 MB&lt;br /&gt;
 acl manager proto cache_object&lt;br /&gt;
 acl localhost src 127.0.0.1/255.255.255.255&lt;br /&gt;
 acl sub1 src 192.168.1.0/255.255.255.0&lt;br /&gt;
 acl sub2 src 192.168.2.0/255.255.255.0&lt;br /&gt;
 acl kopka src 193.40.xxx.xxx/255.255.255.255&lt;br /&gt;
 http_access allow manager localhost&lt;br /&gt;
 http_access allow manager kopka&lt;br /&gt;
 http_access allow  sub1&lt;br /&gt;
 http_access allow  sub2&lt;br /&gt;
 http_access allow  kopka&lt;br /&gt;
 icp_access  allow  sub1&lt;br /&gt;
 icp_access  allow  sub2&lt;br /&gt;
 icp_access  allow  kopka&lt;br /&gt;
&lt;br /&gt;
Lühidalt kokkuvõttes realiseerib see konfiguratsioon järgmist:&lt;br /&gt;
&lt;br /&gt;
- kuulatakse porte 3128 ja 3130&lt;br /&gt;
- vanemaks on cache.tartu.eenet.ee vastavate portidega, kusjuures mitte saata ICP (???) päringuid talle&lt;br /&gt;
- küsida kõike peale .ee domainide&lt;br /&gt;
- acl access list: määrab masinad ja alamvõrgud, kes meie squidi kasutada saavad ja annab neile õigused&lt;br /&gt;
- samuti selle, kust monitoringut teha saab&lt;br /&gt;
&lt;br /&gt;
acl abil saab defineerida faile, kuhu saab kirjutada näiteks sõnu, mille esinemisel veebis veeb blokeeritakse. Näiteks&lt;br /&gt;
&lt;br /&gt;
 acl porn url_regex &amp;quot;/usr/local/etc/squid/porn.block.txt&amp;quot;&lt;br /&gt;
 acl notporn url_regex &amp;quot;/usr/local/etc/squid/porn.unblock.txt&amp;quot;&lt;br /&gt;
 acl badlang url_regex &amp;quot;/usr/local/etc/squid/badlang.block.txt&amp;quot;&lt;br /&gt;
&lt;br /&gt;
ja siis vastavalt&lt;br /&gt;
&lt;br /&gt;
 http_access allow notporn all &lt;br /&gt;
 http_access deny porn all&lt;br /&gt;
 http_access deny badlang all&lt;br /&gt;
&lt;br /&gt;
Failidesse võib kirjutada järgnevalt &lt;br /&gt;
&lt;br /&gt;
 .t100.com&lt;br /&gt;
 .mp3&lt;br /&gt;
 .mpeg&lt;br /&gt;
 morpheus&lt;br /&gt;
 napster&lt;br /&gt;
 .mpg &lt;br /&gt;
&lt;br /&gt;
Nagu näha, keelata saab nii domeene, faililaiendeid, kui ka üksikuid tekstilõike sisaldavaid lehti.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
===Käivitamine ja seiskamine===&lt;br /&gt;
&lt;br /&gt;
Esimene käivitamine tuleb teha selliselt:&lt;br /&gt;
&lt;br /&gt;
 /usr/local/squid/bin/squid -z&lt;br /&gt;
&lt;br /&gt;
See loob nn. swap space, kus squid hoiab oma andmeid.&lt;br /&gt;
&lt;br /&gt;
Hiljem käivitada, seisata ja muudetud konfiguratsiooni sättida sellise scriptiga (võib muidugi ka lihtsalt käske anda).&lt;br /&gt;
&lt;br /&gt;
(Selle scripti avaldas Toomas Soome eups@ut.ee listis, loodan, et autor ei ole selle siin taasavaldamise vastu)&lt;br /&gt;
 &lt;br /&gt;
&lt;br /&gt;
 #!/bin/sh&lt;br /&gt;
 &lt;br /&gt;
 case $1 in&lt;br /&gt;
 &#039;start&#039;)&lt;br /&gt;
   echo &amp;quot;Starting Squid Cache service.&amp;quot;&lt;br /&gt;
   su - squid -c &#039;cd /opt/squid/bin;/opt/squid/bin/RunCache &amp;gt; /dev/null 2&amp;gt;&amp;amp;1 &amp;amp;&#039; &amp;gt;&lt;br /&gt;
 /dev/null 2&amp;gt;&amp;amp;1&lt;br /&gt;
 ;;&lt;br /&gt;
 &#039;stop&#039;)&lt;br /&gt;
  # Lööme igaks juhuks RunCache maha&lt;br /&gt;
  kill -9 `ps -fu squid | grep RunCache| grep -v grep | awk &#039;{print $2}&#039;`&lt;br /&gt;
  # Kas te oleksite nii lahke ja hakkaksite nüüd seisma jääma?&lt;br /&gt;
  /opt/squid/bin/squid -k shutdown&lt;br /&gt;
  sleep 30&lt;br /&gt;
  echo &amp;quot;Squid Cache stopped.&amp;quot;&lt;br /&gt;
 ;;&lt;br /&gt;
 &#039;reload&#039;)&lt;br /&gt;
  /opt/squid/bin/squid -k reconfigure&lt;br /&gt;
  echo &amp;quot;Squid Cache reloaded.&amp;quot;&lt;br /&gt;
 ;;&lt;br /&gt;
 *)&lt;br /&gt;
        echo &amp;quot;usage: $0 start|stop|reload&amp;quot;&lt;br /&gt;
 ;;&lt;br /&gt;
 esac&lt;br /&gt;
 exit 0&lt;br /&gt;
&lt;br /&gt;
squid -h näitab ära kõik võimalikud võtmed.&lt;br /&gt;
&lt;br /&gt;
Kusjuures RunCache&#039;i roll on vaadata, et kui mõni squid ära sureb, siis ta tagasi tööle panna.&lt;br /&gt;
Et log failid väga suureks ei kasvaks, oleks vaja nt. cron&#039;ist aeg-ajalt teha &#039;squid -k, rotate&#039; t või lihtsalt mõni squid, kelle pid on logs/squid.pid&#039;is, ära tappa:&lt;br /&gt;
&lt;br /&gt;
 kill -USR1 `cat /etc/squid.pid` &amp;gt;/dev/null 2&amp;gt;&amp;amp;1&lt;br /&gt;
&lt;br /&gt;
(Urmas Lett&#039;i soovitus listist eups@ut.ee)&lt;br /&gt;
&lt;br /&gt;
RunCache tõmbab automaatselt ise uue squidi üles.&lt;br /&gt;
&lt;br /&gt;
Töötava squidi puhul on pilt niisugune:&lt;br /&gt;
&lt;br /&gt;
 root@kopka /usr/local/squid/logs/ $ ps auxf | grep squid&lt;br /&gt;
 squid    19483  0.0  0.0  1112     0  ?  SW  Dec  8   0:00 (RunCache)&lt;br /&gt;
 squid    19488  0.0  0.0  2392     0  ?  SW  Dec  8   0:00  \_ (squid)&lt;br /&gt;
 squid    19489  0.1 18.6 16044  5752  ?  S   Dec  8   4:05      \_ (squid) -sY&lt;br /&gt;
 squid    19495  0.0  0.2   808    64  ?  S   Dec  8   0:00          \_ (unlinkd)&lt;br /&gt;
 squid    31796  0.0  0.6   856   208  ?  S   Dec  8   0:00          \_ (dnsserve&lt;br /&gt;
 squid    31797  0.0  0.0   852     0  ?  SW  Dec  8   0:00          \_ (dnsserve&lt;br /&gt;
 squid    31798  0.0  0.0   852     0  ?  SW  Dec  8   0:00          \_ (dnsserve&lt;br /&gt;
 squid    31799  0.0  0.0   852     0  ?  SW  Dec  8   0:00          \_ (dnsserve&lt;br /&gt;
 squid    31800  0.0  0.0   852     0  ?  SW  Dec  8   0:00          \_ (dnsserve&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
===Monitoring===&lt;br /&gt;
&lt;br /&gt;
Kaval on panna tööle ka kaasapandud cgi script squidi töö jälgimiseks (nt. selleks, et jälgida kuidas nn. hitte tuleb - see on protsent läbi squidi esitatud päringutest, mida ta oma kohalikust andmebaasist rahuldada sai). See eeldab, et samas masinas on apache või mõni muu sarnane webserver installeeritud.&lt;/div&gt;</summary>
		<author><name>Triinu</name></author>
	</entry>
	<entry>
		<id>https://kuutorvaja.eenet.ee/w/index.php?title=Stunnel&amp;diff=2961</id>
		<title>Stunnel</title>
		<link rel="alternate" type="text/html" href="https://kuutorvaja.eenet.ee/w/index.php?title=Stunnel&amp;diff=2961"/>
		<updated>2007-02-02T10:33:38Z</updated>

		<summary type="html">&lt;p&gt;Triinu: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;&#039;&#039;&#039;Eesmärk&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
Sertide genereerimine! :) ja konf&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;SSL teenuse un-ssl&#039;imine&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
 bash$ stunnel -c -d 1111 -r ip.aadress.eem.al:443&lt;/div&gt;</summary>
		<author><name>Triinu</name></author>
	</entry>
	<entry>
		<id>https://kuutorvaja.eenet.ee/w/index.php?title=Solarise_GNU_tarkvara_arhiivi_kasutamine&amp;diff=2960</id>
		<title>Solarise GNU tarkvara arhiivi kasutamine</title>
		<link rel="alternate" type="text/html" href="https://kuutorvaja.eenet.ee/w/index.php?title=Solarise_GNU_tarkvara_arhiivi_kasutamine&amp;diff=2960"/>
		<updated>2007-02-02T10:33:15Z</updated>

		<summary type="html">&lt;p&gt;Triinu: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;&#039;&#039;&#039;Tutvustus&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
Head inimesed pakendavad populaarset GNU tarkvara Solaris operatsioonisüsteemiga kasutamiseks CSW (Community , projekti veebikoht asub aadressil [[http://www.blastwave.org/ http://www.blastwave.org/]]. Toetatud on Sparc ning x86 arhitektuurid.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Kasutamine&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
Tarkvara on ettevalmistatud selliselt, et reeglina paigutatakse kõik arhiivist kopeeritud failid kataloogi /opt/csw alla ning pakettide nimed algavad CSW (Community Software) järgnevusega. CSW tarkvara haldusliides on programm pkg-get.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Tegevuste järgnevus&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
/opt/csw/bin/wget --output-document=pgp.key http://www.blastwave.org/mirrors.html&lt;br /&gt;
gpg --import pgp.key&lt;br /&gt;
vi /opt/csw/etc/pkg-get.conf&lt;/div&gt;</summary>
		<author><name>Triinu</name></author>
	</entry>
	<entry>
		<id>https://kuutorvaja.eenet.ee/w/index.php?title=Integrit&amp;diff=2959</id>
		<title>Integrit</title>
		<link rel="alternate" type="text/html" href="https://kuutorvaja.eenet.ee/w/index.php?title=Integrit&amp;diff=2959"/>
		<updated>2007-02-02T10:32:33Z</updated>

		<summary type="html">&lt;p&gt;Triinu: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;&#039;&#039;&#039;Tutvustus&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
Tarkvara [[Integrit http://integrit.sourceforge.net/]] abil saab jälgida failisüsteemis toimuvaid muutusi. Tavaliselt kasutatakse seda HIDS (Host-based Intrusion Detection System) tekitamiseks, eesmärgiga saada jälile failisüsteemi tehtud mitteautoriseeritud muudatustele, näiteks seoses süsteemi sissemurdmise käigus toimunud süsteemsete failide asendamisega.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Kasutamine&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
Integrit on populaarne tarkvara ning tavaliselt on võimalik ta operatsioonisüsteemi paketihaldusvahendi abil paigaldada.&lt;br /&gt;
&lt;br /&gt;
Tarkvara Integrit kasutab oma tööks kolme faili&lt;br /&gt;
&lt;br /&gt;
#seadistusfail&lt;br /&gt;
#süsteemi viimast seisu kajastav andmbeaas&lt;br /&gt;
#süsteemi&lt;/div&gt;</summary>
		<author><name>Triinu</name></author>
	</entry>
	<entry>
		<id>https://kuutorvaja.eenet.ee/w/index.php?title=Terminal_server&amp;diff=2958</id>
		<title>Terminal server</title>
		<link rel="alternate" type="text/html" href="https://kuutorvaja.eenet.ee/w/index.php?title=Terminal_server&amp;diff=2958"/>
		<updated>2007-02-02T10:31:27Z</updated>

		<summary type="html">&lt;p&gt;Triinu: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;Kõige esimene etapp terminalserveris peale masina installi on cvsup. Source olemas, sellel pikemalt ei peatu, siin wikis on sellekohta väga põhjalik manuaal. Seejärel teeme skripti, mis kompileerib ja paigaldab kogu süsteemi, minul siis /usr/home/tftpboot/pxe kausta &lt;br /&gt;
&lt;br /&gt;
Märkustest niipalju, et terminalserveri ip 192.168.0.253 &lt;br /&gt;
&lt;br /&gt;
 #!/bin/sh&lt;br /&gt;
 export DESTDIR=/usr/home/tftpboot/pxe&lt;br /&gt;
 mkdir -p ${DESTDIR}&lt;br /&gt;
 cd /usr/src; make world &amp;amp;&amp;amp; make kernel&lt;br /&gt;
 cd /usr/src/etc; make distribution&lt;br /&gt;
&lt;br /&gt;
Peale skripti töö lõppemist kopeerime /boot/kernel kausta /usr/home/tftpboot/pxe/boot alla ja faili /boot/pxeboot /usr/home/tftpboot/pxe kausta, seejärel installime isc-dhcp serveri ja teeme konfi, minu oma selline &lt;br /&gt;
&lt;br /&gt;
 ddns-update-style none;&lt;br /&gt;
 &lt;br /&gt;
 subnet 192.168.0.0 netmask 255.255.255.0 {&lt;br /&gt;
 range 192.168.0.50 192.168.0.100;&lt;br /&gt;
 default-lease-time 144000;&lt;br /&gt;
 max-lease-time 192000;&lt;br /&gt;
 &lt;br /&gt;
 filename &amp;quot;pxeboot&amp;quot;;&lt;br /&gt;
 option root-path &amp;quot;192.168.0.253:/usr/home/tftpboot/pxe&amp;quot;;&lt;br /&gt;
&lt;br /&gt;
 option subnet-mask 255.255.255.0;&lt;br /&gt;
 option broadcast-address 192.168.0.255;&lt;br /&gt;
 option routers 192.168.0.253;&lt;br /&gt;
 option domain-name-servers 193.40.5.129;&lt;br /&gt;
&lt;br /&gt;
 }&lt;br /&gt;
&lt;br /&gt;
Käivitame tftp, selleks /etc/inetd.conf’is kommenteerime rea ja muudame tftp kausta järgmiselt &lt;br /&gt;
 tftp    dgram   udp     wait    root    /usr/libexec/tftpd      tftpd -s /usr/home/tftpboot/pxe&lt;br /&gt;
&lt;br /&gt;
Seejärel rc.conf’i kirjutame lisaks read inet’i ja nfs’i startimiseks boodil &lt;br /&gt;
 inetd_enable=&amp;quot;YES&amp;quot;&lt;br /&gt;
 nfs_server_enable=&amp;quot;YES&amp;quot;&lt;br /&gt;
&lt;br /&gt;
Loome faili /etc/export read nfs’iga pxe juurika ja usr’i käivitamiseks usr’it vajame hiljem selleks, et sealt gdm startida &lt;br /&gt;
 /usr/home -maproot=0 -alldirs&lt;br /&gt;
 /usr &lt;br /&gt;
&lt;br /&gt;
Liigume /usr/home/tftpboot/pxe/etc, seal avame fail fstab, kirjutame &lt;br /&gt;
 192.168.0.253:/usr      /usr            nfs     rw              2       2&lt;br /&gt;
&lt;br /&gt;
Installime x serveri ja fluxboxi ning gdm’i lähemat seletust ei vaja :) &lt;br /&gt;
&lt;br /&gt;
 loome fail /usr/X11R6/etc/dm/Sessions/Fluxbox.desktop &lt;br /&gt;
 [Desktop Entry]&lt;br /&gt;
 Encoding=UTF-8&lt;br /&gt;
 Name=Fluxbox&lt;br /&gt;
 Exec=/usr/X11R6/bin/fluxbox&lt;br /&gt;
 Icon=&lt;br /&gt;
 Type=Application&lt;br /&gt;
&lt;br /&gt;
Seadistame paika remote logimise gdm’is seadistusfailis /usr/X11R6/etc/gdm/gdm.conf, muudame [xdmcp] juures Enable=true &lt;br /&gt;
&lt;br /&gt;
Süsteem peaegu valmis, veel rc.conf’i &lt;br /&gt;
 gdm_enable=“YES” &lt;br /&gt;
&lt;br /&gt;
Selleks, et terminal peale bootimist automaatselt stardiks gdm’i ja siis ühendaks end server xserveriga, paigutada /usr/local/etc/rc.d fail 00.gdm.sh, &lt;br /&gt;
sinna kirjutame &lt;br /&gt;
 #!/bin/sh&lt;br /&gt;
 /usr/X11R6/bin/X -broadcast&lt;br /&gt;
&lt;br /&gt;
Siis reboot ja naudime enda serverit ja klienti :) &lt;br /&gt;
&lt;br /&gt;
Juhul, kui eesti arvutikaubandusvõrk ei suuda meid varustada vajalike pxe kividega kaartidega, ei sobi pxeboot, vaid tuleb kompileerida kernel käsitsi ja paigutada /usr/home/tftpboot/pxe kausta ning etherboot’i veebimootoriga saab genereerida flopid &lt;br /&gt;
&lt;br /&gt;
küsimused jms joel.jans@ut.ee&lt;/div&gt;</summary>
		<author><name>Triinu</name></author>
	</entry>
	<entry>
		<id>https://kuutorvaja.eenet.ee/w/index.php?title=Postfix&amp;diff=2957</id>
		<title>Postfix</title>
		<link rel="alternate" type="text/html" href="https://kuutorvaja.eenet.ee/w/index.php?title=Postfix&amp;diff=2957"/>
		<updated>2007-02-02T10:23:16Z</updated>

		<summary type="html">&lt;p&gt;Triinu: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;&#039;&#039;&#039;Serveritarkvara paigaldus&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
amavisd-new&lt;br /&gt;
&lt;br /&gt;
clamav&lt;br /&gt;
&lt;br /&gt;
Kogu süsteem toimib nii, et postfix annab kirja edasi amavisd&#039;le, mis kontrollib seda kasutades amavisd&#039;d ja smapsassassinit&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Seadistus postfix&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
main.cf&lt;br /&gt;
&lt;br /&gt;
 content_filter = amavis:[127.0.0.1]:10024&lt;br /&gt;
 &lt;br /&gt;
 smtpd_sender_restrictions =&lt;br /&gt;
        reject_unknown_sender_domain,&lt;br /&gt;
        permit_mynetworks,&lt;br /&gt;
        reject_rbl_client bl.spamcop.net,&lt;br /&gt;
        reject_rbl_client relays.ordb.org,&lt;br /&gt;
        reject_rbl_client sbl-xbl.spamhaus.org&lt;br /&gt;
&lt;br /&gt;
master.cf&lt;br /&gt;
&lt;br /&gt;
 localhost:10025 inet  n  -      n       -       -       smtpd&lt;br /&gt;
    -o content_filter=&lt;br /&gt;
    -o local_recipient_maps=&lt;br /&gt;
    -o relay_recipient_maps=&lt;br /&gt;
    -o myhostname=localhost.eenet.ee&lt;br /&gt;
    -o smtpd_helo_restrictions=&lt;br /&gt;
    -o smtpd_client_restrictions=&lt;br /&gt;
    -o smtpd_sender_restrictions=&lt;br /&gt;
    -o smtpd_recipient_restrictions=permit_mynetworks,reject&lt;br /&gt;
    -o mynetworks=127.0.0.0/8&lt;br /&gt;
 #&lt;br /&gt;
 amavis    unix  -       -       n       -       4       smtp&lt;br /&gt;
    -o smtp_data_done_timeout=1200&lt;br /&gt;
    -o smtp_send_xforward_command=yes&lt;br /&gt;
    -o disable_dns_lookups=yes&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;konfig amavisd&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
 use strict;&lt;br /&gt;
 &lt;br /&gt;
 $max_servers = 4;            # number of pre-forked children (2..15 is common)&lt;br /&gt;
 $daemon_user  = &#039;vscan&#039;;     # (no default;  customary: vscan or amavis)&lt;br /&gt;
 $daemon_group = &#039;vscan&#039;;     # (no default;  customary: vscan or amavis) &lt;br /&gt;
 &lt;br /&gt;
 $mydomain = &#039;eenet.ee&#039;;   # a convenient default for other settings &lt;br /&gt;
 &lt;br /&gt;
 $MYHOME   = &#039;/var/amavis&#039;;   # a convenient default for other settings&lt;br /&gt;
 $TEMPBASE = &amp;quot;$MYHOME/tmp&amp;quot;;   # working directory, needs to be created manually&lt;br /&gt;
 $ENV{TMPDIR} = $TEMPBASE;    # environment variable TMPDIR&lt;br /&gt;
 $QUARANTINEDIR = &#039;/var/virusmails&#039;;&lt;br /&gt;
 @local_domains_maps = ( [&amp;quot;.$mydomain&amp;quot;] ); &lt;br /&gt;
 &lt;br /&gt;
 $log_level = 2;              # verbosity 0..5&lt;br /&gt;
 $log_recip_templ = undef;    # disable by-recipient level-0 log entries&lt;br /&gt;
 $DO_SYSLOG = 1;              # log via syslogd (preferred)&lt;br /&gt;
 $SYSLOG_LEVEL = &#039;mail.debug&#039;; &lt;br /&gt;
 &lt;br /&gt;
 $enable_db = 1;              # enable use of BerkeleyDB/libdb (SNMP and nanny)&lt;br /&gt;
 $enable_global_cache = 1;    # enable use of libdb-based cache if $enable_db=1 &lt;br /&gt;
 &lt;br /&gt;
 $inet_socket_port = 10024;   # listen on this local TCP port(s) (see $protocol)&lt;br /&gt;
 &lt;br /&gt;
 $sa_tag_level_deflt  = undef;  # add spam info headers if at, or above that level&lt;br /&gt;
 $sa_tag2_level_deflt = 5.0; # add &#039;spam detected&#039; headers at that level&lt;br /&gt;
 $sa_kill_level_deflt = 7.0; # triggers spam evasive actions&lt;br /&gt;
 $sa_dsn_cutoff_level = 9;    # spam level beyond which a DSN is not sent&lt;br /&gt;
 $sa_quarantine_cutoff_level = 20;  # spam level beyond which quarantine is off&lt;br /&gt;
 $sa_mail_body_size_limit = 200*1024; # don&#039;t waste time on SA if mail is larger&lt;br /&gt;
 $sa_local_tests_only = 0;    # only tests which do not require internet access?&lt;br /&gt;
 $sa_auto_whitelist = 1;      # turn on AWL in SA 2.63 or older (irrelevant&lt;br /&gt;
 $virus_admin               = undef;  # notifications recip.&lt;br /&gt;
 &lt;br /&gt;
 $mailfrom_notify_admin     = &amp;quot;virusalert\@$mydomain&amp;quot;;  # notifications sender&lt;br /&gt;
 $mailfrom_notify_recip     = &amp;quot;virusalert\@$mydomain&amp;quot;;  # notifications sender&lt;br /&gt;
 $mailfrom_notify_spamadmin = &amp;quot;spam.police\@$mydomain&amp;quot;; # notifications sender&lt;br /&gt;
 $mailfrom_to_quarantine = &#039;&#039;; # null return path; uses original sender if undef&lt;br /&gt;
 &lt;br /&gt;
 @addr_extension_virus_maps      = (&#039;virus&#039;);&lt;br /&gt;
 @addr_extension_spam_maps       = (&#039;spam&#039;);&lt;br /&gt;
 @addr_extension_banned_maps     = (&#039;banned&#039;);&lt;br /&gt;
 @addr_extension_bad_header_maps = (&#039;badh&#039;);&lt;br /&gt;
 &lt;br /&gt;
 $path = &#039;/usr/local/sbin:/usr/local/bin:/usr/sbin:/sbin:/usr/bin:/bin&#039;;&lt;br /&gt;
 &lt;br /&gt;
 $MAXLEVELS = 14;&lt;br /&gt;
 $MAXFILES = 1500;&lt;br /&gt;
 $MIN_EXPANSION_QUOTA =      100*1024;  # bytes  (default undef, not enforced)&lt;br /&gt;
 $MAX_EXPANSION_QUOTA = 300*1024*1024;  # bytes  (default undef, not enforced)&lt;br /&gt;
 &lt;br /&gt;
 $sa_spam_subject_tag = &#039;***SPAM*** &#039;;&lt;br /&gt;
 $defang_virus  = 1;  # MIME-wrap passed infected mail&lt;br /&gt;
 $defang_banned = 1;  # MIME-wrap passed mail containing banned name&lt;br /&gt;
  &lt;br /&gt;
 $final_virus_destiny      = D_DISCARD;&lt;br /&gt;
 $final_banned_destiny     = D_DISCARD;&lt;br /&gt;
 $final_spam_destiny       = D_DISCARD;&lt;br /&gt;
 $final_bad_header_destiny = D_PASS;&lt;br /&gt;
 &lt;br /&gt;
  [qr/^/ =&amp;gt; 1],  # true for everything else&lt;br /&gt;
 ));&lt;br /&gt;
 &lt;br /&gt;
 @keep_decoded_original_maps = (new_RE(&lt;br /&gt;
  qr&#039;^MAIL-UNDECIPHERABLE$&#039;, # recheck full mail if it contains undecipherables&lt;br /&gt;
  qr&#039;^(ASCII(?! cpio)|text|uuencoded|xxencoded|binhex)&#039;i,&lt;br /&gt;
 ));&lt;br /&gt;
 &lt;br /&gt;
 $banned_filename_re = new_RE(&lt;br /&gt;
 &lt;br /&gt;
  # block certain double extensions anywhere in the base name&lt;br /&gt;
  qr&#039;\.[^./]*[A-Za-z][^./]*\.(exe|vbs|pif|scr|bat|cmd|com|cpl|dll)\.?$&#039;i,&lt;br /&gt;
 &lt;br /&gt;
  qr&#039;^application/x-msdownload$&#039;i,                  # block these MIME types&lt;br /&gt;
  qr&#039;^application/x-msdos-program$&#039;i,&lt;br /&gt;
  qr&#039;^application/hta$&#039;i,&lt;br /&gt;
 &lt;br /&gt;
  [ qr&#039;^\.(rpm|cpio|tar)$&#039;       =&amp;gt; 0 ],  # allow any in Unix-type archives&lt;br /&gt;
  qr&#039;.\.(exe|vbs|pif|scr|bat|cmd|com|cpl)$&#039;i, # banned extension - basic&lt;br /&gt;
  qr&#039;^\.(exe-ms)$&#039;,                       # banned file(1) types&lt;br /&gt;
 );&lt;br /&gt;
 &lt;br /&gt;
 @score_sender_maps = ({ # a by-recipient hash lookup table,&lt;br /&gt;
                         # results from all matching recipient tables are summed&lt;br /&gt;
  &#039;.&#039; =&amp;gt; [  # the _first_ matching sender determines the score boost&lt;br /&gt;
 &lt;br /&gt;
   new_RE(  # regexp-type lookup table, just happens to be all soft-blacklist&lt;br /&gt;
    [qr&#039;^(bulkmail|offers|cheapbenefits|earnmoney|foryou)@&#039;i         =&amp;gt; 5.0],&lt;br /&gt;
    [qr&#039;^(greatcasino|investments|lose_weight_today|market\.alert)@&#039;i=&amp;gt; 5.0],&lt;br /&gt;
    [qr&#039;^(money2you|MyGreenCard|new\.tld\.registry|opt-out|opt-in)@&#039;i=&amp;gt; 5.0],&lt;br /&gt;
    [qr&#039;^(optin|saveonlsmoking2002k|specialoffer|specialoffers)@&#039;i   =&amp;gt; 5.0],&lt;br /&gt;
    [qr&#039;^(stockalert|stopsnoring|wantsome|workathome|yesitsfree)@&#039;i  =&amp;gt; 5.0],&lt;br /&gt;
    [qr&#039;^(your_friend|greatoffers)@&#039;i                                =&amp;gt; 5.0],&lt;br /&gt;
    [qr&#039;^(inkjetplanet|marketopt|MakeMoney)\d*@&#039;i                    =&amp;gt; 5.0],&lt;br /&gt;
   ),&lt;br /&gt;
 &lt;br /&gt;
   { # a hash-type lookup table (associative array)&lt;br /&gt;
     &#039;pac@c-s.fr&#039;                             =&amp;gt; -3.0,&lt;br /&gt;
     &#039;nobody@cert.org&#039;                        =&amp;gt; -3.0,&lt;br /&gt;
     &#039;cert-advisory@us-cert.gov&#039;              =&amp;gt; -3.0,&lt;br /&gt;
     &#039;owner-alert@iss.net&#039;                    =&amp;gt; -3.0,&lt;br /&gt;
     &#039;slashdot@slashdot.org&#039;                  =&amp;gt; -3.0,&lt;br /&gt;
     &#039;bugtraq@securityfocus.com&#039;              =&amp;gt; -3.0,&lt;br /&gt;
     &#039;ntbugtraq@listserv.ntbugtraq.com&#039;       =&amp;gt; -3.0,&lt;br /&gt;
     &#039;security-alerts@linuxsecurity.com&#039;      =&amp;gt; -3.0,&lt;br /&gt;
     &#039;mailman-announce-admin@python.org&#039;      =&amp;gt; -3.0,&lt;br /&gt;
     &#039;amavis-user-admin@lists.sourceforge.net&#039;=&amp;gt; -3.0,&lt;br /&gt;
     &#039;notification-return@lists.sophos.com&#039;   =&amp;gt; -3.0,&lt;br /&gt;
     &#039;owner-postfix-users@postfix.org&#039;        =&amp;gt; -3.0,&lt;br /&gt;
     &#039;owner-postfix-announce@postfix.org&#039;     =&amp;gt; -3.0,&lt;br /&gt;
     &#039;owner-sendmail-announce@lists.sendmail.org&#039;   =&amp;gt; -3.0,&lt;br /&gt;
     &#039;sendmail-announce-request@lists.sendmail.org&#039; =&amp;gt; -3.0,&lt;br /&gt;
     &#039;donotreply@sendmail.org&#039;                =&amp;gt; -3.0,&lt;br /&gt;
     &#039;ca+envelope@sendmail.org&#039;               =&amp;gt; -3.0,&lt;br /&gt;
     &#039;noreply@freshmeat.net&#039;                  =&amp;gt; -3.0,&lt;br /&gt;
     &#039;owner-technews@postel.acm.org&#039;          =&amp;gt; -3.0,&lt;br /&gt;
     &#039;ietf-123-owner@loki.ietf.org&#039;           =&amp;gt; -3.0,&lt;br /&gt;
     &#039;cvs-commits-list-admin@gnome.org&#039;       =&amp;gt; -3.0,&lt;br /&gt;
     &#039;rt-users-admin@lists.fsck.com&#039;          =&amp;gt; -3.0,&lt;br /&gt;
     &#039;clp-request@comp.nus.edu.sg&#039;            =&amp;gt; -3.0,&lt;br /&gt;
     &#039;surveys-errors@lists.nua.ie&#039;            =&amp;gt; -3.0,&lt;br /&gt;
     &#039;emailnews@genomeweb.com&#039;                =&amp;gt; -5.0,&lt;br /&gt;
     &#039;yahoo-dev-null@yahoo-inc.com&#039;           =&amp;gt; -3.0,&lt;br /&gt;
     &#039;returns.groups.yahoo.com&#039;               =&amp;gt; -3.0,&lt;br /&gt;
     &#039;clusternews@linuxnetworx.com&#039;           =&amp;gt; -3.0,&lt;br /&gt;
     lc(&#039;lvs-users-admin@LinuxVirtualServer.org&#039;)    =&amp;gt; -3.0,&lt;br /&gt;
     lc(&#039;owner-textbreakingnews@CNNIMAIL12.CNN.COM&#039;) =&amp;gt; -5.0,&lt;br /&gt;
 &lt;br /&gt;
     # soft-blacklisting (positive score)&lt;br /&gt;
     &#039;sender@example.net&#039;                     =&amp;gt;  3.0,&lt;br /&gt;
     &#039;.example.net&#039;                           =&amp;gt;  1.0,&lt;br /&gt;
   },&lt;br /&gt;
  ],  # end of site-wide tables&lt;br /&gt;
 });&lt;br /&gt;
 &lt;br /&gt;
 @decoders = (&lt;br /&gt;
  [&#039;mail&#039;, \&amp;amp;do_mime_decode],&lt;br /&gt;
  [&#039;asc&#039;,  \&amp;amp;do_ascii],&lt;br /&gt;
  [&#039;uue&#039;,  \&amp;amp;do_ascii],&lt;br /&gt;
  [&#039;hqx&#039;,  \&amp;amp;do_ascii],&lt;br /&gt;
  [&#039;ync&#039;,  \&amp;amp;do_ascii],&lt;br /&gt;
  [&#039;F&#039;,    \&amp;amp;do_uncompress, [&#039;unfreeze&#039;,&#039;freeze -d&#039;,&#039;melt&#039;,&#039;fcat&#039;] ],&lt;br /&gt;
  [&#039;Z&#039;,    \&amp;amp;do_uncompress, [&#039;uncompress&#039;,&#039;gzip -d&#039;,&#039;zcat&#039;] ],&lt;br /&gt;
  [&#039;gz&#039;,   \&amp;amp;do_gunzip],&lt;br /&gt;
  [&#039;gz&#039;,   \&amp;amp;do_uncompress,  &#039;gzip -d&#039;],&lt;br /&gt;
  [&#039;bz2&#039;,  \&amp;amp;do_uncompress,  &#039;bzip2 -d&#039;],&lt;br /&gt;
  [&#039;lzo&#039;,  \&amp;amp;do_uncompress,  &#039;lzop -d&#039;],&lt;br /&gt;
  [&#039;rpm&#039;,  \&amp;amp;do_uncompress, [&#039;rpm2cpio.pl&#039;,&#039;rpm2cpio&#039;] ],&lt;br /&gt;
  [&#039;cpio&#039;, \&amp;amp;do_pax_cpio,   [&#039;pax&#039;,&#039;gcpio&#039;,&#039;cpio&#039;] ],&lt;br /&gt;
  [&#039;tar&#039;,  \&amp;amp;do_pax_cpio,   [&#039;pax&#039;,&#039;gcpio&#039;,&#039;cpio&#039;] ],&lt;br /&gt;
  [&#039;tar&#039;,  \&amp;amp;do_tar],&lt;br /&gt;
  [&#039;deb&#039;,  \&amp;amp;do_ar,          &#039;ar&#039;],&lt;br /&gt;
  [&#039;zip&#039;,  \&amp;amp;do_unzip],&lt;br /&gt;
  [&#039;rar&#039;,  \&amp;amp;do_unrar,      [&#039;rar&#039;,&#039;unrar&#039;] ],&lt;br /&gt;
  [&#039;arj&#039;,  \&amp;amp;do_unarj,      [&#039;arj&#039;,&#039;unarj&#039;] ],&lt;br /&gt;
  [&#039;arc&#039;,  \&amp;amp;do_arc,        [&#039;nomarch&#039;,&#039;arc&#039;] ],&lt;br /&gt;
  [&#039;zoo&#039;,  \&amp;amp;do_zoo,         &#039;zoo&#039;],&lt;br /&gt;
  [&#039;lha&#039;,  \&amp;amp;do_lha,         &#039;lha&#039;],&lt;br /&gt;
  [&#039;cab&#039;,  \&amp;amp;do_cabextract,  &#039;cabextract&#039;],&lt;br /&gt;
  [&#039;tnef&#039;, \&amp;amp;do_tnef],&lt;br /&gt;
  [&#039;exe&#039;,  \&amp;amp;do_executable, [&#039;rar&#039;,&#039;unrar&#039;], &#039;lha&#039;, [&#039;arj&#039;,&#039;unarj&#039;] ],&lt;br /&gt;
 );&lt;br /&gt;
 &lt;br /&gt;
 @av_scanners = (&lt;br /&gt;
 &lt;br /&gt;
 ### http://www.clamav.net/&lt;br /&gt;
 [&#039;ClamAV-clamd&#039;,&lt;br /&gt;
   \&amp;amp;ask_daemon, [&amp;quot;CONTSCAN {}\n&amp;quot;, &amp;quot;/var/run/clamav/clamd&amp;quot;],&lt;br /&gt;
   qr/\bOK$/, qr/\bFOUND$/,&lt;br /&gt;
   qr/^.*?: (?!Infected Archive)(.*) FOUND$/ ],&lt;br /&gt;
  &lt;br /&gt;
 );&lt;br /&gt;
 &lt;br /&gt;
 @av_scanners_backup = (&lt;br /&gt;
 );&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Automaatne start&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
 amavisd_enable=&amp;quot;YES&amp;quot;&lt;br /&gt;
 clamav_clamd_enable=&amp;quot;YES&amp;quot;&lt;br /&gt;
 clamav_freshclam_enable=&amp;quot;YES&amp;quot;&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Spamitõrje uuendus&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
 sa-update -D&lt;br /&gt;
&lt;br /&gt;
 spamassassin --lint &amp;amp;&amp;amp; /usr/local/etc/rc.d/spamd.sh.sample restart&lt;br /&gt;
--lint kontrollib ega reeglites kala pole&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Kontroll töötamisel&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
Heidame pilgu maillog faili, kõigi kirjadekohta peaks tekkima rida&lt;/div&gt;</summary>
		<author><name>Triinu</name></author>
	</entry>
	<entry>
		<id>https://kuutorvaja.eenet.ee/w/index.php?title=Pptpvpn&amp;diff=2956</id>
		<title>Pptpvpn</title>
		<link rel="alternate" type="text/html" href="https://kuutorvaja.eenet.ee/w/index.php?title=Pptpvpn&amp;diff=2956"/>
		<updated>2007-02-02T10:21:14Z</updated>

		<summary type="html">&lt;p&gt;Triinu: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;pptp vpn server mpd&#039;ga &lt;br /&gt;
&lt;br /&gt;
MPD on multi-link PPP teenus FreeBSD&#039;le, mis kasutab netgraph&#039;i ruutimaks pakette otse kernelini. Toetab suurt hulka erinevaid PPP protokolle, näiteks&lt;br /&gt;
&lt;br /&gt;
    * Multi-link PPP&lt;br /&gt;
    * PAP, CHAP, and MS-CHAP authentication&lt;br /&gt;
    * PPP compression and encryption&lt;br /&gt;
    * Point-to-Point Tunnelling Protocol (PPTP)&lt;br /&gt;
    * PPP over Ethernet (PPPoE)&lt;br /&gt;
&lt;br /&gt;
Tarkvara veebileht asub http://www.dellroad.org/mpd/index&lt;br /&gt;
&lt;br /&gt;
Käesolevas palas vaatame, kuidas luua sissehelistamiseks vpn serverit windows klientidele. Selline lahendus sobib näiteks olukordades, kus vaja kiirelt ja krüpteeritud kanali kaudu pääseda asutuse sisevõrku.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Install&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
VPN sissehelistamisserveri loomiseks tuleb paigaldada port mpd&lt;br /&gt;
&lt;br /&gt;
 cd /usr/ports/net/mpd &amp;amp;&amp;amp; make install clean&lt;br /&gt;
&lt;br /&gt;
Seejärel kataloogi /usr/local/etc/mpd failid&lt;br /&gt;
&lt;br /&gt;
mpd.conf&lt;br /&gt;
 default:&lt;br /&gt;
 	load kasutaja &lt;br /&gt;
 &lt;br /&gt;
 kasutaja:&lt;br /&gt;
 	new -i ng13 pptp13 pptp13&lt;br /&gt;
 	set ipcp ranges 192.168.69.1/32 192.168.69.15/32&lt;br /&gt;
 	load pptp&lt;br /&gt;
 &lt;br /&gt;
 pptp:&lt;br /&gt;
 	set iface disable on-demand&lt;br /&gt;
 	set iface enable proxy-arp&lt;br /&gt;
 	set bundle disable multilink&lt;br /&gt;
 	set link yes acfcomp protocomp&lt;br /&gt;
 	set link no pap chap&lt;br /&gt;
 	set link enable chap&lt;br /&gt;
 	set link keep-alive 60 180&lt;br /&gt;
 	set ipcp yes vjcomp&lt;br /&gt;
 	set ipcp dns 194.126.115.18&lt;br /&gt;
 	set bundle enable compression&lt;br /&gt;
 	set link mtu 1460&lt;br /&gt;
 	set ccp yes mppc&lt;br /&gt;
 	set ccp yes mpp-e40&lt;br /&gt;
 	set ccp yes mpp-e128&lt;br /&gt;
 	set ccp yes mpp-stateless&lt;br /&gt;
 	set bundle yes crypt-reqd&lt;br /&gt;
&lt;br /&gt;
mpd.links&lt;br /&gt;
&lt;br /&gt;
 pptp13:&lt;br /&gt;
 set link type pptp&lt;br /&gt;
 set pptp self sinu.v2limine.ip&lt;br /&gt;
 set pptp enable incoming&lt;br /&gt;
 set pptp disable originate &lt;br /&gt;
&lt;br /&gt;
mpd.secret&lt;br /&gt;
&lt;br /&gt;
 kasutaja &amp;quot;parool&amp;quot; 192.168.xx.xx(x-ide asemel pane oma endpoint ehk ip, mis saad sissehelistamisel)&lt;br /&gt;
&lt;br /&gt;
Tähelepanelik tasub olla tab&#039;idega.&lt;br /&gt;
&lt;br /&gt;
Et ühendada end pptp vpn serveri külge, on netis olemas üsna hea eestikeelne õpetus http://kriku.gameland.ee/vpn/&lt;br /&gt;
&lt;br /&gt;
Muuhulgas saab ka käsurealt luua ühenduse pptp serveriga. Pole küll ise seda tööle saanud, kuid klientmasina mpd konf oleks järgmine&lt;br /&gt;
&lt;br /&gt;
 default:&lt;br /&gt;
 	load work&lt;br /&gt;
 &lt;br /&gt;
 work:&lt;br /&gt;
 	new -i ng1 ms-pptp work&lt;br /&gt;
 	set log +pptp +pptp2 +pptp3 +lcp +auth&lt;br /&gt;
 	#set ipcp ranges 192.168.3.9/32 192.168.3.10/32&lt;br /&gt;
 	set ipcp ranges 0.0.0.0/0 0.0.0.0/0&lt;br /&gt;
 	set ipcp yes vjcomp&lt;br /&gt;
 	set ipcp dns 194.126.115.18&lt;br /&gt;
 	set ipcp dns primar 194.126.101.34&lt;br /&gt;
 	set ipcp enable req-pri-dns req-sec-dns&lt;br /&gt;
 	set link disable chap pap&lt;br /&gt;
 	set link accept chap&lt;br /&gt;
 	set link yes acfcomp protocomp&lt;br /&gt;
 	set iface idle 0&lt;br /&gt;
 	set bundle enable multilink&lt;br /&gt;
 	set bundle yes crypt-reqd&lt;br /&gt;
 	set bundle enable compression&lt;br /&gt;
 	set link enable no-orig-auth&lt;br /&gt;
 	set link keep-alive 60 600&lt;br /&gt;
 	set ccp yes mppc&lt;br /&gt;
 	set ccp enable mpp-compress&lt;br /&gt;
 	set ccp yes mpp-e40&lt;br /&gt;
 	set ccp yes mpp-e56&lt;br /&gt;
 	set ccp yes mpp-e128&lt;br /&gt;
 	set ccp yes mpp-stateless&lt;br /&gt;
 	#set iface proxy-arp&lt;br /&gt;
 	set iface route 192.168.1.0/24&lt;br /&gt;
 	set bundle authname &amp;quot;kasutaja&amp;quot;&lt;br /&gt;
 	set bundle password &amp;quot;parool&amp;quot;&lt;br /&gt;
 	set iface disable on-demand&lt;br /&gt;
 	set link max-redial 9&lt;br /&gt;
 	set iface mtu 1452&lt;br /&gt;
 	#set ccp no mpp-compress&lt;br /&gt;
 	open iface&lt;br /&gt;
&lt;br /&gt;
NB! jälgida tabulatsiooni. Paljudel juhtudel võib olla see probleemiks miks asi ei toimi.&lt;/div&gt;</summary>
		<author><name>Triinu</name></author>
	</entry>
	<entry>
		<id>https://kuutorvaja.eenet.ee/w/index.php?title=Isc-dhcpd_server&amp;diff=2955</id>
		<title>Isc-dhcpd server</title>
		<link rel="alternate" type="text/html" href="https://kuutorvaja.eenet.ee/w/index.php?title=Isc-dhcpd_server&amp;diff=2955"/>
		<updated>2007-02-02T10:18:58Z</updated>

		<summary type="html">&lt;p&gt;Triinu: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;&#039;&#039;&#039;isc-dhcpd&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
Tarkvara arendatav ISC (Internet System Consortsium) poolt.&lt;br /&gt;
&lt;br /&gt;
DHCP (Dynamic Host Configuration Protocol) teenust kasutavad arvutid oma võrguparameetrite automaatseks seadistamiseks.&lt;br /&gt;
&lt;br /&gt;
Kokku kujutab see endast kolme tarkvara&lt;br /&gt;
&lt;br /&gt;
    * A DHCP server&lt;br /&gt;
    * A DHCP client&lt;br /&gt;
    * A DHCP relay agent&lt;br /&gt;
&lt;br /&gt;
Kõige levinuim dhcp.conf&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
 ddns-update-style none;&lt;br /&gt;
 &lt;br /&gt;
 subnet 192.168.0.0 netmask 255.255.255.0 {&lt;br /&gt;
 range 192.168.0.50 192.168.0.100;&lt;br /&gt;
 default-lease-time 144000;&lt;br /&gt;
 max-lease-time 192000;&lt;br /&gt;
 option subnet-mask 255.255.255.0;&lt;br /&gt;
 option broadcast-address 192.168.0.255;&lt;br /&gt;
 option routers 192.168.0.1;&lt;br /&gt;
 option domain-name-servers 194.126.97.30;&lt;br /&gt;
 }&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
mac järgi dhcp jagamine&lt;br /&gt;
&lt;br /&gt;
 ddns-update-style interim;&lt;br /&gt;
 ignore client-updates;&lt;br /&gt;
 &lt;br /&gt;
 subnet 192.168.3.0 netmask 255.255.255.0 { &lt;br /&gt;
        option routers                  192.168.3.3;&lt;br /&gt;
        option subnet-mask              255.255.255.0;&lt;br /&gt;
        option domain-name-servers      195.250.187.46, 194.126.97.30;&lt;br /&gt;
        option ntp-servers              192.168.3.3;&lt;br /&gt;
        deny unknown-clients;&lt;br /&gt;
        default-lease-time 21600;&lt;br /&gt;
        max-lease-time 43200;&lt;br /&gt;
 &lt;br /&gt;
 #Joel Jans&lt;br /&gt;
 host JJ { hardware ethernet 00:C0:26:7F:B0:1C; fixed-address 192.168.3.10; }&lt;br /&gt;
 }&lt;br /&gt;
 &lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
 ddns-update-style none;&lt;br /&gt;
 &lt;br /&gt;
 default-lease-time 86400;               # 1 Day&lt;br /&gt;
 max-lease-time 172800;                  # 2 Days&lt;br /&gt;
 &lt;br /&gt;
 option ntp-servers timehost.ut.ee;&lt;br /&gt;
 #option netbios-name-servers 193.40.5.125;&lt;br /&gt;
 option netbios-node-type 8;&lt;br /&gt;
 authoritative;&lt;br /&gt;
 &lt;br /&gt;
 &lt;br /&gt;
 shared-network net {&lt;br /&gt;
 &lt;br /&gt;
         subnet 192.168.0.0 netmask 255.255.255.0 {&lt;br /&gt;
                option subnet-mask 255.255.255.0;&lt;br /&gt;
                option routers 192.168.0.1;&lt;br /&gt;
                option domain-name-servers 194.126.115.18, 194.126.101.34;&lt;br /&gt;
                pool {&lt;br /&gt;
                        range 192.168.0.100 192.168.0.254;&lt;br /&gt;
                }&lt;br /&gt;
        }&lt;br /&gt;
 &lt;br /&gt;
        subnet 192.168.1.0 netmask 255.255.255.0 {&lt;br /&gt;
                option subnet-mask 255.255.255.0;&lt;br /&gt;
                option routers 192.168.1.1;&lt;br /&gt;
                option domain-name-servers 193.40.5.39, 193.40.5.76;&lt;br /&gt;
                include &amp;quot;/usr/local/etc/isc-dhcp_192.168.1&amp;quot;;&lt;br /&gt;
        }&lt;br /&gt;
 }&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
ja isc-dhcp_192.168.1&lt;br /&gt;
&lt;br /&gt;
 host tundmatu1 {hardware ethernet 00:30:1b:34:9f:52; fixed-address  192.168.1.23;}&lt;br /&gt;
 host tundmatu2 {hardware ethernet 00:02:3f:b7:b5:b1; fixed-address  192.168.1.24;}&lt;br /&gt;
 host tundmatu3 {hardware ethernet 00:04:61:4e:25:36; fixed-address  192.168.1.25;}&lt;br /&gt;
 host tundmatu4 {hardware ethernet 00:50:8d:51:fc:31; fixed-address  192.168.1.26;}&lt;/div&gt;</summary>
		<author><name>Triinu</name></author>
	</entry>
	<entry>
		<id>https://kuutorvaja.eenet.ee/w/index.php?title=Subversion_hoidla_kasutamisest&amp;diff=2954</id>
		<title>Subversion hoidla kasutamisest</title>
		<link rel="alternate" type="text/html" href="https://kuutorvaja.eenet.ee/w/index.php?title=Subversion_hoidla_kasutamisest&amp;diff=2954"/>
		<updated>2007-02-02T10:18:09Z</updated>

		<summary type="html">&lt;p&gt;Triinu: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt; cd /usr/ports/devel/subversion &amp;amp;&amp;amp; make WITH_PERL=YES WITH_MOD_DAV_SVN=YES WITHOUT_BDB=YES install clean&lt;br /&gt;
&lt;br /&gt;
httpd.conf vajalikud read&lt;br /&gt;
&lt;br /&gt;
 LoadModule dav_module         libexec/apache2/mod_dav.so&lt;br /&gt;
 LoadModule dav_svn_module     libexec/apache2/mod_dav_svn.so&lt;br /&gt;
 LoadModule authz_svn_module   libexec/apache2/mod_authz_svn.so&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Kasutaja vhost failis peab tööks olema osa&lt;br /&gt;
&lt;br /&gt;
 &amp;lt; Location /svn &amp;gt;&lt;br /&gt;
 DAV svn&lt;br /&gt;
 SVNParentPath /home/kasutaja/svn&lt;br /&gt;
 AuthzSVNAccessFile /home/kasutaja/svn.acl.repo&lt;br /&gt;
 Require valid-user&lt;br /&gt;
 AuthType Basic&lt;br /&gt;
 AuthName &amp;quot;Subversion repository&amp;quot;&lt;br /&gt;
 AuthUserFile /home/kasutaja/svn.acl.www&lt;br /&gt;
 &amp;lt; /Location &amp;gt;&lt;br /&gt;
&lt;br /&gt;
 htpasswd -c svn.acl.www kasutaja&lt;br /&gt;
&lt;br /&gt;
svn.acl.www&lt;br /&gt;
 kasutaja:KC9zQCMSI3dDM&lt;br /&gt;
&lt;br /&gt;
svn.acl.repo&lt;br /&gt;
 [test:/]&lt;br /&gt;
 kasutaja = rw&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
runme.sh&lt;br /&gt;
 cp svn.acl.www ~/&lt;br /&gt;
 cp svn.acl.repo ~/&lt;br /&gt;
 mkdir -p ~/svn&lt;br /&gt;
 cd ~/svn&lt;br /&gt;
 svnadmin create test&lt;br /&gt;
 find . -type d | xargs -n 1 setfacl -m user:www:rwx&lt;br /&gt;
 find . -type f | xargs -n 1 setfacl -m user:www:rw-&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
siis runme.sh on see, mille peaks käivitama selle kasutajana, kes endale svn repot tahab&lt;br /&gt;
pmst teeb see kasutajale ~/svn/test &#039;i svnadmin&#039;ga&lt;br /&gt;
siis seab apachele permissionid paika topib siis htaccess failid ka ning loob yhe kasutaja:test konto&lt;br /&gt;
&lt;br /&gt;
exploreri add-on&lt;br /&gt;
http://tortoisesvn.tigris.org/&lt;br /&gt;
&lt;br /&gt;
Kodukataloogi, kus svn looma hakkab cli klienti, kasutame muidugi seda, mida saab kodulehelt, näiteks juurkataloogi cvn kausta ning siis oleks soovitav /svn/bin paht&#039;i ka, et saaks kasutada käske normaalselt.&lt;br /&gt;
&lt;br /&gt;
Näide kuidas kasutada: et luua kettale kaust SVN ja seal siis teha checkout, tirime alla kataloogi test, sinna kataloogi test võib tekitada failid ja seejärel scn add failinimi ning selleks, et uploadiks scn commit -message&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
http://minginimi.server.ee/svn/test&lt;/div&gt;</summary>
		<author><name>Triinu</name></author>
	</entry>
	<entry>
		<id>https://kuutorvaja.eenet.ee/w/index.php?title=Freebsd_traffic_shaping&amp;diff=2953</id>
		<title>Freebsd traffic shaping</title>
		<link rel="alternate" type="text/html" href="https://kuutorvaja.eenet.ee/w/index.php?title=Freebsd_traffic_shaping&amp;diff=2953"/>
		<updated>2007-02-02T10:13:41Z</updated>

		<summary type="html">&lt;p&gt;Triinu: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;Downloadi shape käib nii, et sisemisel interfacel, kui selle ip suunas OUT läheb, siis paned tag&#039;i ja pärast matchid sellele tag&#039;ile sobiva queue. &lt;br /&gt;
Nimelt ei saa shapeda seda, mis sisse tuleb, vaid ainult seda, mis läheb välja.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;ipfw ja dummynet&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
 kldload ipfw&lt;br /&gt;
 kldload dummynet&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
 #!/bin/sh&lt;br /&gt;
 i=&amp;quot;/sbin/ipfw -q&amp;quot;&lt;br /&gt;
 &lt;br /&gt;
 $i -f flush&lt;br /&gt;
 $i -f pipe flush&lt;br /&gt;
 &lt;br /&gt;
 $i pipe 1 config bw 55KB/s&lt;br /&gt;
 $i pipe 2 config bw 70KB/s&lt;br /&gt;
 $i pipe 3 config bw 12KB/s&lt;br /&gt;
 &lt;br /&gt;
 $i add 1 pipe 1 ip from 192.168.1.2 to any&lt;br /&gt;
 $i add 2 pipe 1 ip from 192.168.1.3 to any&lt;br /&gt;
 $i add 3 pipe 1 ip from 192.168.1.4 to any&lt;br /&gt;
 $i add 4 pipe 1 ip from 192.168.1.5 to any&lt;br /&gt;
 &lt;br /&gt;
 $i add allow ip from any to any&lt;br /&gt;
&lt;br /&gt;
Lihtne skript piirab uploadi.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;pf ja altq&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
Näide pf altq traffic shapingust koos tulemüüriga. Piiratakse nii download kui uploadi. Iga hosti kohta saab määrata erineva uploadi ja downloadi,&lt;br /&gt;
samuti selle ip tähtsuse võrreldes teistega ehk leveli.&lt;br /&gt;
&lt;br /&gt;
 ext_if=&amp;quot;fxp1&amp;quot;&lt;br /&gt;
 int_if=&amp;quot;fxp0&amp;quot;&lt;br /&gt;
 &lt;br /&gt;
 sourcetrack=&amp;quot;keep state&amp;quot;&lt;br /&gt;
 set optimization aggressive&lt;br /&gt;
 &lt;br /&gt;
 scrub in all&lt;br /&gt;
 &lt;br /&gt;
 192.168.1.0/24 download&lt;br /&gt;
 altq on $int_if cbq bandwidth 100Mb queue if1&lt;br /&gt;
 queue if1 bandwidth 100% cbq(rio ecn default) { a1, a2, a3 }&lt;br /&gt;
 queue a1 bandwidth 512Kb cbq(rio ecn) 3&lt;br /&gt;
 queue a2 bandwidth 512Kb cbq(rio ecn) 4&lt;br /&gt;
 queue a3 bandwidth 512Kb cbq(rio ecn) 5&lt;br /&gt;
 &lt;br /&gt;
 link1 uplink&lt;br /&gt;
 altq on $ext_if cbq bandwidth 100Mb queue eif1&lt;br /&gt;
 queue eif1 bandwidth 100% cbq(rio ecn default) { b1, b2, b3 }&lt;br /&gt;
 queue b1 bandwidth 256Kb cbq(rio ecn) 7&lt;br /&gt;
 queue b2 bandwidth 256Kb cbq(rio ecn) 4&lt;br /&gt;
 queue b3 bandwidth 256Kb cbq(rio ecn) 5&lt;br /&gt;
 &lt;br /&gt;
 link1-nat&lt;br /&gt;
 nat on $ext_if from 192.168.1.1 to any tag pc1 -&amp;gt; ($ext_if)&lt;br /&gt;
 nat on $ext_if from 192.168.1.2 to any tag pc2 -&amp;gt; ($ext_if)&lt;br /&gt;
 nat on $ext_if from 192.168.1.3 to any tag pc3 -&amp;gt; ($ext_if)&lt;br /&gt;
 &lt;br /&gt;
 block log all label &amp;quot;blocked&amp;quot;&lt;br /&gt;
 pass quick on lo0 all&lt;br /&gt;
 &lt;br /&gt;
 192.168.1.0/24 &amp;amp;&amp;amp; 192.168.2.0/24 sisemiste interfacede ip&#039;ni piiramatul kiirusel traffic&lt;br /&gt;
 pass quick all tagged intnat keep state&lt;br /&gt;
 pass quick from 192.168.1.0/24 to $int_if keep state&lt;br /&gt;
 pass quick from $int_if to 192.168.1.0/24 keep state&lt;br /&gt;
 &lt;br /&gt;
 link1-download&lt;br /&gt;
 pass in quick from 192.168.1.1 to any $sourcetrack queue a1 label 192_168_1_1_down&lt;br /&gt;
 pass in quick from 192.168.1.2 to any $sourcetrack queue a2 label 192_168_1_2_down&lt;br /&gt;
 pass in quick from 192.168.1.3 to any $sourcetrack queue a3 label 192_168_1_3_down&lt;br /&gt;
 &lt;br /&gt;
 link1-upload&lt;br /&gt;
 pass out quick tagged pc1 $sourcetrack queue b1 label 192_168_1_1_up&lt;br /&gt;
 pass out quick tagged pc2 $sourcetrack queue b2 label 192_168_1_2_up&lt;br /&gt;
 pass out quick tagged pc3 $sourcetrack queue b3 label 192_168_1_3_up&lt;br /&gt;
 &lt;br /&gt;
 pass in inet proto icmp all keep state&lt;br /&gt;
 pass out inet proto icmp all keep state&lt;br /&gt;
   &lt;br /&gt;
 pass in on $ext_if proto tcp from any to any port &amp;gt; 49151 keep state&lt;br /&gt;
  &lt;br /&gt;
 pass in on $ext_if proto tcp from any to $ext_if port 22 keep state&lt;br /&gt;
 pass in on $ext_if proto tcp from any to $ext_if port 21 keep state&lt;br /&gt;
 pass in on $ext_if proto tcp from any to $ext_if port 80 keep state&lt;br /&gt;
   &lt;br /&gt;
 pass out on $ext_if proto { tcp, udp } all keep state&lt;/div&gt;</summary>
		<author><name>Triinu</name></author>
	</entry>
	<entry>
		<id>https://kuutorvaja.eenet.ee/w/index.php?title=Vinum_gvinum_ja_geom&amp;diff=2952</id>
		<title>Vinum gvinum ja geom</title>
		<link rel="alternate" type="text/html" href="https://kuutorvaja.eenet.ee/w/index.php?title=Vinum_gvinum_ja_geom&amp;diff=2952"/>
		<updated>2007-02-02T10:11:42Z</updated>

		<summary type="html">&lt;p&gt;Triinu: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;&#039;&#039;&#039;vinum&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Starting up Vinum Early Enough for the Root Filesystem&lt;br /&gt;
/boot/loader.conf vinum_load=&amp;quot;YES&amp;quot;&lt;br /&gt;
&lt;br /&gt;
fdisk -i teha&lt;br /&gt;
disklabel -w&lt;br /&gt;
disklabel -e devname&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
a: 1024000 281 4.2BSD 2048 16384 0&lt;br /&gt;
b: 16 vinum&lt;br /&gt;
&lt;br /&gt;
	&lt;br /&gt;
stripe&lt;br /&gt;
&lt;br /&gt;
   drive c device /dev/da5h&lt;br /&gt;
    drive d device /dev/da6h&lt;br /&gt;
    volume stripe&lt;br /&gt;
    plex org striped 512k&lt;br /&gt;
      sd length 128m drive c&lt;br /&gt;
      sd length 128m drive d&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
mirroring&lt;br /&gt;
&lt;br /&gt;
drive d1 device /dev/ad2s1a&lt;br /&gt;
drive d2 device /dev/ad3s1a&lt;br /&gt;
volume mirror setupstate&lt;br /&gt;
  plex org concat&lt;br /&gt;
    sd length 76000M drive d1&lt;br /&gt;
  plex org concat&lt;br /&gt;
    sd length 76000M drive d2&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
gvinum create -f /etc/vinum.conf&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
hiljem newfs -v&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
////////////////////////////////////////////////&lt;br /&gt;
&lt;br /&gt;
kõige alguses fdisk -i ketas&lt;br /&gt;
&lt;br /&gt;
   105  13:53   fdisk /dev/da1&lt;br /&gt;
   106  13:54   fdisk /dev/da2&lt;br /&gt;
   107  13:54   fdisk /dev/da3&lt;br /&gt;
   108  13:54   fdisk /dev/da4&lt;br /&gt;
   109  13:54   fdisk /dev/da5&lt;br /&gt;
   110  13:54   disklabel /dev/da1s1&lt;br /&gt;
   111  13:54   disklabel /dev/da2s1&lt;br /&gt;
   112  13:54   disklabel /dev/da3s1&lt;br /&gt;
   113  13:54   disklabel /dev/da4s1&lt;br /&gt;
   114  13:54   disklabel -w /dev/da1s1&lt;br /&gt;
   115  13:54   disklabel /dev/da1s1&lt;br /&gt;
   116  13:55   disklabel -w /dev/da2s1&lt;br /&gt;
   117  13:55   disklabel -w /dev/da3s1&lt;br /&gt;
   118  13:55   disklabel -w /dev/da4s1&lt;br /&gt;
   119  13:55   disklabel -e /dev/da1s1&lt;br /&gt;
   120  13:55   disklabel /dev/da1s1&lt;br /&gt;
   121  13:55   disklabel /dev/da2s1&lt;br /&gt;
   122  13:55   disklabel /dev/da3s1&lt;br /&gt;
   123  13:56   disklabel /dev/da4s1&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
# /dev/da1s1:&lt;br /&gt;
8 partitions:&lt;br /&gt;
#        size   offset    fstype   [fsize bsize bps/cpg]&lt;br /&gt;
  a: 35840936       16    unused        0     0&lt;br /&gt;
  c: 35840952        0    unused        0     0         # &amp;quot;raw&amp;quot; part, don&#039;t edit&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
muuda a ümber b&#039;ks, size kõige väiksema ketta järgi ja fstype vinum&lt;br /&gt;
&lt;br /&gt;
kui midagi läheb sassi&lt;br /&gt;
&lt;br /&gt;
dd if=/dev/zero of=/dev/da1 bs=1024 count=2048&lt;br /&gt;
&lt;br /&gt;
lihtsalt kirjutada kaks mega ketta algusesse nulle&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
mate&lt;br /&gt;
&lt;br /&gt;
gvinum l -rv root&lt;br /&gt;
&lt;br /&gt;
Volume root:    Size: 268435456 bytes (256 MB)&lt;br /&gt;
                State: up&lt;br /&gt;
Plex root.p3:   Size:   268435456 bytes (256 MB)&lt;br /&gt;
&lt;br /&gt;
volume root&lt;br /&gt;
268435456 / 512 + 16=281&lt;br /&gt;
&lt;br /&gt;
plex root&lt;br /&gt;
268435456 /512 = 524288&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
#        size   offset    fstype   [fsize bsize bps/cpg]&lt;br /&gt;
  a:   524288      281    4.2BSD     2048 16384     0&lt;br /&gt;
  b: 35840936       16     vinum&lt;br /&gt;
  c: 35840952        0    unused        0     0         # &amp;quot;raw&amp;quot; part, don&#039;t edit&lt;br /&gt;
&lt;br /&gt;
testida saab fsck -n /dev/da1s1a&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
konfiguratsioon&lt;br /&gt;
&lt;br /&gt;
drive a device /dev/da1s1b&lt;br /&gt;
drive b device /dev/da2s1b&lt;br /&gt;
drive c device /dev/da3s1b&lt;br /&gt;
drive d device /dev/da4s1b&lt;br /&gt;
&lt;br /&gt;
volume root&lt;br /&gt;
  plex org concat&lt;br /&gt;
   sd length 256m drive a&lt;br /&gt;
  plex org concat&lt;br /&gt;
   sd length 256m drive b&lt;br /&gt;
  plex org concat&lt;br /&gt;
   sd length 256m drive c&lt;br /&gt;
  plex org concat&lt;br /&gt;
   sd length 256m drive d&lt;br /&gt;
&lt;br /&gt;
volume swap&lt;br /&gt;
  plex org striped 272k&lt;br /&gt;
   sd length 512m drive a&lt;br /&gt;
   sd length 512m drive b&lt;br /&gt;
  plex org striped 272k&lt;br /&gt;
   sd length 512m drive c&lt;br /&gt;
   sd length 512m drive d&lt;br /&gt;
&lt;br /&gt;
volume usr&lt;br /&gt;
  plex org striped 272k&lt;br /&gt;
   sd length 1024m drive a&lt;br /&gt;
   sd length 1024m drive b&lt;br /&gt;
  plex org striped 272k&lt;br /&gt;
   sd length 1024m drive c&lt;br /&gt;
   sd length 1024m drive d&lt;br /&gt;
&lt;br /&gt;
volume var&lt;br /&gt;
  plex org striped 272k&lt;br /&gt;
   sd length 512m drive a&lt;br /&gt;
   sd length 512m drive b&lt;br /&gt;
  plex org striped 272k&lt;br /&gt;
   sd length 512m drive c&lt;br /&gt;
   sd length 512m drive d&lt;br /&gt;
&lt;br /&gt;
volume home&lt;br /&gt;
  plex org striped 272k&lt;br /&gt;
   sd drive a&lt;br /&gt;
   sd drive b&lt;br /&gt;
  plex org striped 272k&lt;br /&gt;
   sd drive c&lt;br /&gt;
   sd drive d&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
newfs ketastele&lt;br /&gt;
veel süsteem ketastele&lt;br /&gt;
&lt;br /&gt;
gvinum root mountida&lt;br /&gt;
dumbime juursüsteemi&lt;br /&gt;
cd /mnt&lt;br /&gt;
dump -0 -C 8 -f - -L / | restore -r -f -&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
mount /dev/gvinum/usr /mnt/usr&lt;br /&gt;
mount /dev/gvinum/var/mnt/var&lt;br /&gt;
&lt;br /&gt;
cd usr/&lt;br /&gt;
dump -0 -C 8 -f - -L /usr | restore -r -f -&lt;br /&gt;
&lt;br /&gt;
järgmisena /var&lt;br /&gt;
&lt;br /&gt;
paigaldada grub&lt;br /&gt;
&lt;br /&gt;
//laseb kirjutada tööajal bootsektorit&lt;br /&gt;
sysctl kern.geom.debugflags=16&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
/boot/loader.conf grub start&lt;br /&gt;
&lt;br /&gt;
geom_vinum_load=&amp;quot;YES&amp;quot;&lt;br /&gt;
vinum.autostart=&amp;quot;YES&amp;quot;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
muudame fstab&#039;i&lt;br /&gt;
&lt;br /&gt;
# Device                Mountpoint      FStype  Options         Dump    Pass#&lt;br /&gt;
/dev/gvinum/swap        none            swap    sw              0       0&lt;br /&gt;
/dev/gvinum/root        /               ufs     rw              1       1&lt;br /&gt;
/dev/gvinum/usr         /usr            ufs     rw              2       2&lt;br /&gt;
/dev/gvinum/var         /var            ufs     rw              2       2&lt;br /&gt;
/dev/gvinum/home        /home           ufs     rw              2       2&lt;br /&gt;
/dev/acd0               /cdrom          cd9660  ro,noauto       0       0&lt;br /&gt;
proc                    /proc           procfs  rw              0       0&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
//lülitab softupdate sisse ...metainfo kirjutamise kohta&lt;br /&gt;
tunefs -n /enable /dev/gvinum/usr&lt;br /&gt;
tunefs -n /enable /dev/gvinum/var&lt;br /&gt;
&lt;br /&gt;
grubikonf teha&lt;br /&gt;
muuda bootivaks kõik kettad ehk siis&lt;br /&gt;
&lt;br /&gt;
root (hd4,0,a)&lt;br /&gt;
setup(hd4)&lt;br /&gt;
&lt;br /&gt;
peale bootimist tuleb grub üles&lt;br /&gt;
&lt;br /&gt;
root (hd0,0,a)&lt;br /&gt;
kernel /boot/loader&lt;br /&gt;
sym &lt;br /&gt;
/boot/grub/menu.lst&lt;br /&gt;
&lt;br /&gt;
timeout 20&lt;br /&gt;
default 0&lt;br /&gt;
fallback 2&lt;br /&gt;
&lt;br /&gt;
title FreeBSD 1. kettalt&lt;br /&gt;
root (hd0,0,a)&lt;br /&gt;
kernel /boot/loader&lt;br /&gt;
&lt;br /&gt;
title FreeBSD 2. kettalt&lt;br /&gt;
root (hd1,0,a)&lt;br /&gt;
kernel /boot/loader&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
title FreeBSD 3. kettalt&lt;br /&gt;
root (hd2,0,a)&lt;br /&gt;
kernel /boot/loader&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
title FreeBSD 4. kettalt&lt;br /&gt;
root (hd3,0,a)&lt;br /&gt;
kernel /boot/loader&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;gstripe&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
kldload geom_mirror&lt;br /&gt;
&lt;br /&gt;
 /boot/loader.conf&lt;br /&gt;
 geom_stripe_load=&amp;quot;YES&amp;quot; &lt;br /&gt;
&lt;br /&gt;
     gstripe label -v -s 4096 data /dev/ad2 /dev/ad4&lt;br /&gt;
     newfs /dev/stripe/data&lt;br /&gt;
     mount /dev/stripe/data /mnt/tank2&lt;br /&gt;
     df -h&lt;br /&gt;
     /dev/stripe/data    289G    4.0K    266G     0%    /mnt/tank2&lt;br /&gt;
&lt;br /&gt;
    cat /var/run/dmesg.boot | grep &amp;quot;ad&amp;quot;&lt;br /&gt;
    gstripe list&lt;br /&gt;
    umount /dev/stripe/data&lt;br /&gt;
    tunefs -m 2 -o space /dev/stripe/data&lt;br /&gt;
 tunefs: minimum percentage of free space changes from 8% to 2%&lt;br /&gt;
 tunefs: should optimize for space with minfree &amp;lt; 8%&lt;br /&gt;
 tunefs: optimization preference changes from time to space&lt;br /&gt;
&lt;br /&gt;
    mount /dev/stripe/data /mnt/tank2&lt;br /&gt;
    /dev/stripe/data    289G    4.0K    283G     0%    /mnt/tank2&lt;br /&gt;
&lt;br /&gt;
-m 2 ütleb, et minfree peaks 2% olema&lt;br /&gt;
ja -o space optimiseerib space&#039;le, mitte access time&#039;le&lt;br /&gt;
aga kiiremat kaablit vaja, udma33 sucks ASS&lt;br /&gt;
&lt;br /&gt;
fsck_ffs /dev/stripe/data&lt;/div&gt;</summary>
		<author><name>Triinu</name></author>
	</entry>
	<entry>
		<id>https://kuutorvaja.eenet.ee/w/index.php?title=Mailman_kasutamine_FreeBSD%27ga&amp;diff=2934</id>
		<title>Mailman kasutamine FreeBSD&#039;ga</title>
		<link rel="alternate" type="text/html" href="https://kuutorvaja.eenet.ee/w/index.php?title=Mailman_kasutamine_FreeBSD%27ga&amp;diff=2934"/>
		<updated>2007-01-31T15:08:52Z</updated>

		<summary type="html">&lt;p&gt;Triinu: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;&#039;&#039;&#039;Mailman&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
Mailman on populaarne maililisti tarkvara, sarnaneb tööpõhimõttelt majordomoga. See pala seletab, kuidas mailman&#039;i installida ja kasutada koos postfix&#039;iga.&lt;br /&gt;
&lt;br /&gt;
Mailmanil on lisaks käsurea utiliitidele ka veebiliides kõigi toimingute jaoks, nagu subscibeerimine, administreerimine ning arhiivide haldus. &lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Install&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
Midagi keerulist Linux kasutajatel pole. BSD&#039;s postfix kasutajatel tuleb jälgida, et kompileerimisel MAIL_GID oleks järgnevalt kirjeldatud&lt;br /&gt;
&lt;br /&gt;
 cd /usr/ports/mail/mailman&lt;br /&gt;
 make MAIL_GID=mailman install clean&lt;br /&gt;
&lt;br /&gt;
Veebiliidese seadistamiseks httpd.conf&#039;i lisada read&lt;br /&gt;
&lt;br /&gt;
 ScriptAlias /mailman/ /usr/local/mailman/cgi-bin/&lt;br /&gt;
 Alias /pipermail/ /usr/local/mailman/archives/public/&lt;br /&gt;
&lt;br /&gt;
selleks, et võimalik kasutada veebiliidest kujul www.server/mailman&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Postfixi seadistamine&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
Avame main.cf faili, seal rida &lt;br /&gt;
&lt;br /&gt;
 alias_maps = hash:/etc/mail/aliases&lt;br /&gt;
&lt;br /&gt;
muudame&lt;br /&gt;
 &lt;br /&gt;
 alias_maps = hash:/etc/mail/aliases, hash:/usr/local/mailman/data/aliases&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Loome listi&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
Käivitame käsu newlist, mis asub erinevates os&#039;ides eri kohtades, BSD&#039;s näiteks /usr/local/mailman/bin kaustas&lt;br /&gt;
&lt;br /&gt;
küsitakse meilt Enter the name of the list:&lt;br /&gt;
&lt;br /&gt;
kirjutame test&lt;br /&gt;
&lt;br /&gt;
Järgnevalt listile jääva administraatori mail, kes hakkab saama listiserveri teateid näiteks modereerimisnõuetest&lt;br /&gt;
&lt;br /&gt;
Enter the email of the person running the list:admin@server&lt;br /&gt;
&lt;br /&gt;
Kõige viimasena listi administreerimisparool&lt;br /&gt;
&lt;br /&gt;
Initial testtest password:passa&lt;br /&gt;
&lt;br /&gt;
Seejärel esitab listiserver palve&lt;br /&gt;
&lt;br /&gt;
To finish creating your mailing list, you must edit your /etc/aliases (or equivalent) file by adding the following lines, and possibly running the &#039;newaliases&#039; program:&lt;br /&gt;
 &lt;br /&gt;
 ## test mailing list&lt;br /&gt;
 test:              &amp;quot;|/usr/local/mailman/mail/mailman post test&amp;quot;&lt;br /&gt;
 test-admin:        &amp;quot;|/usr/local/mailman/mail/mailman admin test&amp;quot;&lt;br /&gt;
 test-bounces:      &amp;quot;|/usr/local/mailman/mail/mailman bounces test&amp;quot;&lt;br /&gt;
 test-confirm:      &amp;quot;|/usr/local/mailman/mail/mailman confirm test&amp;quot;&lt;br /&gt;
 test-join:         &amp;quot;|/usr/local/mailman/mail/mailman join test&amp;quot;&lt;br /&gt;
 test-leave:        &amp;quot;|/usr/local/mailman/mail/mailman leave test&amp;quot;&lt;br /&gt;
 test-owner:        &amp;quot;|/usr/local/mailman/mail/mailman owner test&amp;quot;&lt;br /&gt;
 test-request:      &amp;quot;|/usr/local/mailman/mail/mailman request test&amp;quot;&lt;br /&gt;
 test-subscribe:    &amp;quot;|/usr/local/mailman/mail/mailman subscribe test&amp;quot;&lt;br /&gt;
 test-unsubscribe:  &amp;quot;|/usr/local/mailman/mail/mailman unsubscribe test&amp;quot;&lt;br /&gt;
 &lt;br /&gt;
 Hit enter to notify testtest owner...&lt;br /&gt;
&lt;br /&gt;
Asi, mida saab ka väikese vaevaga automatiseerida.&lt;br /&gt;
&lt;br /&gt;
Hetkel avame enda /usr/local/mailman/data/aliases faili ja lisame soovitatud read. Seejärel käivitame genaliases programmi, saame enda uut maililisti admistreerida ja kasutajaid lisada veebi  &lt;br /&gt;
&lt;br /&gt;
www.server.ee/mailman/admin/test url kaudu&lt;br /&gt;
&lt;br /&gt;
Mailman tekitab igale listikasutajale ka parooli, millega nad saavad ise sisse logida.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Lisamaterjalid&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
EENet 2006&lt;/div&gt;</summary>
		<author><name>Triinu</name></author>
	</entry>
	<entry>
		<id>https://kuutorvaja.eenet.ee/w/index.php?title=Bookmark_Sync_and_Sort_-_Firefoxi_bookmarkide_s%C3%BCnkroniseerimine&amp;diff=2933</id>
		<title>Bookmark Sync and Sort - Firefoxi bookmarkide sünkroniseerimine</title>
		<link rel="alternate" type="text/html" href="https://kuutorvaja.eenet.ee/w/index.php?title=Bookmark_Sync_and_Sort_-_Firefoxi_bookmarkide_s%C3%BCnkroniseerimine&amp;diff=2933"/>
		<updated>2007-01-31T15:02:43Z</updated>

		<summary type="html">&lt;p&gt;Triinu: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;Tarkvara [[https://addons.mozilla.org/firefox/2367/ Bookmark Sync and Sort]] võimaldab mitme Firefoxi eksemplari vahel sünkroniseerida bookmarke, kasutades  [[http://pyxml.sourceforge.net/topics/xbel/ XBEL (XML Bookmark Exchange Language)]] formaati. Näiteks abiks võib olla see, kui üks kasutuses olev arvuti töötab Linux ning teine Windows operatsioonisüsteemiga. Sünkroniseerimine toimub käsitsi välise ftp serveri vahendusel. Olles salvestanud ühte brauserisse bookmarkid, kopeerib kasutaja selleks mõeldud kasutajaliidese abil bookmarkid ftp serverisse ning kasutades teist brauserit kopeerib bookmarkid ftp serverist teise brauserisse. Bookmark Sync and Sort tarkvara levitatakse Firefoxi laiendusena.&lt;br /&gt;
&lt;br /&gt;
Bookmarkide sünkroniseerimiseks on teisigi Firefoxi laiendusi, samuti teenus [[http://www.google.com/tools/firefox/browsersync/ Google Browser Sync]]. &lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Laienduse paigaldamine&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
Tarkvara levitatakse Mozilla Firefoxi laiendusena, mida saab kopeerida aadressilt [[https://addons.mozilla.org/firefox/2367/ https://addons.mozilla.org/firefox/2367/]]. Paigaldamiseks avage viidatud veebikoht, ning valige &#039;Install now&#039;. Õnnestumise korral on näha, et brauserisse paigaldatud laienduste nimekirja on ilmunud juurde vastava rida&lt;br /&gt;
&lt;br /&gt;
 Tools -&amp;gt; Extensions&lt;br /&gt;
&lt;br /&gt;
Sealtkaudu toimub ka tarkvara uuendamine.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Kasutamine&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
Bookmarkide sünkroniseerimiseks valige menüüribalt&lt;br /&gt;
&lt;br /&gt;
 Bookmarks -&amp;gt; Syncronize Bookmarks&lt;br /&gt;
&lt;br /&gt;
mispeale avaneb kasutajaliides&lt;br /&gt;
&lt;br /&gt;
[[Image:Bookmark-sync-and-sort-1.gif]]&lt;br /&gt;
&lt;br /&gt;
Pildilt on näha ftp serveri ligipääs: failinimi, mida sünkroniseerimiseks kasutatakse ning määrang, et kui bookmarke kopeerida alla, siis nad lisatakse olemasolevatele bookmarkidele, samuti vastavad nupud bookmarkide üles või alla laadimiseks.&lt;/div&gt;</summary>
		<author><name>Triinu</name></author>
	</entry>
	<entry>
		<id>https://kuutorvaja.eenet.ee/w/index.php?title=PgAdmin3&amp;diff=2932</id>
		<title>PgAdmin3</title>
		<link rel="alternate" type="text/html" href="https://kuutorvaja.eenet.ee/w/index.php?title=PgAdmin3&amp;diff=2932"/>
		<updated>2007-01-31T15:00:14Z</updated>

		<summary type="html">&lt;p&gt;Triinu: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;PgAdmin on Postgresql andmebaasi arendusvahend, millega saab sooritada ka andmebaasi administreerimiseks vajalikke tegevusi.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Paigaldamine&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
PgAdmin tarkvara saab paigaldada hästivarustatud operatsioonisüsteemide paketihaldussüsteemi kasutades ning lisaks jagatakse aadressil [[http://www.pgadmin.org/ http://www.pgadmin.org]] tarkvara kompileeritud ja lähtetekstilisel kujul.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Kasutamine&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
PgAdmin on lokaalne graafilise kasutajaliidesega PostgreSQL andmebaasi klientprogramm, mille põhiaken näeb tööolukorras välja järgmine&lt;br /&gt;
&lt;br /&gt;
[[Image:Pgadmin-linux-1.gif]]&lt;br /&gt;
&lt;br /&gt;
Arusaadavalt on programmi kasutamiseks tarvis andmebaasiserverile ligipääsu.&lt;/div&gt;</summary>
		<author><name>Triinu</name></author>
	</entry>
	<entry>
		<id>https://kuutorvaja.eenet.ee/w/index.php?title=Ruby_on_rails&amp;diff=2931</id>
		<title>Ruby on rails</title>
		<link rel="alternate" type="text/html" href="https://kuutorvaja.eenet.ee/w/index.php?title=Ruby_on_rails&amp;diff=2931"/>
		<updated>2007-01-31T14:53:43Z</updated>

		<summary type="html">&lt;p&gt;Triinu: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;Apache22 ruby on rails and mongrel&lt;br /&gt;
&lt;br /&gt;
Süsteem toimib nii, et Apache suunab vhostide info mongrel serverile, mis siis railsi skripte esile manab.&lt;br /&gt;
&lt;br /&gt;
Installime vajalikud päkitsad&lt;br /&gt;
&lt;br /&gt;
 cd /usr/ports/apache22&lt;br /&gt;
 make install with_proxy_modules=yes&lt;br /&gt;
&lt;br /&gt;
 cd /usr/ports/lang/ruby18&lt;br /&gt;
 make install &amp;amp;&amp;amp; make clean&lt;br /&gt;
&lt;br /&gt;
 cd /usr/ports/devel/ruby-gems&lt;br /&gt;
 make install &amp;amp;&amp;amp; make clean&lt;br /&gt;
&lt;br /&gt;
 gem install mongrel&lt;br /&gt;
 gem install rails&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Loome vajalikud skriptid&lt;br /&gt;
&lt;br /&gt;
pane rcrails /etc/init.d vms kausta ja start_mongrel iga railsi script kausta. start_mongreli sees määra USER ja GROUP, kellena see server jooksma peaks.&lt;br /&gt;
&lt;br /&gt;
Meil on kaks eraldi railsis loodud programmi, mis asuvad &lt;br /&gt;
&lt;br /&gt;
 /home/rails/progeadmin/&lt;br /&gt;
 /home/rails/veebiadmin/&lt;br /&gt;
&lt;br /&gt;
/usr/local/etc/rails.conf või muusse faili (muuda vastavalt rcrails skripti) kirjuta näiteks:&lt;br /&gt;
&lt;br /&gt;
 RAILS_SERVERS=&amp;quot;&lt;br /&gt;
 /home/rails/progeadmin/&lt;br /&gt;
 /home/rails/veebiadmin/&lt;br /&gt;
 &amp;quot;&lt;br /&gt;
&lt;br /&gt;
Ehitame ruudu alla näiteks skripti, mis stardib mongreleid nimega rcrails&lt;br /&gt;
&lt;br /&gt;
 #!/usr/local/bin/bash&lt;br /&gt;
 #&lt;br /&gt;
 # This is proxy skript to start-stop mongrel_rails servers&lt;br /&gt;
 # This script can be placed in /etc/init.d or other rc startup directory&lt;br /&gt;
 # and it will pass its first argument to each rails start script. &lt;br /&gt;
 &lt;br /&gt;
 conf=&amp;quot;/usr/local/etc/mongrel.conf&amp;quot;&lt;br /&gt;
 &lt;br /&gt;
 if [ -f $conf ]&lt;br /&gt;
 then&lt;br /&gt;
   source $conf&lt;br /&gt;
 fi&lt;br /&gt;
 &lt;br /&gt;
 # function to do actual calling&lt;br /&gt;
 start_stop_rails(){&lt;br /&gt;
   echo &amp;quot;&amp;quot;&lt;br /&gt;
   echo &amp;quot;Rails directory: $1&amp;quot;&lt;br /&gt;
   cd $1&lt;br /&gt;
   ./script/start_mongrel $2&lt;br /&gt;
 }&lt;br /&gt;
 &lt;br /&gt;
 # set CMD to first argument&lt;br /&gt;
 CMD=$1&lt;br /&gt;
 &lt;br /&gt;
 for i in $RAILS_SERVERS&lt;br /&gt;
 do&lt;br /&gt;
   start_stop_rails $i $CMD&lt;br /&gt;
 done&lt;br /&gt;
&lt;br /&gt;
Loome skripti start_mongrel ja kopeerime kausta /home/rails/progeadmin/&lt;br /&gt;
&lt;br /&gt;
 #!/usr/local/bin/bash&lt;br /&gt;
 &lt;br /&gt;
 USER=&amp;quot;root&amp;quot;&lt;br /&gt;
 GROUP=&amp;quot;wheel&amp;quot;&lt;br /&gt;
 &lt;br /&gt;
 case $1 in&lt;br /&gt;
   start)&lt;br /&gt;
     /usr/local/bin/mongrel_rails start -d --user $USER --group $GROUP -p 8001 -a 127.0.0.1 -P rails-8001.pid&lt;br /&gt;
     /usr/local/bin/mongrel_rails start -d --user $USER --group $GROUP -p 8002 -a 127.0.0.1 -P rails-8002.pid&lt;br /&gt;
     /usr/local/bin/mongrel_rails start -d --user $USER --group $GROUP -p 8003 -a 127.0.0.1 -P rails-8003.pid&lt;br /&gt;
     ;;&lt;br /&gt;
   restart)&lt;br /&gt;
     /usr/local/bin/mongrel_rails restart -P rails-8001.pid&lt;br /&gt;
     /usr/local/bin/mongrel_rails restart -P rails-8002.pid&lt;br /&gt;
     /usr/local/bin/mongrel_rails restart -P rails-8003.pid&lt;br /&gt;
   ;;&lt;br /&gt;
   stop)&lt;br /&gt;
     /usr/local/bin/mongrel_rails stop -P rails-8001.pid&lt;br /&gt;
     /usr/local/bin/mongrel_rails stop -P rails-8002.pid&lt;br /&gt;
     /usr/local/bin/mongrel_rails stop -P rails-8003.pid&lt;br /&gt;
   ;;&lt;br /&gt;
   *)&lt;br /&gt;
     cat &amp;lt;&amp;lt;EOF&lt;br /&gt;
 &lt;br /&gt;
 USAGE: $0 &amp;lt;start|stop|restart&amp;gt;&lt;br /&gt;
 &lt;br /&gt;
 Mongrel places it&#039;s pid files in the RAILS_ROOT directory, which must be writable by the calling user.&lt;br /&gt;
 &lt;br /&gt;
 EOF&lt;br /&gt;
 esac&lt;br /&gt;
&lt;br /&gt;
Teeme teise skripti start_mongrel ning kopeerime /home/rails/veebiadmin/&lt;br /&gt;
&lt;br /&gt;
 #!/usr/local/bin/bash&lt;br /&gt;
 &lt;br /&gt;
 USER=&amp;quot;root&amp;quot;&lt;br /&gt;
 GROUP=&amp;quot;wheel&amp;quot;&lt;br /&gt;
  &lt;br /&gt;
 &lt;br /&gt;
 case $1 in&lt;br /&gt;
   start)&lt;br /&gt;
     /usr/local/bin/mongrel_rails start -d --user $USER --group $GROUP -p 8101 -a 127.0.0.1 -P rails-8101.pid&lt;br /&gt;
     /usr/local/bin/mongrel_rails start -d --user $USER --group $GROUP -p 8102 -a 127.0.0.1 -P rails-8102.pid&lt;br /&gt;
     /usr/local/bin/mongrel_rails start -d --user $USER --group $GROUP -p 8103 -a 127.0.0.1 -P rails-8103.pid&lt;br /&gt;
     ;;&lt;br /&gt;
   restart)&lt;br /&gt;
     /usr/local/bin/mongrel_rails restart -P rails-8101.pid&lt;br /&gt;
     /usr/local/bin/mongrel_rails restart -P rails-8102.pid&lt;br /&gt;
     /usr/local/bin/mongrel_rails restart -P rails-8103.pid&lt;br /&gt;
   ;;&lt;br /&gt;
   stop)&lt;br /&gt;
     /usr/local/bin/mongrel_rails stop -P rails-8101.pid&lt;br /&gt;
     /usr/local/bin/mongrel_rails stop -P rails-8102.pid&lt;br /&gt;
     /usr/local/bin/mongrel_rails stop -P rails-8103.pid&lt;br /&gt;
   ;;&lt;br /&gt;
   *)&lt;br /&gt;
     cat &amp;lt;&amp;lt;EOF&lt;br /&gt;
 &lt;br /&gt;
 USAGE: $0 &amp;lt;start|stop|restart&amp;gt;&lt;br /&gt;
 &lt;br /&gt;
 Mongrel places it&#039;s pid files in the RAILS_ROOT directory, which must be writable by the calling user.&lt;br /&gt;
 &lt;br /&gt;
 EOF&lt;br /&gt;
 esac&lt;br /&gt;
&lt;br /&gt;
httpd.conf&lt;br /&gt;
&lt;br /&gt;
Kontrollime, et read oleksid&lt;br /&gt;
&lt;br /&gt;
 LoadModule proxy_module libexec/apache22/mod_proxy.so&lt;br /&gt;
 LoadModule proxy_connect_module libexec/apache22/mod_proxy_connect.so&lt;br /&gt;
 LoadModule proxy_ftp_module libexec/apache22/mod_proxy_ftp.so&lt;br /&gt;
 LoadModule proxy_http_module libexec/apache22/mod_proxy_http.so&lt;br /&gt;
 LoadModule proxy_ajp_module libexec/apache22/mod_proxy_ajp.so&lt;br /&gt;
 LoadModule proxy_balancer_module libexec/apache22/mod_proxy_balancer.so&lt;br /&gt;
&lt;br /&gt;
Nüüd loome mõlemale progele nende vhostid&lt;br /&gt;
&lt;br /&gt;
 &amp;lt;VirtualHost 193.40.0.10:80&amp;gt;&lt;br /&gt;
   ServerName progeadmin.katse.ee&lt;br /&gt;
   DocumentRoot /home/rails/progeadmin/&lt;br /&gt;
 &lt;br /&gt;
   &amp;lt;Directory &amp;quot;/home/rails/progeadmin/&amp;quot;&amp;gt;&lt;br /&gt;
     Options FollowSymLinks&lt;br /&gt;
     AllowOverride None&lt;br /&gt;
     Order allow,deny&lt;br /&gt;
     Allow from all&lt;br /&gt;
   &amp;lt;/Directory&amp;gt;&lt;br /&gt;
 &lt;br /&gt;
   RewriteEngine On&lt;br /&gt;
 &lt;br /&gt;
 &lt;br /&gt;
  # Redirect all non-static requests to cluster&lt;br /&gt;
  #RewriteCond %{DOCUMENT_ROOT}/%{REQUEST_FILENAME} !-f&lt;br /&gt;
  RewriteRule ^/(.*)$ balancer://mongrel_cluster%{REQUEST_URI} [P,QSA,L]&lt;br /&gt;
 &lt;br /&gt;
 &amp;lt;/VirtualHost&amp;gt;&lt;br /&gt;
&lt;br /&gt;
 &amp;lt;VirtualHost 193.40.0.10:80&amp;gt;&lt;br /&gt;
  ServerName veebiadmin&lt;br /&gt;
  DocumentRoot /home/rails/veebiadmin/&lt;br /&gt;
 &lt;br /&gt;
  &amp;lt;Directory &amp;quot;/home/rails/veebiadmin/&amp;quot;&amp;gt;&lt;br /&gt;
    Options FollowSymLinks&lt;br /&gt;
    AllowOverride None&lt;br /&gt;
    Order allow,deny&lt;br /&gt;
    Allow from all&lt;br /&gt;
  &amp;lt;/Directory&amp;gt;&lt;br /&gt;
 &lt;br /&gt;
 &lt;br /&gt;
  RewriteEngine On&lt;br /&gt;
 &lt;br /&gt;
  # Rewrite to trailing slash&lt;br /&gt;
  RewriteRule ^/admin$ /admin/ [R,L]&lt;br /&gt;
 &lt;br /&gt;
  # test if this is /admin request&lt;br /&gt;
  RewriteCond %{REQUEST_URI} ^/admin(/.*)&lt;br /&gt;
  # strip off /admin and put result in ENV&lt;br /&gt;
  RewriteRule ^/admin(.*) /admin$1 [E=AdminReq:$1]&lt;br /&gt;
 &lt;br /&gt;
  RewriteCond /home/rails/admin/public/%{ENV:AdminReq} -f&lt;br /&gt;
  # serve static files&lt;br /&gt;
  RewriteRule ^/admin/(.*) /home/rails/admin/public/$1 [L]&lt;br /&gt;
  # If request is not static, proxy to rails&lt;br /&gt;
  RewriteRule ^/(admin/.*)$ balancer://mongrel_cluster2/$1 [P,QSA,L]&lt;br /&gt;
 &lt;br /&gt;
 &lt;br /&gt;
 &amp;lt;/VirtualHost&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Ehitame proxyd&lt;br /&gt;
&lt;br /&gt;
 &amp;lt;Proxy balancer://mongrel_cluster2&amp;gt;&lt;br /&gt;
    BalancerMember http://127.0.0.1:8001&lt;br /&gt;
    BalancerMember http://127.0.0.1:8002&lt;br /&gt;
    BalancerMember http://127.0.0.1:8003&lt;br /&gt;
 &amp;lt;/Proxy&amp;gt;&lt;br /&gt;
&lt;br /&gt;
 &amp;lt;Proxy balancer://mongrel_cluster&amp;gt;&lt;br /&gt;
    BalancerMember http://127.0.0.1:8101&lt;br /&gt;
    BalancerMember http://127.0.0.1:8102&lt;br /&gt;
    BalancerMember http://127.0.0.1:8103&lt;br /&gt;
 &amp;lt;/Proxy&amp;gt;&lt;br /&gt;
&lt;br /&gt;
ja balaceri&lt;br /&gt;
&lt;br /&gt;
 Listen 8000&lt;br /&gt;
 &amp;lt;VirtualHost 193.40.0.10:8000&amp;gt;&lt;br /&gt;
  &amp;lt;Location /&amp;gt;&lt;br /&gt;
    SetHandler balancer-manager&lt;br /&gt;
    Deny from all&lt;br /&gt;
    Allow from localhost&lt;br /&gt;
  &amp;lt;/Location&amp;gt;&lt;br /&gt;
 &amp;lt;/VirtualHost&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Lingid&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
http://blog.innerewut.de/articles/2006/04/21/scaling-rails-with-apache-2-2-mod_proxy_balancer-and-mongrel&lt;/div&gt;</summary>
		<author><name>Triinu</name></author>
	</entry>
	<entry>
		<id>https://kuutorvaja.eenet.ee/w/index.php?title=Xen_kasutamine_Debian_Etchiga&amp;diff=2930</id>
		<title>Xen kasutamine Debian Etchiga</title>
		<link rel="alternate" type="text/html" href="https://kuutorvaja.eenet.ee/w/index.php?title=Xen_kasutamine_Debian_Etchiga&amp;diff=2930"/>
		<updated>2007-01-31T14:46:52Z</updated>

		<summary type="html">&lt;p&gt;Triinu: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;&#039;&#039;&#039;Sissejuhatus&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
Xen võimaldab ühel füüsilisel arvutil kasutada mitmeid samaaegselt töötavaid operatsioonisüsteeme. Reeglina töötab selliselt käivitatud arvutil üks põhiline operatsioonisüsteem (Host), mis kontrollib teiste (Guest) operatsioonisüsteemide tegevust. Üldiselt eristatakse nelja tüüpi virtualiseerimise tehnikaid:&lt;br /&gt;
&lt;br /&gt;
 Riistvara emuleerimine - QEMU&lt;br /&gt;
 Full virtualization - vmware (saab kasutada modifitseerimata Guest operatsioonisüsteeme)&lt;br /&gt;
 Paravirtualization - Xen (saab kasutada vaid modifitseeritud Guest operatsioonisüsteeme)&lt;br /&gt;
 Operating System level virtualization - UML (Guest operatsioonisüsteem töötab protsessina)&lt;br /&gt;
&lt;br /&gt;
Modifitseerimine tähendab Xeni puhul seda, et Guest operatsioonisüsteem kasutab vastavalt paigatud tuuma.&lt;br /&gt;
&lt;br /&gt;
Xeni puhul kasutatakse kõnealuselt käivitatud arvutis kahte tuuma&lt;br /&gt;
&lt;br /&gt;
 Host operatsioonisüsteem ehk privilegeeritud domeen ehk dom0&lt;br /&gt;
 Guest operatsioonisüsteem ehk privilegeerimata domeen ehk domU &lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Xen tarkvara paigaldamine&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
Debian Etch puhul tuleb paigaldada paketid &lt;br /&gt;
&lt;br /&gt;
 libc6-xen xen-docs-3.0 xen-hypervisor-3.0.3-1-i386 xen-tools xen-utils-3.0.3-1 xen-utils-common&lt;br /&gt;
&lt;br /&gt;
Lisaks on tuumade kompileerimiseks vajalik kopeerida www.xensource.com veebikohast Xen lähtetekstid ning paigaldada&lt;br /&gt;
&lt;br /&gt;
 iproute bridge-utils python-twisted gcc-3.3 binutils make zlib1g-dev python-dev transfig &lt;br /&gt;
 bzip2 screen debootstrap libcurl3-dev libncurses5-dev x-dev&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Privilegeeritud domeeni dom0 tuum&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
Lahtipakitud Xeni lähtetekstid kataloogis tuleb öelda&lt;br /&gt;
&lt;br /&gt;
 bash# make linux-2.6-xen0-config CONFIGMODE=menuconfig KERNELS=&amp;quot;linux-2.6-xen0&amp;quot;&lt;br /&gt;
 .. võib lisaks valida meelepäraseid seadeid&lt;br /&gt;
 bash# make linux-2.6-xen0-build&lt;br /&gt;
 bash# make linux-2.6-xen0-install&lt;br /&gt;
&lt;br /&gt;
Tulemusena on paigaldatud arvutisse uus tuum, peale bootloaderi seadistuste ülevaatamist tuleb arvuti xen0 domeeni tuumaga rebootida. Seejärel näeb Xen teateid käsuga&lt;br /&gt;
&lt;br /&gt;
 xm dmesg&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Grubi seadistamine&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
Esmalt laaditakse Xeni hüperviisor ja seejärel privilegeeritud domeeni (dom0) Linuxi tuum&lt;br /&gt;
&lt;br /&gt;
Tähele tuleb panna, et privilegeerimata domeeni tuum paikneb vä ???&lt;br /&gt;
 default     0&lt;br /&gt;
 timeout     15&lt;br /&gt;
 color cyan/blue white/blue&lt;br /&gt;
 &lt;br /&gt;
 title xen&lt;br /&gt;
 root (hd0,1)&lt;br /&gt;
 kernel /boot/xen-3.0.3-1-i386.gz  dom0_mem=384000&lt;br /&gt;
 module /boot/vmlinuz-2.6.16.29-xen0 root=/dev/hda2 ro max_loop=255&lt;br /&gt;
 savedefault&lt;br /&gt;
 boot&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Guest domeeni seadistamine&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
Guest domeene võib olla üks või mitu, iga domeeniga on seotud&lt;br /&gt;
&lt;br /&gt;
# guest domeeni tuum (mitu guest domeeni võivad kasutada ühte ja sama domU tuuma)&lt;br /&gt;
# guest failisüsteemi immidz&lt;br /&gt;
# Xeni guest domeeni seadistusfail&lt;br /&gt;
&lt;br /&gt;
Kusjuures oluline on tähele panna, et Guest operatsioonisüsteemi tuum paikneb tema immidzast väljaspool.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Guest domeeni domU tuum&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
Lahtipakitud Xeni lähtetekstid kataloogis tuleb öelda&lt;br /&gt;
&lt;br /&gt;
 bash# make linux-2.6-xenU-config CONFIGMODE=menuconfig KERNELS=&amp;quot;linux-2.6-xenU&amp;quot;&lt;br /&gt;
 .. võib lisaks valida meelepäraseid seadeid&lt;br /&gt;
 bash# make linux-2.6-xenU-build&lt;br /&gt;
 bash# make linux-2.6-xenU-install&lt;br /&gt;
&lt;br /&gt;
Tulemusena on paigaldatud arvutisse xenU domeeni tuuma, mida kasutatakse guest domeenide bootimiseks.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Xen domU moodustamine&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
Debian Etch sisaldab paketti xen-tools, mis hõlbustab Guest domeenide immidza tekitamist. Koostage nt selline seadistusfail /etc/xen-tools/xen-tools.conf&lt;br /&gt;
&lt;br /&gt;
 dir = /mnt/xen&lt;br /&gt;
 debootstrap = 1&lt;br /&gt;
 size   = 4Gb      # Disk image size.&lt;br /&gt;
 memory = 512Mb    # Memory size&lt;br /&gt;
 swap   = 1024Mb    # Swap size&lt;br /&gt;
 fs     = ext3     # use the EXT3 filesystem for the disk image.&lt;br /&gt;
 dist   = sarge    # Default distribution to install.&lt;br /&gt;
 image  = sparse   # Specify sparse vs. full disk images.&lt;br /&gt;
 passwd = 1&lt;br /&gt;
 kernel = /boot/vmlinuz-2.6.16.29-xenU&lt;br /&gt;
 mirror = http://ftp.aso.ee/debian/&lt;br /&gt;
&lt;br /&gt;
ning öelge&lt;br /&gt;
&lt;br /&gt;
 bash# xen-create-image --hostname=xen-sarge.auul --ip=172.16.92.2 \&lt;br /&gt;
 --gateway=172.16.92.128 --netmask=255.255.255.0&lt;br /&gt;
&lt;br /&gt;
Tulemusena moodustatakse domU seadistusfail&lt;br /&gt;
&lt;br /&gt;
 /etc/xen/xen-sarge.auul.cfg&lt;br /&gt;
&lt;br /&gt;
immidzad /mnt/xen/domains/xen-sarge.auul immidzad&lt;br /&gt;
&lt;br /&gt;
 disk.img&lt;br /&gt;
 swap.img&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;domU käivitamine&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
 bash# xm create -c /etc/xen/xen-sarge.auul.cfg&lt;br /&gt;
&lt;br /&gt;
-c võti tähendab, et terminalile esitatakse domU konsool. Peale domU käivitamist võib sisse logida kas konsooli kaudu või üle võrgu.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Lingid&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
NetBSD xen http://www.s-mackie.demon.co.uk/unix-notes/NetBSD-Xen-Setup.html&lt;br /&gt;
&lt;br /&gt;
Xen knoppix http://unit.aist.go.jp/itri/knoppix/xen/index-en.html&lt;br /&gt;
&lt;br /&gt;
Gentoo Xen http://gentoo-wiki.com/HOWTO_Xen_and_Gentoo&lt;/div&gt;</summary>
		<author><name>Triinu</name></author>
	</entry>
	<entry>
		<id>https://kuutorvaja.eenet.ee/w/index.php?title=ISCSI_kasutamine&amp;diff=2929</id>
		<title>ISCSI kasutamine</title>
		<link rel="alternate" type="text/html" href="https://kuutorvaja.eenet.ee/w/index.php?title=ISCSI_kasutamine&amp;diff=2929"/>
		<updated>2007-01-31T14:38:11Z</updated>

		<summary type="html">&lt;p&gt;Triinu: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;iSCSI tehnoloogia võimaldab üle tavalise TCP/IP võrgu ühendada klientarvutile külge nn block-device&#039;i vastavat teenust pakkuvast serverist. Klientarvutit nimetatakse iSCSI initiatoriks ning serverit iSCSI target&#039;iks.&lt;br /&gt;
&lt;br /&gt;
See tehnoloogia on suhteliselt uus ja seetõttu ei maksa ehk vaba tarkvaralistest implementatsioonidest erilist stabiilsust oodata, arvestades lisaks asjaolu, et tegu on block-device teenusega, millega tegeletakse juurkasutajana. Aga teema on siiski väga integreeriv ja põnev! Kuna erinevates operatsioonisüsteemides on kasutusel erinevad implementatsioonid, siis universaalsuse huvides kirjeldame, kuidas lähtetekstidest seda tarkvara kasutada. Pala lõpus on ka viited operatsioonisüsteemide poolt pakutavatele võimalustele.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Tarkvara&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
Tundub, et initiatori osas on suurem arendajate tähelepanu koondunud projektile [[http://www.open-iscsi.org/ http://www.open-iscsi.org/ ]] ning targeti osas projektile [[http://iscsitarget.sourceforge.net/ http://iscsitarget.sourceforge.net/]].&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;iSCSI targeti paigaldamine&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
Target koosneb kahest osast&lt;br /&gt;
&lt;br /&gt;
#iSCSI targeti utiliidid - deemon, tema seadistusfail ning juhtprogramm, vastavalt ietd, ietd.conf ning ietdadm&lt;br /&gt;
#kerneli moodulid - iscsi_trgt&lt;br /&gt;
&lt;br /&gt;
Eelduseks on, et paigaldatud on 2.6.14 versioonist uuem Linuxi crypto võimega tuum ning tuuma lähtetekstid, sellisena nagu nad peale tuuma kompileerimist jäid, oleksid alles. Seejärel anda IET lähtetekstide kataloogis käsk &#039;make&#039;.&lt;br /&gt;
&lt;br /&gt;
Millegi katsetamiseks sobib selline ietd deemoni seadistusfail, eeldusel, et /dev/hda3 on katsetamiseks vaba partitsioon (block-device).&lt;br /&gt;
&lt;br /&gt;
 Target i.2006-05.auul.aix:storage.disk3&lt;br /&gt;
 Lun 0 Path=/dev/hda3,Type=fileio&lt;br /&gt;
 Alias Test&lt;br /&gt;
&lt;br /&gt;
Ning käivitada deemon&lt;br /&gt;
&lt;br /&gt;
 /etc/init.d/iscsi-target start &lt;br /&gt;
&lt;br /&gt;
Targeti elutegevusest saab aimu sedasi &lt;br /&gt;
&lt;br /&gt;
 bash# cat /proc/net/iet/volume /proc/net/iet/session&lt;br /&gt;
  tid:1 name:i.2006-05.auul.aix:storage.disk3&lt;br /&gt;
        lun:0 state:0 iotype:fileio path:/dev/hda3&lt;br /&gt;
  tid:1 name:i.2006-05.auul.aix:storage.disk3&lt;br /&gt;
        sid:3660274212864512 initiator:iqn.1987-05.com.cisco:01.b5f4204e93f&lt;br /&gt;
                cid:0 ip:192.168.10.26 state:active hd:none dd:none &lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;iSCSI initiatori paigaldamine&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
Initiator koosneb kahest osast&lt;br /&gt;
&lt;br /&gt;
#iSCSI initiatori utiliidid - deemon, tema seadistusfail ning juhtprogramm, vastavalt iscsid, inititatorname.conf ning iscsiadm&lt;br /&gt;
#kerneli moodulid - scsi_transport_iscsi, iscsi_tcp&lt;br /&gt;
&lt;br /&gt;
Eelduseks on, et paigaldatud on 2.6.14 versioonist uuem Linuxi crypto võimega tuum ning tuuma lähtetekstid, sellisena nagu nad peale tuuma kompileerimist jäid, oleksid alles. Seejärel anda lähtetekstide kataloogis käsk &#039;make&#039;. &lt;br /&gt;
&lt;br /&gt;
#(Serveris moodustada iSCSI shared ning anonüümselt subnetile välja jagada.)&lt;br /&gt;
#tekitada fail /etc/initiatorname.iscsi, nt sellise sisuga &#039;InitiatorName=iqn.1987-05.com.cisco.01.6727f456fe3f50c8274f4484bd7862d2&#039;&lt;br /&gt;
#laadida moodulid scsi_transport_iscsi ja scsi_tcp&lt;br /&gt;
#käivitada iscsid (seda saab käivitada logima ja nii et ta backgroundi ei lähe, vastavalt vajadusele), /etc/init.d/open-iscsi start | stop&lt;br /&gt;
#vaadake, mis shared on välja jagatud&lt;br /&gt;
&lt;br /&gt;
 bash# iscsiadm -m discovery -t sendtargets -p 192.168.10.19:3260&lt;br /&gt;
  [e0a11d] 192.168.10.19:3260,1 iqn.2006-01.com.openfiler:enus.escsi&lt;br /&gt;
  [a619de] 192.168.10.19:3260,1 iqn.2006-01.com.openfiler:vgrupp.essa&lt;br /&gt;
  [4ebc15] 192.168.10.19:3260,1 iqn.2006-01.com.openfiler:enus.ahti&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Valmislahendused&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
Aadressil [[http://www.openfiler.com/ http://www.openfiler.com]] jagatakse arvutipõhist nö storage lahendust, lisaks iSCSI targeti tekitamise võimalusele tegeleb see ka CIFS ja NFS&#039;iga. Olemas on ka spetsiaalsed riistvaralised iSCSI targeteid ja nende manageerimise vahendeid sisaldavad kastid erinevatelt tootjatelt, nt EMC ja NetApp.&lt;/div&gt;</summary>
		<author><name>Triinu</name></author>
	</entry>
	<entry>
		<id>https://kuutorvaja.eenet.ee/w/index.php?title=Root-over-NFS&amp;diff=2928</id>
		<title>Root-over-NFS</title>
		<link rel="alternate" type="text/html" href="https://kuutorvaja.eenet.ee/w/index.php?title=Root-over-NFS&amp;diff=2928"/>
		<updated>2007-01-31T14:25:38Z</updated>

		<summary type="html">&lt;p&gt;Triinu: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;&#039;&#039;&#039;Eesmärk&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
Soovitavaks tulemuseks on tekitada nn diskless arvuti, st millel endal puudub kõvaketas ja kuhu on ühendatud NFS serverilt juurfailisüsteem külge. &lt;br /&gt;
Muus osas on tegu tavalisel moel töötava arvutiga.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Tutvustus&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
Üldiselt läbitakse arvuti käivitamisel järgmised etapid&lt;br /&gt;
&lt;br /&gt;
#Katsetades järgemööda BIOSis näidatud boot-device&#039;isid, käivitatakse esimene leitud bootloader&lt;br /&gt;
#Bootloaderi abil laaditakse operatsioonisüsteemi tuum&lt;br /&gt;
#Sõltuvalt tuuma käivitamisel kasutatud parameetritest, ühendatakse külge juurfailisüsteem ning käivitatakse operatsioonisüsteem&lt;br /&gt;
&lt;br /&gt;
Tavaliselt leitakse bootloader arvuti ainsalt kõvakettalt, sealt samast laaditakse tuum, ühendatakse külge juurfailisüsteem ning lõpuks käivitatakse operatsioonisüsteem. Võimalik on aga korraldada nii, et osa tegevusi sooritatakse kohalikus arvutis ning osa jaoks pöördutakse võrku:&lt;br /&gt;
&lt;br /&gt;
#PXE on standartne viis, mil moel võrgukaart pöördub DHCP ja TFTP serveri poole, et kopeerida võrgust bootloader&lt;br /&gt;
#bootloader kopeerib võrgust tuuma&lt;br /&gt;
#tuum ühendab võrgust külge juurfailisüsteemi&lt;br /&gt;
&lt;br /&gt;
Kõige praktilisemat huvi pakuvad kaks juhtu&lt;br /&gt;
&lt;br /&gt;
#lokaalselt meedialt käivitatud bootloader - klientarvutil ei ole PXE võimelist võrgukaarti, kuid CD plaadilt käivitatakse bootloader, mis kopeerib võrgust tuuma&lt;br /&gt;
#võrgust käivitatud bootloader - klientarvutil on PXE võimeline võrgukaart ning süsteem käivitatakse ilma lokaalset meediat tarvitamata&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;NFS serveri ettevalmistamine&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
Sõltumata sellest, kas bootloader ja tuum laaditakse võrgust või klientarvuti lokaalselt meedialt, NFS serveril peab asuma juurfailisüsteem. NFS serveri ettevalmistamine koosneb kahest tegevusest&lt;br /&gt;
&lt;br /&gt;
#klientarvuti juurfailisüsteemi ettevalmistamine - selleks sobib nt kasutada Debian GNU/Linuxi programmi debootstrap ning moodustada nö chroot keskkond&lt;br /&gt;
#NFS serverprogrammi käivitamine - jagada sobivate ligipääsupiirangutega võrku välja klientarvuti juurfailisüsteem&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Kliendi tuuma ettevalmistamine&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
Sõltumata sellest, kas laaditav tuum kopeeritakse võrgust või kohalikult meedialt peab tuum olema selliste omadustega&lt;br /&gt;
&lt;br /&gt;
#võrgukaardi tugi&lt;br /&gt;
#NFS-Root tugi&lt;br /&gt;
&lt;br /&gt;
 Networking -&amp;gt; Networking options -&amp;gt; IP: kernel level autoconfiguration -&amp;gt; IP: DHCP support&lt;br /&gt;
 File Systems -&amp;gt; Network File Systems -&amp;gt; Root FS on NFS&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;TFTP serveri ettevalmistamine&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
Sõltuvalt sellest, kas kasutatakse lokaalselt meedialt või võrgust käivitatud bootloaderit, tuleb võrgust kopeerida vastavalt, kas tuum või bootloader ja tuum. Kasutamiseks sobib atftpd serveri tarkvara. Seadke näiteks tftpd serveri juurfailisüsteemiks kataloog /var/tftpdboot, kuhu tuleb kopeerida bootloader ning tuum.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Lokaalselt meedialt käivitatud bootloader&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
Grub bootloaderi tarkvarast on võimalik moodustada bootiv CD plaat, mille kasutamise tulemusena arvuti bootitakse üles sellelt plaadilt ning seejärel bootloader kopeerib tftp serverist tuuma. CD valmistamiseks&lt;br /&gt;
&lt;br /&gt;
#Debian GNU/Linuxi operatsioonisüsteemiga jagatav grub ei ole võrguvõimeline ja sellepärast tuleb pakett kompileerida ringi.&lt;br /&gt;
#moodustada kataloog /usr/src/iso/grub/boot&lt;br /&gt;
#kopeerida sinna fail /lib/grub/i386-pc/stage2_eltorito&lt;br /&gt;
#moodustada fail /usr/src/iso/grub/boot/menu.lst sisuga&lt;br /&gt;
&lt;br /&gt;
 title           nfs_1.200&lt;br /&gt;
 ifconfig        --address=192.168.1.200 --mask=255.255.255.0 --server=192.168.1.254&lt;br /&gt;
 root            (nd)&lt;br /&gt;
 kernel          (nd)/vmlinuz-2.6.17.6-amdrtlnforce root=/dev/nfs nfsroot=192.168.1.254:/mnt/hdc1/nfs-root-evangelist \&lt;br /&gt;
 ip=192.168.1.200:192.168.1.254:192.168.1.254:255.255.255.0:evangelist:eth0:off&lt;br /&gt;
&lt;br /&gt;
ning anda .iso moodustamiseks kataloogis /usr/src käsk&lt;br /&gt;
&lt;br /&gt;
 bash$ mkisofs -R -b boot/grub/stage2_eltorito -no-emul-boot -boot-load-size 4 -boot-info-table -o grub.iso iso &lt;br /&gt;
&lt;br /&gt;
Seejärel kirjutada CD plaat ning sellelt plaadilt klientarvutit bootides jõutakse grub menüüvalikusse, sealt saab vajadusel teha veel parandusi ning lasta grubil kopeerida tftpd serverilt tuum ning see laadida seadistatud parameetritega. Edasi ühendatakse külge NFS serverilt juurfailisüsteem ning käivitatakse operatsioonisüsteem. &lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Võrgust käivitatud bootloader&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
Bootloaderi võrgust leidmiseks peab võrgus töötama sobivalt ettevalmistatud dhcp server, sobib kasutada ICS dhcp server, kolm viimast rida on võrgust bootimise spetsiifilised&lt;br /&gt;
&lt;br /&gt;
 host evangelist.auul {&lt;br /&gt;
   hardware ethernet 00:17:31:b2:77:df;&lt;br /&gt;
   fixed-address 192.168.10.20;&lt;br /&gt;
   option broadcast-address 192.168.10.255;&lt;br /&gt;
   option routers 192.168.10.254;&lt;br /&gt;
   option domain-name-servers 192.168.1.254;&lt;br /&gt;
   option host-name &amp;quot;evangelist&amp;quot;;&lt;br /&gt;
   option domain-name &amp;quot;auul&amp;quot;;&lt;br /&gt;
&lt;br /&gt;
   next-server 192.168.10.254;&lt;br /&gt;
   option option-150 &amp;quot;(nd)/menu.lst&amp;quot;;&lt;br /&gt;
   filename &amp;quot;pxegrub&amp;quot;;&lt;br /&gt;
 }&lt;br /&gt;
&lt;br /&gt;
Antud juhul saab klient dhcp serverilt teada, et bootloader ning bootloaderi menüüfail tuleb kopeerida tftpd serverist aadressil 192.168.10.254. Fail pxegrub tuleb kopeerida võrguvõimelise grubi paketist ning menu.lst sobivalt ettevalmistada. Edasine tegevus jätkub sarnaselt eelmisele punktile, bootloader laadib tuuma ning seejärel ühendatakse külge juurfailisüsteem ning käivitatakse operatsioonisüsteem.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Märkused&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
Käesolevas palas käsitleti bootloaderit Grub, teised populaarsed bootloaderid on pxelinux ning etherboot.&lt;br /&gt;
&lt;br /&gt;
Debian GNU/Linux grub paketi kasutamisel tuleb arvestada, milliste võrgukaartide toetus on olemas&lt;br /&gt;
&lt;br /&gt;
#bash$ apt-get source grub&lt;br /&gt;
#redigeerida debian/rules failis nn ./configure suvandeid, näiteks Realteki, Inteli ja 3Com populaarsete võrgukaartide toetuse lisamiseks tekitada juurde sellised read, et kokku on vastav sektsioon&lt;br /&gt;
&lt;br /&gt;
 # Add here commands to configure the package.&lt;br /&gt;
 aclocal-1.8 &amp;amp;&amp;amp; automake-1.8 &amp;amp;&amp;amp; autoconf&lt;br /&gt;
 CC=$(CC) LDFLAGS=$(LDFLAGS) ./configure \&lt;br /&gt;
    --host=$(DEB_HOST_GNU_TYPE) \&lt;br /&gt;
    --build=$(DEB_BUILD_GNU_TYPE) \&lt;br /&gt;
    --prefix=/ \&lt;br /&gt;
    --mandir=/usr/share/man \&lt;br /&gt;
    --infodir=/usr/share/info \&lt;br /&gt;
    --disable-auto-linux-mem-opt \&lt;br /&gt;
    --enable-diskless \&lt;br /&gt;
    --enable-eepro100 \&lt;br /&gt;
    --enable-rtl8139 \&lt;br /&gt;
    --enable-3c90x&lt;br /&gt;
# bash$ dpkg-buildpackage -rfakeroot&lt;br /&gt;
# mõnel juhul võiks bootloaderi vahele jätta ja lasta otse DCHP serveril PXE&#039;le tuum kätta anda, aga vähemalt minu ühel seesugusel katsel teatas arvuti seepeale, et mälust ei piisanud&lt;br /&gt;
&lt;br /&gt;
TODO: palad teemadel: dhcp, tftp, nfs, debiani pakettide tekitamine, tuuma kompileerimine, debiani paketihaldus, grub, debootstrap&lt;/div&gt;</summary>
		<author><name>Triinu</name></author>
	</entry>
	<entry>
		<id>https://kuutorvaja.eenet.ee/w/index.php?title=Pisikesed_asjad&amp;diff=2927</id>
		<title>Pisikesed asjad</title>
		<link rel="alternate" type="text/html" href="https://kuutorvaja.eenet.ee/w/index.php?title=Pisikesed_asjad&amp;diff=2927"/>
		<updated>2007-01-31T13:47:45Z</updated>

		<summary type="html">&lt;p&gt;Triinu: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;seq - mugav tekitada bash skriptides järjestatud arve, for i in `seq 20 -2 14`; do echo $i; done annab tulemuseks 20, 18, 16, 14&lt;br /&gt;
&lt;br /&gt;
gtube - standardne spämmi test, [[http://spamassassin.apache.org/gtube/ http://spamassassin.apache.org/gtube/]]&lt;br /&gt;
&lt;br /&gt;
eicar - standardne viiruse test, [[http://www.eicar.org/anti_virus_test_file.htm http://www.eicar.org/anti_virus_test_file.htm]]&lt;br /&gt;
&lt;br /&gt;
bonnie - kõvaketta/failisüsteemi koormustest, nt &#039;bonnie -s 90g -d /mnt/p8/bonnie -u imre -f&#039; kusjuures väljundit annab teisendada päistega html tabelina (niisama on ehk suhteliselt krüptiline)&lt;br /&gt;
&lt;br /&gt;
openssl s_client - võimaldab teha nö telnetti TLSilistele teenustele, nt &#039;openssl s_client -connect www.riik.ee:443&#039;&lt;br /&gt;
&lt;br /&gt;
squidi logi aja teisendamine inimloetavale kujule - $bash cat squid.log | /usr/bin/perl -pe &#039;s/\d+/localtime $&amp;amp;/e;&#039;&lt;br /&gt;
&lt;br /&gt;
veebikoha testimine - httperf --add-header=&amp;quot;Cookie: SESSIONID=cookie-väärtus\n&amp;quot; --server=ip.num.b.er --uri=&amp;quot;/midagi/aaa.jsp&amp;quot; --rate=1 --timeout=5 --ssl  --num-conn 1000 --ra 10 --print-reply=header&lt;br /&gt;
&lt;br /&gt;
debian chroot keskkonna tekitamine - bash# debootstrap sarge /home/sarge-chroot http://ftp.aso.ee/debian&lt;br /&gt;
&lt;br /&gt;
file - näitab, mis arhitektuuri binaariga on tegu või näiteks, mis kodeeringus on tekstifail&lt;br /&gt;
&lt;br /&gt;
PDFCreator - virtuaalne printer, http://sourceforge.net/projects/pdfcreator/&lt;br /&gt;
&lt;br /&gt;
Poster - Firefoxi laiendus, nö võimaldab päringuid esitada, https://addons.mozilla.org/firefox/2691/&lt;br /&gt;
&lt;br /&gt;
sata ketaste eluolu - smartctl -d ata -a /dev/sdb&lt;br /&gt;
&lt;br /&gt;
growisofs -dvd-compat -Z /dev/dvd=/winxp.sp2.11in1.iso&lt;br /&gt;
&lt;br /&gt;
unixi epoch aja konvertimine - perl -pe &#039;s/^\d+\.\d+/localtime($&amp;amp;)/e;&#039; p.txt&lt;br /&gt;
&lt;br /&gt;
mount -t smbfs -o workgroup=AUUL,username=imre,password=parool,uid=imre,gid=imre //192.168.1.3/imre /cdrom&lt;br /&gt;
&lt;br /&gt;
vanadele kõvaketastele failisüsteemide moodustamiseks - mke2fs -j -c -c /dev/sda1&lt;br /&gt;
&lt;br /&gt;
otsekohene kopeerimine - 1. andmete sihtpunktiks olevas arvutis seada kuulama netcat, &#039;nc -l -p 1010 | tar xf -&#039;; 2. andmete allikaks olevas arvutis kopeerida socket&#039;i abil, &#039;socket -p &#039;tar cf - katalooginimi&#039; 192.168.1.41 1010&#039;&lt;br /&gt;
&lt;br /&gt;
ethtool eth3 - esitab võrguseadme parameetrid&lt;br /&gt;
&lt;br /&gt;
parted - alternatiiv fdisk programmile kõvaketta partitsioneerimiseks, tundub, et on eduline, kuna saab hakkama erinevalt fdiskist suurte partitsioonidega&lt;br /&gt;
&lt;br /&gt;
auguga faili tekitamine - dd if=/dev/zero of=fs.img bs=1024 seek=2000000 count=0&lt;br /&gt;
&lt;br /&gt;
Xming - MS Windowsi jaoks sobiv X Window Server, tundub, et käepärasem kasutada kui Cygwin/X&lt;br /&gt;
&lt;br /&gt;
Apache sertifikaatide hashimine - hash=`openssl x509 -hash -in KLASS3-SK.PEM.cer -noout` &amp;amp;&amp;amp;  &lt;br /&gt;
ln -s KLASS3-SK.PEM.cer $hash.0&lt;br /&gt;
&lt;br /&gt;
Apache sertifikaatide hashimine - c_rehash (nt Debiani puhul openssl paketi osa)&lt;/div&gt;</summary>
		<author><name>Triinu</name></author>
	</entry>
	<entry>
		<id>https://kuutorvaja.eenet.ee/w/index.php?title=Packet_Filter&amp;diff=2926</id>
		<title>Packet Filter</title>
		<link rel="alternate" type="text/html" href="https://kuutorvaja.eenet.ee/w/index.php?title=Packet_Filter&amp;diff=2926"/>
		<updated>2007-01-31T13:43:47Z</updated>

		<summary type="html">&lt;p&gt;Triinu: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;&#039;&#039;&#039;Packet Filter&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
 Võimalused&lt;br /&gt;
  NAT&lt;br /&gt;
  QoS&lt;br /&gt;
  CARP&lt;br /&gt;
  Pfsync&lt;br /&gt;
  Authpf&lt;br /&gt;
  Ftp-proxy&lt;br /&gt;
 &lt;br /&gt;
 Kasutamine&lt;br /&gt;
  Aktiveerimine&lt;br /&gt;
  Seadistamine &lt;br /&gt;
  Makrod&lt;br /&gt;
  Näited&lt;br /&gt;
 &lt;br /&gt;
 Tabelid&lt;br /&gt;
 Järjekorrad&lt;br /&gt;
 Filtrid&lt;br /&gt;
 Reeglite süntaks&lt;br /&gt;
 Lisavõimalused&lt;br /&gt;
  Pfw&lt;br /&gt;
  Pf.vim&lt;br /&gt;
 Praktiline Osa. Tulemüüri seadistamine&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Packet Filter&#039;&#039;&#039; (lüh. PF) on OpenBSD tulemüür, alates OpenBSD versioonist 3.0, mille on kirjutanud 2001. aasta suvel Daniel Hartmeier. Packet Filter kirjutati asendamaks Darren Reed&#039;i kirjutatud IPFilter tulemüüri, kes sattus OpenBSD arendajatega konflikti, keelates oma koodi muuta. Darren Reed väitis, et tema kirjutatud tulemüür IPFilter kasutab BSD litsentsi, kuid tegelikult oli ta BSD litsentsi sõna-sõnalt kopeerinud, jättes välja vaid osa, mis lubab koodi muutmist. Tülide lahendamise asemel otsustas OpenBSD projektijuht, Theo De Raadt uue tulemüüri kasuks. 29.05.2001 eemaldati IPFilter&#039;i kood OpenBSD lähtekoodist. Järgnevad kaks kuud oli OpenBSD operatsioonisüsteem ilma tulemüürita, Packet Filter jõudis OpenBSD lähtekoodi 24.06.2001. Paaril järgneval kuul töötasid arendajad meeletu koormusega, ning OpenBSD 3.0 versiooni valmides sisaldas see ka juba Packet Filter tulemüüri. Oma eluaja jooksul on see tulemüür väga kiirelt arenenud ning omab teiste tulemüüride ees mitmeid eeliseid. Tulemüüri reeglite süntaks on sarnane IPFilter&#039;i omale, kuid seda on lihtsustatud kasutusmugavuse tõstmiseks. Packet Filter on tihedalt seotud võrgunduses levinud NAT ning QoS tehnoloogiatega, lubamaks suuremat paindlikkust ning vastupidavust. Packet Filter on porditud ka FreeBSD, NetBSD ning DragonFlyBSD operatsioonisüsteemidele.&lt;br /&gt;
 &lt;br /&gt;
&#039;&#039;&#039;Võimalused&#039;&#039;&#039;&lt;br /&gt;
Packet Filter on, nagu iga teinegi UNIX-i rakendus, väga paindlik. Seega arendajatel on lihtne koodi uuendada ning uusi võimalusi lisada. Packet Filter areneb väga kiiresti ning pakub palju võimalusi, mida tihtipeale leiab ainult tasulistest tulemüüridest. &lt;br /&gt;
Siinkohal on lahti seletatud tähelepanuväärseimad võimalused.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;NAT&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
&amp;quot;Network Address Translation&amp;quot;. Privaatse või registreerimata IP-aadressi asendamine ametliku IP-aadressiga. NAT annab organisatsioonidele suurema paindlikkuse aadresside kasutamiseks oma kohtvõrkudes ja lubab kasutajatel vastavalt vajadusele ühiselt kasutada piiratud arvu registreeritud IP-aadresse. NAT’i kasutamine teeb ka raskemaks võrgu ründamise väljastpoolt, sest sisemisi IP-aadresse ei edastata üle Interneti. Võrguaadresside ümbernimetamine toimub harilikult ruuteris või tulemüüris.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;QoS&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
&amp;quot;Quality of Service&amp;quot;. Tegeleb andmeedastuskiiruste, vigade esinemise sageduste ja teiste karakteristikute mõõtmise, parandamise ja teatud määral garanteerimisega. QoS on eriti oluline laiaribalise video- ja multimeediuminfo pideva ülekande puhul. Sellise info töökindel edastamine üle avalike sidevõrkude on tavalisi protokolle kasutades raske. Interneti ressursside reserveerimise protokolli (RSVP) kasutamisel saab läbi lüüsihosti liikuvaid pakette organiseerida eelnevalt paika pandud poliitika ja reserveerimiskriteeriumide alusel.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;ALTQ&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
&amp;quot;ALTernate Queueing framework for BSD UNIX&amp;quot;. ALTQ võimaldab pakettide järjestamist ning teisi QoS-i komponente, mis on vajalikud QoS-i edukaks teostamiseks võrgus, seda kasutatakse enamasti BSD operatsioonisüsteeme kasutatavates ruuterites. ALTQ on osa FreeBSD ja NetBSD distributsioonidest ning on integreeritud Packet Filter tulemüüri.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;CARP&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
&amp;quot;The Common Address Redundancy Protocol&amp;quot;. CARP on protokoll, mis lubab samas sisevõrgus asuvatel arvutitel jagada IP-aadressite paari, peamine eesmärk on võimaldada tagavararuuteri kasutamist. Juhul, kui ruuter peaks mingil põhjusel töökõlbmatuks muutuma, näiteks riistvara vea tõttu, saab tagavararuuter tema töö kohe üle võtta, tekitamata võrgus tõrkeid ning jäädes kasutajatele märkamatuks.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Pfsync&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
Pfsync on virtuaalne võrguliides, mis peegeldab Packet Filter tulemüüri tabelis tehtud muudatusi, tcpdump käsku kasutades saab seda reaalajas jälgida, samuti oskab pfsync enda muudatusi üle võrgu laiali saata ning neid ka vastu võtta, näiteks mitmete võrgus asuvate tulemüüride reeglite sünkroniseerimiseks.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Authpf&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
Authpf on kasutajaliides autentivatele võrgulüüsidele, autentiva võrgulüüsi kasutamiseks tuleb kasutajatel ennast tuvastada enne, kui lüüs nende võrguliikluse läbi laseb. Seda saab kasutada näiteks ainult kasutaja sessiooni ajal kehtivate tulemüürireeglite automatiseeritud loomiseks ja kustutamiseks. &lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Ftp-proxy&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
Ftp-proxy on OpenBSD implementatsioon puhverserverist FTP-protokollile, see võimaldab NAT-ruuteri taga asuvatel võrguklientidel kasutada FTP-protokolli, olles tulemüüri ja välise liikluse vahendaja, lisades ning eemaldades vajadusel Packet Filter tulemüüri reegleid.&lt;br /&gt;
 &lt;br /&gt;
&#039;&#039;&#039;Kasutamine&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Aktiveerimine&#039;&#039;&#039;&lt;br /&gt;
Packet Filter tulemüüri käivitamiseks OpenBSD operatsioonisüsteemi käivitudes tuleb lisada /etc/rc.conf.local rida pf=YES, ajutiselt saab tulemüüri käivitada ning sulgeda pfctl käsu abil.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Seadistamine&#039;&#039;&#039;&lt;br /&gt;
Packet Filter laeb operatsioonisüsteemi käivitumisel vaikimisi reeglid /etc/pf.conf failist. See on tekstifail, mis laetakse pfctl käsuga ning sisaldab tulemüüri reegleid. Erinevatele rakendustele saab määrata ka teistes failides asuvaid reegleid, seadistusfailis olevaid tühje ridu ignoreeritakse. Seadistusfail pf.conf koosneb seitsmest osast.&lt;br /&gt;
 &lt;br /&gt;
&#039;&#039;&#039;Makrod&#039;&#039;&#039;&lt;br /&gt;
Makrod on kasutaja poolt määratud muutujad, mis kujutavad mingit hulka IP-aadresse, portide numbreid või võrguliideseid, makrod võimaldavad reegleid lihtsamini loetavaks ja kergemini hallatavaks muuta. Makrod võivad sisaldada numbreid või tähti, neid saab laiendada ka nimekirjadeks ning grupeerida, hilisemalt kasutatakse makrode muutujanimena dollarimärki. Siinkohal on välja toodud mõned näited reeglite lihtsustamiseks.&lt;br /&gt;
&lt;br /&gt;
 extIF = &amp;quot;xl0&amp;quot;&lt;br /&gt;
 See makro määrab välise võrguliidese xl0 nimeks extIF, see lihtsustab hilisemates reeglites välise võrguliidese kasutamist ning välistab võimaluse teiste liidestega segamini ajada.&lt;br /&gt;
 &lt;br /&gt;
 kliendid1 = &amp;quot;{ 192.168.0.2, 192.168.0.3  }&amp;quot;&lt;br /&gt;
 See makro määrab IP-aadressite hulga 192.168.0.2-192.168.0.3 ühise grupi alla, see lihtsustab hilisemates reeglites mingi hulga klientide poole pöördumist. Näiteks ühe reegliga saab kogu grupil keelata liikluse, ei pea igale kliendile eraldi reeglit tegema.&lt;br /&gt;
 &lt;br /&gt;
 kliendid1 = &amp;quot;{ 192.168.0.2, 192.168.0.3  }&amp;quot;&lt;br /&gt;
 kliendid2 = &amp;quot;{ 192.168.1.2, 192.168.1.3  }&amp;quot;&lt;br /&gt;
 kliendidKOKKU = &amp;quot;{&amp;quot; $kliendid1 $kliendid2 &amp;quot;}&amp;quot;&lt;br /&gt;
Need makrod määravad IP-aadressite hulgad gruppideks ning loovad ühise grupi, mis lihtsustab kõikidele klientidele ühiste reeglite kirjutamist.&lt;br /&gt;
 &lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Tabelid&#039;&#039;&#039;&lt;br /&gt;
Tabelites hoitakse IP-aadresse. Otsingud tabelitest on märksa kiiremad kui otsingud nimekirjadest, mistõttu sobivad tabelid suure hulga aadressite hoidmiseks. Tabeleid saab siduda ka ümbersuunamise ning filtrite reeglitega. Tabeleid tähistatakse nurksulgudega. Tabelitele saab lisana omistada kahte erinevat olekut - konstantne e. const ning jääv e. persist. Konstantse tabeli puhul saab tabelit muuta ainult laadimata olekus, muidu saab neid laadida ka töötades, pfctl käsu abil.&lt;br /&gt;
Jääva olekuga tabelit hoitakse mälus ka siis, kui sellega ükski reegel seotud pole, muidu kustutatakse tabel viimase seotud reegli kustutamisel automaatselt. Tabeleid saab laadida ka tekstifailidest, kasutades file muutujat.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
 table &amp;lt;kliendid1&amp;gt; { 192.168.1.0/24, !192.168.1.1 }&lt;br /&gt;
Kliendid1 tabelist eraldatakse 192.168.1.1 aadressiga klient.&lt;br /&gt;
&lt;br /&gt;
 table &amp;lt;kliendid2&amp;gt; persist file &amp;quot;/etc/kliendid2nimekiri&amp;quot;&lt;br /&gt;
Kliendid2 tabel loetakse sisse failist /etc/kliendid2nimekiri, jäävasse olekusse.&lt;br /&gt;
&lt;br /&gt;
 block in on xl0 from &amp;lt;kliendid2&amp;gt;to any&lt;br /&gt;
 pass  in on xl0 from &amp;lt;kliendid1&amp;gt; to any&lt;br /&gt;
Kliendid2 grupile keelatakse ning kliendid grupile lubatakse väline juurdepääs.&lt;br /&gt;
 &lt;br /&gt;
&lt;br /&gt;
Muutujad Packet Filteri tööprotsessi muutmiseks.&lt;br /&gt;
 set block-policy option - Määrab filtrite ülesanded pakettide blokeerimisel&lt;br /&gt;
 set debug option - Määrab tagasiside taseme&lt;br /&gt;
 set fingerprints file - Määrab avalike võtmete faili&lt;br /&gt;
 set limit option value - Määrab PF piirangud&lt;br /&gt;
 set loginterface interface - Määrab logiliidese, vaikimis pflogd0&lt;br /&gt;
 set optimization option - Määrab optimeerimise taseme&lt;br /&gt;
 set skip on interface - Määrab ignoreeritavad võguliidesed&lt;br /&gt;
 set state-policy option - Määrab pakettide hoidmise reeglid&lt;br /&gt;
 set timeout option value - Määrab ooteaja&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
 set loginterface dc0&lt;br /&gt;
Määrab logimisliideseks dc0 võrguliidese.&lt;br /&gt;
&lt;br /&gt;
 set skip on lo0&lt;br /&gt;
Määrab Io0 liidese ignoreeritavaks, sellele seadmele ei rakendata ühtegi reeglit.&lt;br /&gt;
 &lt;br /&gt;
Küürimine&lt;br /&gt;
Küürimine on pakettide normaliseerimine, mille eesmärk on vältida fragmenteerunud pakettide paljunemist, keelatakse ka valede lippudega TCP-paketid. Küürimise süntaks on väga sarnane filtrite ülesehitusega ning seda on lihtne oma tulemüüri juurutada.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
 scrub    on xl0 all reassemble tcp&lt;br /&gt;
Normaliseerib kõik TCP-paketid, mis läbivad xl0 võrguliidest.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Järjekorrad&#039;&#039;&#039;&lt;br /&gt;
Operatsioonisüsteemi valitud pakettide järjekorrast sõltub võrgu jõudlus, näiteks seades suuremat kiirust vajavad protokollid teistest ettepoole ja seega tõstes töökiirust. Pakettide järjestamise strateegiad tulenevad valitud scheduler&#039;ist ehk plaanurist. Packet Filter toetab pakettide järjestamist klassi (CBQ) ning paketi prioriteedi (PRIQ) järgi.&lt;br /&gt;
&lt;br /&gt;
 altq on xl0 cbq bandwidth 2Mb queue&lt;br /&gt;
Määrab xl0 võrguliidesele CBQ plaanuriga 2Mb piirangu.&lt;br /&gt;
 &lt;br /&gt;
&#039;&#039;&#039;Tõlkimine&#039;&#039;&#039;&lt;br /&gt;
Võrguaadressite tõlkimine (NAT) võimaldab peita sisevõrgu kliendid ühe välise IP-aadressi taha, suurendamaks turvalisust sisevõrku sissepääsu raskendades.&lt;br /&gt;
&lt;br /&gt;
 nat on xl0 from 192.168.1.0/24 to any -&amp;gt; 192.168.2.0&lt;br /&gt;
Peidab kõik 192.168.1.0/24 alamvõrgust tulevad IP-aadressi 192.168.2.0 taha.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Filtrid&#039;&#039;&#039;&lt;br /&gt;
Pakettide filtreerimine on valikuline andmete voo keelamine ja lubamine, tuginedes kindlaksmääratud filtritele. Filtrites määratakse ära, millised paketid läbi lastakse ja millised peatatakse. Saabunud paketti võrreldakse filtritega, filtrid läbitakse järjestikuliselt, viimases filtris määratud tegevus rakendatakse tööle, kui tegevust ei leita, on vaikimisi seade pakett läbi lasta.&lt;br /&gt;
 &lt;br /&gt;
&#039;&#039;&#039;Reeglite süntaks&#039;&#039;&#039;&lt;br /&gt;
Reeglite lihtsustatud süntaks :&lt;br /&gt;
&lt;br /&gt;
 action [direction] [log] [quick] [on interface] [af] [proto protocol] \&lt;br /&gt;
   [from src_addr [port src_port]] [to dst_addr [port dst_port]] \&lt;br /&gt;
   [flags tcp_flags] [state]&lt;br /&gt;
&lt;br /&gt;
 action - Pakettide rakendamine&lt;br /&gt;
 direction  - Pakettide suund&lt;br /&gt;
 log - Logitase&lt;br /&gt;
 quick - Kui pakett vastab quick muutujaga reeglile, kontrollitakse vaid esimest reeglit&lt;br /&gt;
 interface - Võrguliides&lt;br /&gt;
 af – IP-protokolli tüübi määrang&lt;br /&gt;
 src_addr, dst_addr - Päritoluaadress ning suundaadress&lt;br /&gt;
 src_port, dst_port - Päritoluport ning suundport&lt;br /&gt;
 tcp_flags - Määrab pakettide TCP-lipud&lt;br /&gt;
 state - Pakettide hoidmise reeglid&lt;br /&gt;
 &lt;br /&gt;
&#039;&#039;&#039;Lisavõimalused&#039;&#039;&#039;&lt;br /&gt;
Packet Filter on ünsa populaarne ja leiab pidevalt uusi kasutajaid, paljud kasutajad on aga proovinud lisada Packet Filter&#039;ile mitmeid lisavõimalusi, mis muudaksid seadistamise ning haldamise lihtsamaks, siinkohal on välja toodud lühike ülevaade kahest tuntumast lisast.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Pfw&#039;&#039;&#039; [http://www.allard.nu/pfw/ http://www.allard.nu/pfw/]&lt;br /&gt;
Pfw on veebipõhine kasutajaliides Packet Filter tulemüürile, eesmärk on olla sama efektiivne ja kasulik kui PG ning samal ajal pakkuda võimalust tulemüüri läbi veebibrauseri seadistada (lisa 2). Pfw põhineb PHP-l ning toetab perl-i mooduleid, Pfw on tasuta saadaval ning kasutab BSD-litsentsi.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Pf.vim&#039;&#039;&#039; [http://www.vim.org/scripts/script.php?script_id=341 http://www.vim.org/scripts/script.php?script_id=341]&lt;br /&gt;
Pf.vim on Vim-i süntaksiskript, mis kohandab Vim-i Packet Filter&#039;i konfiguratsioonifaili pf.conf töötlemiseks, pf.vim oskab pf.conf faili sisu tüübi järgi esile tõsta ning värviliseks muuta, näiteks kõik kehtivad reeglid kuvatakse rohelises kirjas. Pf.Vim süntaksiskripti on loonud Camiel Dobbelaar aastal 2002.&lt;br /&gt;
 &lt;br /&gt;
&#039;&#039;&#039;Praktiline Osa. Tulemüüri seadistamine&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
Tulemüüri automaatseks käivitamiseks tuli /etc/rc.conf.local faili lisada rida pf=YES, operatsioonisüsteemi käivitusskriptid laevad sellest failist käivitatavate rakendust nimekirja, tulemüüri saab ka käsitsi käsurealt käivitada.&lt;br /&gt;
 pfctl -e -f /etc/pf.conf&lt;br /&gt;
&lt;br /&gt;
Selle käsuga käivitatakse tulemüür ja laetakse reeglid /etc/pf.conf failist. Tulemüüri seadistamisel kasutas autor Vim tekstiredaktorit. Reeglid loodi sellised, et sisevõrgus olevatel klientidel on juurdepääs internetile, juurdepääs väljastpoolt sisevõrku puudub ning sisevõrgu kliendid peidetakse ühise IP-aadressi taha, sisevõrgust välja lubati http, https ja pop3 protokollide kasutamine, täielik tabel on toodud välja lisana (lisa 1).&lt;br /&gt;
Tulemüüri reeglite kirjutamine :&lt;br /&gt;
&lt;br /&gt;
 extIF=&amp;quot;rl0&amp;quot;&lt;br /&gt;
 intIF=&amp;quot;xl0&amp;quot;&lt;br /&gt;
 lubatud=&amp;quot;{ 80, 110, 443 }&amp;quot;&lt;br /&gt;
 #Võrguliidestele ning lubatud protokollidele määrati makrod, lihtsustamaks hilisemat pöördumist.&lt;br /&gt;
 &lt;br /&gt;
 set loginterface $extIF&lt;br /&gt;
 set skip on lo&lt;br /&gt;
 #Lülitati sisse välise liidese logimine ning loopack liidese ignoreerimine.&lt;br /&gt;
 &lt;br /&gt;
 scrub in all&lt;br /&gt;
 scrub out all&lt;br /&gt;
 #Lülitati sisse kõikide pakettide normaliseerimine.&lt;br /&gt;
  &lt;br /&gt;
 nat on $extIF from !($extIF) -&amp;gt; ($extIF:0)&lt;br /&gt;
 #Lülitati sisse NAT välisel võrguliidesel. &lt;br /&gt;
 &lt;br /&gt;
 block in&lt;br /&gt;
 pass out keep state&lt;br /&gt;
 antispoof quick for { lo $intIF }&lt;br /&gt;
 pass in on $extIF inet proto tcp from any to ($extIF) port $lubatud flags S/SA keep state&lt;br /&gt;
 #Keelati kõik sisenev liiklus peale makros $lubatud kirjeldatud portidelt, lubati võrgust väljuv liiklus ning välistati siseneval liiklusel spoof’imine.&lt;br /&gt;
 &lt;br /&gt;
 pass in inet proto icmp all keep state&lt;br /&gt;
 pass out inet proto icmp all keep state&lt;br /&gt;
 #Lubatakse võrku sisenevad ja väljuvad pingid.&lt;br /&gt;
 &lt;br /&gt;
 #Lubati väljuv liiklus. &lt;br /&gt;
 pass quick on $intIF&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
===lingid===&lt;br /&gt;
http://spootnik.org/hoststated/hoststated_introduction.html&lt;/div&gt;</summary>
		<author><name>Triinu</name></author>
	</entry>
	<entry>
		<id>https://kuutorvaja.eenet.ee/w/index.php?title=Talk&amp;diff=2925</id>
		<title>Talk</title>
		<link rel="alternate" type="text/html" href="https://kuutorvaja.eenet.ee/w/index.php?title=Talk&amp;diff=2925"/>
		<updated>2007-01-31T13:11:26Z</updated>

		<summary type="html">&lt;p&gt;Triinu: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;Unix suhtlusprogramm talk&lt;br /&gt;
&lt;br /&gt;
Populaarne suhtlustarkvara 80-ndatel ja varastel 90-ndatel&lt;br /&gt;
&lt;br /&gt;
[[Image:T4 3.gif]]&lt;br /&gt;
&lt;br /&gt;
Kasutada saab seda veel praegugi näiteks FreeBSD&#039;s&lt;br /&gt;
kommenteerides trelli eest /etc/inetd.conf&#039;is real&lt;br /&gt;
&lt;br /&gt;
 ntalk  dgram   udp     wait    tty:tty /usr/libexec/ntalkd     ntalkd&lt;br /&gt;
&lt;br /&gt;
ja laadida inetd reeglid&lt;br /&gt;
&lt;br /&gt;
 killall inetd -HUP&lt;/div&gt;</summary>
		<author><name>Triinu</name></author>
	</entry>
	<entry>
		<id>https://kuutorvaja.eenet.ee/w/index.php?title=Crontab&amp;diff=2924</id>
		<title>Crontab</title>
		<link rel="alternate" type="text/html" href="https://kuutorvaja.eenet.ee/w/index.php?title=Crontab&amp;diff=2924"/>
		<updated>2007-01-31T13:10:27Z</updated>

		<summary type="html">&lt;p&gt;Triinu: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;&#039;&#039;&#039;crond, crontab&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
 Sissejuhatus&lt;br /&gt;
 Kuidas crond töötab&lt;br /&gt;
 crontab&#039;i süstaksi selgitus&lt;br /&gt;
 at&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Sissejuhatus&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
Tihti on arvutis vaja perioodiliselt käivitada ühte või teist programmi. Musternäiteks on kasutajate kodukataloogide arhiveerimine või kui näiteks teie serveril on dial-up ühendus välismaailma püsiühendusega maili serveriga ning oluline on kirju vahetada kindlatel kellaagadel. Aga võib ka naljapärast näiteks iga veerandtunni tagant lasta arvutil ütelda, mis kell on. Selleks on vaja ka helikaarti, aga kellel tänapäeval helikaarti pole :)&lt;br /&gt;
&lt;br /&gt;
Viimane aeg on ütelda, et OS&#039;iga suhteliselt standartsena kaasapandav bootimisel käimatõmmatav vaim nimega crond tegeleb aja möödumise jälgimise ja sellele vastavalt reageerimisega. Kuidas konkreetselt reageerida, vaatab crond järele nn crontab&#039;i failidest.&lt;br /&gt;
 &lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Kuidas crond töötab&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
Iga kasutajaga on seotud crond&#039;ile olulises kataloogis /var/spool/cron/crontabs üks fail, mis kannab kasutaja nime ja kasutajal on õigus selle sisu redigeerida. Selle sisu muudetakse mitte vahetult, vaid käsuga crontab -e (fail on root&#039;i oma; nagu /etc/passwd).&lt;br /&gt;
&lt;br /&gt;
root&#039;ile pole kurjast aeg-ajalt neid crontab faile sirvida, mitte sisulistel vaid tehnilistel kaalutlustel. Seda saab teha näiteks&lt;br /&gt;
&lt;br /&gt;
 bash# crontab -l imre&lt;br /&gt;
&lt;br /&gt;
Niisiis, crond kasutab nn crontab&#039;i faile, et teada kuna, millised ja kelle õigustes programm käivitada.&lt;br /&gt;
&lt;br /&gt;
Oletame, et kasutaja imre tahab, et iga päev kell 11.45 hommikul mängiks arvuti muusikapala. Selleks tuleb tal editeerida sellise sisuga crontab:&lt;br /&gt;
&lt;br /&gt;
 $ export VISUAL=/usr/bin/joe&lt;br /&gt;
&lt;br /&gt;
 $ crontab -e&lt;br /&gt;
&lt;br /&gt;
 45 11  * * * /usr/local/bin/mpg123 /usr/data/mp3/muusikapala.mp3&lt;br /&gt;
&lt;br /&gt;
Siin kangemad mehed, kes on harjunud kasutama vi&#039;d ei pruugi vaikimisi editoriks joe&#039;d defineerida, aga mulle on see harjumuspärasem.&lt;br /&gt;
&lt;br /&gt;
Ja enne selgitusi ka teine näide:&lt;br /&gt;
&lt;br /&gt;
Olgu soov kirjutada kuhugi faili mingil põhjusel iga 10 minuti tagant, kes süsteemis sees on, kasvõi näiteks põhjusel leida üles kõige suuremad kasutajad, kuigi selleks on tõenäoliselt ka muid võimalusi.&lt;br /&gt;
&lt;br /&gt;
 */10 *  * * * /usr/bin/w &amp;gt;&amp;gt; ~/keson&lt;br /&gt;
 &lt;br /&gt;
 &lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;crontab&#039;i süntaksi selgitus&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
crontabis koosnevad sissekanded ridadest, kus on nn 6 välja (kokku mitte pikem kui 1 024 sümbolit reas)&lt;br /&gt;
 &lt;br /&gt;
&lt;br /&gt;
 #iga kuu 1. 10. ja 20. kuupäeval kell 2 hommikul; samuti esmaspäevadel&lt;br /&gt;
 #väljund liita faili ~/kellaaeg&lt;br /&gt;
 #minute   hour     day         month  dayofweek     command&lt;br /&gt;
 #minut    tund     kuupäev     kuu    nädalapaev    käsk&lt;br /&gt;
  0        2        1,10,20     *        mon         date &amp;gt;&amp;gt; ~/kellaeg&lt;br /&gt;
 &lt;br /&gt;
Kui näidata ära nii kuupäev kui ka nädalapäev, siis need nö OR&#039;takse, st tegevus sooritatakse, kui klapib kas nädalapäev või kuupäev või mõlemad.&lt;br /&gt;
&lt;br /&gt;
Iga poole tunni tagant kogu aeg&lt;br /&gt;
&lt;br /&gt;
 #sama asi&lt;br /&gt;
 minut    tund     päev     kuu    nädalapäev   käsk&lt;br /&gt;
  */30     *        *        *        *       date &amp;gt;&amp;gt; ~/kellaeg&lt;br /&gt;
 &lt;br /&gt;
&lt;br /&gt;
 #iga viie minuti tagant tööpäeviti&lt;br /&gt;
 minut    tund     päev     kuu     nädalapäev    käsk&lt;br /&gt;
  */5      *        *        *       mon-fri      date &amp;gt;&amp;gt; ~/kellaeg&lt;br /&gt;
 &lt;br /&gt;
&lt;br /&gt;
 #iga päev kell 9:30, 10:30, ... 16:30 ja 21:30&lt;br /&gt;
 minut    tund     päev     kuu    nädalapäev    käsk&lt;br /&gt;
  30   9-17/2,21    *        *         *         date &amp;gt;&amp;gt; ~/kellaeg 2&amp;gt;&amp;amp;1&lt;br /&gt;
&lt;br /&gt;
Veel tuleb mainida, et viimases näites on kogu väljund, st ka võimalikud vead (stdoutja stderr), suunatud faili. Kui programmi täitmisel tekib stdout või stderr ning sellega midagi ette ei võeta, siis saadetakse töö omanikule sendmail&#039;iga kiri, kus on see väljund sees.&lt;br /&gt;
&lt;br /&gt;
Muide, crontab&#039;i käsud on soovitav anda pika teega;, sest kui crontab käivitab mõne programmi kasutaja õigustes, siis on PATH piiratum kui muidu on kasutaja end tavaliselt sisse loginud.&lt;br /&gt;
&lt;br /&gt;
Lõpuks, kui crontab&#039;i süntaks tundub olevat ebapiisav, siis alati on võimalik tõmmata crontab&#039;ist esiteks script üles, mis enne kõnealuse töö käivitamist teeb näiteks veel täiendava kontrolli arvuti koormuse ja aja suhtest.&lt;br /&gt;
 &lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;at&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
See on sarnase funktsiooniga programm (õigemini öeldes komplekt programme, aga tegelikult vist hard linke :)), erinevusega, et sooritab ühekordselt ettemääratud töö tulevikus. Ilmselt saab ka nii teha, et peale tolle töö sooritamise ta annab süsteemile teada uuest at&#039;ist jne.&lt;br /&gt;
&lt;br /&gt;
Aga käske antakse nii:&lt;br /&gt;
&lt;br /&gt;
käskude fail &#039;kasud&#039;:&lt;br /&gt;
&lt;br /&gt;
 cal &amp;gt;&amp;gt; /home/imre/proov/kalender&lt;br /&gt;
&lt;br /&gt;
(ehk on too fail igaks juhuks hea enne touch&#039;iga valmis teha ja veenduda, et õigused on sobivad)&lt;br /&gt;
&lt;br /&gt;
ning seejärel käsk&lt;br /&gt;
&lt;br /&gt;
 bash# at -f kasud now + 1 minute&lt;br /&gt;
&lt;br /&gt;
näitab süsteemile, et asi läheb sappa (queue&#039;sse)&lt;br /&gt;
&lt;br /&gt;
ning nii saate näha, mis tööd on queue&#039;s:&lt;br /&gt;
&lt;br /&gt;
 bash# atq&lt;br /&gt;
 Date                    Owner   Queue   Job#&lt;br /&gt;
 08:52:00 03/19/99       root    c       10&lt;br /&gt;
 &lt;br /&gt;
&lt;br /&gt;
Seda, kas kasutajatele ja kui, siis millistele kasutajatele, anda at&#039; imise õigus, saab määrata failidega /etc/at.allow ja /etc/at.deny.&lt;br /&gt;
&lt;br /&gt;
Queue&#039;id on tegelikult a - z ja A- z. Neil on erinev prioriteet, mida peaks  samuti arvestama.&lt;/div&gt;</summary>
		<author><name>Triinu</name></author>
	</entry>
	<entry>
		<id>https://kuutorvaja.eenet.ee/w/index.php?title=Pppoe_freebsd&amp;diff=2923</id>
		<title>Pppoe freebsd</title>
		<link rel="alternate" type="text/html" href="https://kuutorvaja.eenet.ee/w/index.php?title=Pppoe_freebsd&amp;diff=2923"/>
		<updated>2007-01-31T12:33:46Z</updated>

		<summary type="html">&lt;p&gt;Triinu: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;FreeBSD pppoe &lt;br /&gt;
&lt;br /&gt;
 default:&lt;br /&gt;
  set device PPPoE:&amp;lt;võrgukaardin nimi tavaliselt fxp0 fl0 ep0 jms&amp;gt;&lt;br /&gt;
  &lt;br /&gt;
  set ifaddr 10.0.0.1/0 10.0.0.2/0&lt;br /&gt;
  set log phase tun &lt;br /&gt;
  enable dns&lt;br /&gt;
 &lt;br /&gt;
 elion:&lt;br /&gt;
  set authname &amp;lt;username&amp;gt;&lt;br /&gt;
  set authkey &amp;lt;pass&amp;gt;&lt;br /&gt;
  set dial&lt;br /&gt;
  set login&lt;br /&gt;
  add default HISADDR&lt;br /&gt;
&lt;br /&gt;
Käivitame käsurealt logimise&lt;br /&gt;
&lt;br /&gt;
 /usr/sbin/ppp -quiet -ddial elion&lt;br /&gt;
&lt;br /&gt;
Kui kõik õnnestub, näitab ifconfig uut seadet tun0&lt;br /&gt;
&lt;br /&gt;
rc.conf&#039;i&lt;br /&gt;
automaatseks laadimiseks&lt;br /&gt;
&lt;br /&gt;
 ppp_enable=&amp;quot;YES&amp;quot;&lt;br /&gt;
 ppp_mode=&amp;quot;ddial&amp;quot;&lt;br /&gt;
 ppp_profile=&amp;quot;elion&amp;quot;&lt;br /&gt;
 ppp_nat=&amp;quot;NO&amp;quot;&lt;br /&gt;
&lt;br /&gt;
Ebastabiilse ühenduse tarvis saab kasutada skripti võrgu kontrolliks ja uuestiühendamiseks&lt;br /&gt;
&lt;br /&gt;
 #!/bin/sh&lt;br /&gt;
 if ping -i 3 -c 2 -q 194.126.101.109; then # www.estpak.ee&lt;br /&gt;
 # nett korras&lt;br /&gt;
 echo &amp;quot;OK `date`&amp;quot; &amp;gt;&amp;gt; /root/netstatus.log&lt;br /&gt;
 else&lt;br /&gt;
 # nett maas!&lt;br /&gt;
 echo &amp;quot;PANIC! `date`&amp;quot; &amp;gt;&amp;gt; /root/netstatus.log&lt;br /&gt;
 killall -9 ppp;&lt;br /&gt;
 sleep 10;&lt;br /&gt;
 /usr/sbin/ppp -quiet -ddial elion;&lt;br /&gt;
 sleep 10;&lt;br /&gt;
 fi&lt;br /&gt;
&lt;br /&gt;
cron võiks seda käivitada kord viie minuti tagant&lt;br /&gt;
&lt;br /&gt;
 */5 * * * * root /rada/kping.sh &amp;gt; /dev/null&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Faili netstatus kirjutatakse järgnevalt&lt;br /&gt;
&lt;br /&gt;
 bash# cat netstatus.log&lt;br /&gt;
 OK Sat Oct 9 13:20:04 EEST 2004&lt;br /&gt;
 OK Sat Oct 9 13:25:03 EEST 2004&lt;br /&gt;
 OK Sat Oct 9 13:30:04 EEST 2004&lt;br /&gt;
 PANIC! Sat Oct 9 13:35:22 EEST 2004&lt;/div&gt;</summary>
		<author><name>Triinu</name></author>
	</entry>
	<entry>
		<id>https://kuutorvaja.eenet.ee/w/index.php?title=Apache_ssl&amp;diff=2922</id>
		<title>Apache ssl</title>
		<link rel="alternate" type="text/html" href="https://kuutorvaja.eenet.ee/w/index.php?title=Apache_ssl&amp;diff=2922"/>
		<updated>2007-01-31T12:32:40Z</updated>

		<summary type="html">&lt;p&gt;Triinu: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;Apache ssl ajutise self-signed sertifikaadi genereerimine&lt;br /&gt;
&lt;br /&gt;
Näite aluseks FreeBSD&lt;br /&gt;
&lt;br /&gt;
 mkdir /usr/local/etc/apache2/ssl.key/&lt;br /&gt;
 mkdir /usr/local/etc/apache2/ssl.crt/&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
 openssl genrsa -des3 -out server.key 1024&lt;br /&gt;
 openssl req -new -key server.key -out server.csr&lt;br /&gt;
 openssl x509 -req -days 300 -in server.csr -signkey server.key -out server.crt&lt;br /&gt;
 openssl rsa -in server.key -out server.key&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
 cp server.key /usr/local/etc/apache2/ssl.key/&lt;br /&gt;
 cp server.crt /usr/local/etc/apache2/ssl.crt/&lt;br /&gt;
 chmod 0400 /usr/local/etc/apache2/ssl.key/server.key&lt;br /&gt;
 chmod 0400 /usr/local/etc/apache2/ssl.crt/server.crt&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Lisame FreeBSD&#039;s faili /etc/rc.local rea &lt;br /&gt;
&lt;br /&gt;
 apache2ssl_enable=&amp;quot;YES&amp;quot;&lt;br /&gt;
&lt;br /&gt;
Käivitame apache ssl toega&lt;br /&gt;
&lt;br /&gt;
 apachectl sslstart&lt;br /&gt;
&lt;br /&gt;
Kontrollime käsuga sockstat, kas kuulab?&lt;br /&gt;
&lt;br /&gt;
 ftp# sockstat | grep 443&lt;br /&gt;
 www      httpd      20720 4  tcp46  *:443                 *:*&lt;br /&gt;
 www      httpd      20709 4  tcp46  *:443                 *:*&lt;br /&gt;
 www      httpd      20020 4  tcp46  *:443                 *:*&lt;br /&gt;
 www      httpd      20019 4  tcp46  *:443                 *:*&lt;br /&gt;
&lt;br /&gt;
kuulab :]&lt;/div&gt;</summary>
		<author><name>Triinu</name></author>
	</entry>
	<entry>
		<id>https://kuutorvaja.eenet.ee/w/index.php?title=Sqlite&amp;diff=2920</id>
		<title>Sqlite</title>
		<link rel="alternate" type="text/html" href="https://kuutorvaja.eenet.ee/w/index.php?title=Sqlite&amp;diff=2920"/>
		<updated>2007-01-31T12:31:16Z</updated>

		<summary type="html">&lt;p&gt;Triinu: /* kasutamine */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;===SQlite tutvustus===&lt;br /&gt;
&lt;br /&gt;
SQlite http://www.sqlite.org/ andmebaas on väike ja ei vaja konfigureerimist,&lt;br /&gt;
on kasutatav kergelt käsurealt ning see sobib kenasti skriptide loomiseks,&lt;br /&gt;
hoides samas väga suuri infohulki.&lt;br /&gt;
&lt;br /&gt;
Kasutada saab ka ruby on rails&#039;iga http://wiki.rubyonrails.com/rails/pages/HowtoUseSQLite&lt;br /&gt;
&lt;br /&gt;
Selles palas vaatame, kuidas kasutada käsurealt andmebaasi, sama teema pikem ingliskeelne tekst http://www.sqlite.org/sqlite.html&lt;br /&gt;
&lt;br /&gt;
===Install===&lt;br /&gt;
&lt;br /&gt;
gentoo &lt;br /&gt;
 emerge sqlite&lt;br /&gt;
FreeBSD &lt;br /&gt;
 pkg_add -r sqlite3  /  cd /usr/ports/databases/sqlite3 &amp;amp;&amp;amp; make install clean&lt;br /&gt;
&lt;br /&gt;
Konfiguratsiooniga pole vaja midagi teha, puuduvad ka suuremad sõltuvused mingitest mahukatest pakettidest.&lt;br /&gt;
&lt;br /&gt;
===Kasutamine===&lt;br /&gt;
&lt;br /&gt;
andmebaasi loomine&lt;br /&gt;
&lt;br /&gt;
 sqlite3 fail_info.db&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
tabeli algandmete loomine&lt;br /&gt;
&lt;br /&gt;
 sqlite3 fail_info.db &amp;quot;Create table algandmed(id integer primary key, number integer,name text)&amp;quot;&lt;br /&gt;
&lt;br /&gt;
tabelisse info lisamine syntaks sqlite3 fail_info.db &amp;quot;insert into algandmed(...) values(...)&amp;quot;&lt;br /&gt;
&lt;br /&gt;
sellejärgi kirjutame &amp;quot;algandmed&amp;quot; tabelisse info käsuga&lt;br /&gt;
&lt;br /&gt;
 sqlite3 fail_info.db &amp;quot;Insert into algandmed values(null,&#039;Root&#039;, &#039;shell&#039;);&amp;quot;&lt;br /&gt;
&lt;br /&gt;
insert real &amp;quot;null&amp;quot; on vajalik ,et toimims auto increment id väljale&lt;br /&gt;
&lt;br /&gt;
tabelist &amp;quot;algandmed&amp;quot; kõigi ridade lugemine&lt;br /&gt;
&lt;br /&gt;
 sqlite3 fail_info.db &amp;quot;Select * from algandmed;&amp;quot;&lt;br /&gt;
&lt;br /&gt;
rea kustutamine tabelist&lt;br /&gt;
&lt;br /&gt;
 sqlite3 fail_info.db &amp;quot;delete from algandmed where id = 2&amp;quot;&lt;br /&gt;
&lt;br /&gt;
kasulik skriptis ka näidata andmebaasi asukoht tähistajaga&lt;br /&gt;
&lt;br /&gt;
EENet&lt;/div&gt;</summary>
		<author><name>Triinu</name></author>
	</entry>
	<entry>
		<id>https://kuutorvaja.eenet.ee/w/index.php?title=Sqlite&amp;diff=2919</id>
		<title>Sqlite</title>
		<link rel="alternate" type="text/html" href="https://kuutorvaja.eenet.ee/w/index.php?title=Sqlite&amp;diff=2919"/>
		<updated>2007-01-31T12:31:07Z</updated>

		<summary type="html">&lt;p&gt;Triinu: /* install */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;===SQlite tutvustus===&lt;br /&gt;
&lt;br /&gt;
SQlite http://www.sqlite.org/ andmebaas on väike ja ei vaja konfigureerimist,&lt;br /&gt;
on kasutatav kergelt käsurealt ning see sobib kenasti skriptide loomiseks,&lt;br /&gt;
hoides samas väga suuri infohulki.&lt;br /&gt;
&lt;br /&gt;
Kasutada saab ka ruby on rails&#039;iga http://wiki.rubyonrails.com/rails/pages/HowtoUseSQLite&lt;br /&gt;
&lt;br /&gt;
Selles palas vaatame, kuidas kasutada käsurealt andmebaasi, sama teema pikem ingliskeelne tekst http://www.sqlite.org/sqlite.html&lt;br /&gt;
&lt;br /&gt;
===Install===&lt;br /&gt;
&lt;br /&gt;
gentoo &lt;br /&gt;
 emerge sqlite&lt;br /&gt;
FreeBSD &lt;br /&gt;
 pkg_add -r sqlite3  /  cd /usr/ports/databases/sqlite3 &amp;amp;&amp;amp; make install clean&lt;br /&gt;
&lt;br /&gt;
Konfiguratsiooniga pole vaja midagi teha, puuduvad ka suuremad sõltuvused mingitest mahukatest pakettidest.&lt;br /&gt;
&lt;br /&gt;
===kasutamine===&lt;br /&gt;
&lt;br /&gt;
andmebaasi loomine&lt;br /&gt;
&lt;br /&gt;
 sqlite3 fail_info.db&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
tabeli algandmete loomine&lt;br /&gt;
&lt;br /&gt;
 sqlite3 fail_info.db &amp;quot;Create table algandmed(id integer primary key, number integer,name text)&amp;quot;&lt;br /&gt;
&lt;br /&gt;
tabelisse info lisamine syntaks sqlite3 fail_info.db &amp;quot;insert into algandmed(...) values(...)&amp;quot;&lt;br /&gt;
&lt;br /&gt;
sellejärgi kirjutame &amp;quot;algandmed&amp;quot; tabelisse info käsuga&lt;br /&gt;
&lt;br /&gt;
 sqlite3 fail_info.db &amp;quot;Insert into algandmed values(null,&#039;Root&#039;, &#039;shell&#039;);&amp;quot;&lt;br /&gt;
&lt;br /&gt;
insert real &amp;quot;null&amp;quot; on vajalik ,et toimims auto increment id väljale&lt;br /&gt;
&lt;br /&gt;
tabelist &amp;quot;algandmed&amp;quot; kõigi ridade lugemine&lt;br /&gt;
&lt;br /&gt;
 sqlite3 fail_info.db &amp;quot;Select * from algandmed;&amp;quot;&lt;br /&gt;
&lt;br /&gt;
rea kustutamine tabelist&lt;br /&gt;
&lt;br /&gt;
 sqlite3 fail_info.db &amp;quot;delete from algandmed where id = 2&amp;quot;&lt;br /&gt;
&lt;br /&gt;
kasulik skriptis ka näidata andmebaasi asukoht tähistajaga&lt;br /&gt;
&lt;br /&gt;
EENet&lt;/div&gt;</summary>
		<author><name>Triinu</name></author>
	</entry>
	<entry>
		<id>https://kuutorvaja.eenet.ee/w/index.php?title=PHP_k%C3%A4ivitamine_kasutaja_%C3%B5igustes&amp;diff=2918</id>
		<title>PHP käivitamine kasutaja õigustes</title>
		<link rel="alternate" type="text/html" href="https://kuutorvaja.eenet.ee/w/index.php?title=PHP_k%C3%A4ivitamine_kasutaja_%C3%B5igustes&amp;diff=2918"/>
		<updated>2007-01-31T12:30:35Z</updated>

		<summary type="html">&lt;p&gt;Triinu: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;Apache suexec on programm, mis lisati versioonis 1.2 ja mis annab apache kasutajatele võimaluse käivitada cgi ja ssi programme kasutaja id-ga, &lt;br /&gt;
mis erineb veebiserveri id-st. Normaalselt toimivad kõik skriptid veebiserveri õigustes.&lt;br /&gt;
Kahjuks võimaldab see nõnda startida ainult cgi skripte. Käesolev pala kirjeldab, kuidas saada iga serveris asuv php tükk samuti käima&lt;br /&gt;
antud kasutaja õigustes. Näites kasutatav PHP on 5. versioon, kuid kasutada võib ka neljandat.&lt;br /&gt;
Trellidega (#) on näidetes tähistatud käsuviip.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Tarkvara installeerimine&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
Installeerime apache koos suexec-ga:&lt;br /&gt;
&lt;br /&gt;
  # cd /usr/ports/www/apache2&lt;br /&gt;
  # make  WITH_SUEXEC_MODULES=&amp;quot;YES&amp;quot;  install &lt;br /&gt;
&lt;br /&gt;
Seejärel installeerime php: &lt;br /&gt;
&lt;br /&gt;
  # cd /usr/ports/lang/php5&lt;br /&gt;
  # make install clean&lt;br /&gt;
&lt;br /&gt;
PHP installeerimisel küsitakse täiendavaid parameetreid. Valida tuleb CGI ja FastCGI tugi.&lt;br /&gt;
Apache moodulit pole vaja, kui seda ei plaanita täiendavalt paralleelselt kasutada.&lt;br /&gt;
&lt;br /&gt;
Järgneb fastcgi installeerimine:&lt;br /&gt;
&lt;br /&gt;
  # cd /usr/ports/www/mod_fastcgi&lt;br /&gt;
  # make install clean&lt;br /&gt;
&lt;br /&gt;
Peale installeerimist saame kontrollida MILLE? olemasolu ja parameetreid selliselt:&lt;br /&gt;
&lt;br /&gt;
 # suexec -V&lt;br /&gt;
  -D AP_DOC_ROOT=&amp;quot;/usr/local/www/data&amp;quot;&lt;br /&gt;
  -D AP_GID_MIN=1000&lt;br /&gt;
  -D AP_HTTPD_USER=&amp;quot;www&amp;quot;&lt;br /&gt;
  -D AP_LOG_EXEC=&amp;quot;/var/log/httpd-suexec.log&amp;quot;&lt;br /&gt;
  -D AP_SAFE_PATH=&amp;quot;/usr/local/bin:/usr/local/bin:/usr/bin:/bin&amp;quot;&lt;br /&gt;
  -D AP_UID_MIN=1000&lt;br /&gt;
  -D AP_USERDIR_SUFFIX=&amp;quot;public_html&amp;quot;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Nagu näha, soovib suexec, et kõik skriptid, mida tema abil käivitatakse, asuksid kataloogis /usr/local/www/data&lt;br /&gt;
Ei hakka DOC_ROOT muutma ja loome testi sinna.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Apache konfiguratsioon&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
Muudame httpd.conf, vajadusel lisame:&lt;br /&gt;
&lt;br /&gt;
 LoadModule suexec_module libexec/apache2/mod_suexec.so&lt;br /&gt;
 LoadModule fastcgi_module     libexec/apache2/mod_fastcgi.so&lt;br /&gt;
&lt;br /&gt;
Tekitasime veel konfiguratsioonifaili sellise sektsiooni:&lt;br /&gt;
&lt;br /&gt;
 &amp;lt;IfModule mod_fastcgi.c&amp;gt;&lt;br /&gt;
    FastCgiWrapper  /usr/local/sbin/suexec&lt;br /&gt;
    FastCgiConfig   -singleThreshold 1 -pass-header HTTP_AUTHORIZATION&lt;br /&gt;
 &amp;lt;/IfModule&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Tekitame virtualhostid&lt;br /&gt;
&lt;br /&gt;
 &amp;lt;VirtualHost *:80&amp;gt;&lt;br /&gt;
  SuexecUserGroup katse katse&lt;br /&gt;
  ServerAdmin kasutaja@nimi.ee&lt;br /&gt;
  DocumentRoot /usr/local/www/data/katse&lt;br /&gt;
  ServerName www.nimi.ee&lt;br /&gt;
 &lt;br /&gt;
 ScriptAlias /php-fastcgi/ /usr/local/www/data/katse/&lt;br /&gt;
 AddType application/x-httpd-fastphp .php&lt;br /&gt;
 Action application/x-httpd-fastphp /php-fastcgi/php5-fcgi&lt;br /&gt;
 &lt;br /&gt;
 &amp;lt;/VirtualHost&amp;gt;&lt;br /&gt;
&lt;br /&gt;
 &amp;lt;VirtualHost *:80&amp;gt;&lt;br /&gt;
  SuexecUserGroup katse3 katse3&lt;br /&gt;
  ServerAdmin kasutaja@nimi.ee&lt;br /&gt;
  DocumentRoot /usr/local/www/data/katse3/cgi-bin&lt;br /&gt;
  ServerName test.nimi.ee&lt;br /&gt;
 &lt;br /&gt;
 ScriptAlias /php-fastcgi/ /usr/local/www/data/katse3/cgi-bin&lt;br /&gt;
 AddType application/x-httpd-fastphp .php&lt;br /&gt;
 Action application/x-httpd-fastphp /php-fastcgi/php5-fcgi&lt;br /&gt;
 &lt;br /&gt;
 &amp;lt;/VirtualHost&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Alternatiivselt kataloogipõhiselt:&lt;br /&gt;
&lt;br /&gt;
  SuexecUserGroup katse katse&lt;br /&gt;
  &lt;br /&gt;
  &amp;lt;Directory &amp;quot;/usr/local/www/data/cgi&amp;quot;&amp;gt;&lt;br /&gt;
    Options +ExecCGI&lt;br /&gt;
    AddHandler fastcgi-script .cgi&lt;br /&gt;
    AddType application/x-httpd-fastphp .php&lt;br /&gt;
    Action application/x-httpd-fastphp /cgi/php5-fcgi.cgi&lt;br /&gt;
  &amp;lt;/Directory&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Skript wrapperiks&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
Varasemalt sidusime virtualhostis  iga .php laiendi kindla cgi skriptiga, mida suexeciga käivitame.&lt;br /&gt;
Viimaks ehitame skripti enda, mis käivitatuna suexeci abil kasutaja õigustes stardib php enda ja sellekaudu ka veebi.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
 #!/bin/sh&lt;br /&gt;
 #PHPRC=&amp;quot;/usr/local/etc/php.ini&amp;quot;&lt;br /&gt;
 export PHPRC&lt;br /&gt;
 PHP_FCGI_CHILDREN=4&lt;br /&gt;
 export PHP_FCGI_CHILDREN&lt;br /&gt;
 exec /usr/local/bin/php-cgi&lt;br /&gt;
&lt;br /&gt;
Kopeerime selle faili kasutajate katse ja katse 3 kaustadesse (kataloogidesse):&lt;br /&gt;
&lt;br /&gt;
/usr/local/www/data/katse/cgi-bin/php5-fcgi/usr/local/www/data/katse3/cgi-bin/php5-fcgi&lt;br /&gt;
&lt;br /&gt;
Muudame mõlema faili kasutajaõigusi chown käsuga:&lt;br /&gt;
&lt;br /&gt;
chown katse:katse /usr/local/www/data/katse/cgi-bin/php5-fcgi&lt;br /&gt;
&lt;br /&gt;
chown katse3:katse3 /usr/local/www/data/katse3/cgi-bin/php5-fcgi&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Testimine&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
Testimiseks saab teha skripti&lt;br /&gt;
&lt;br /&gt;
 &amp;lt; ?php&lt;br /&gt;
 print &amp;quot;hello world&amp;lt; p &amp;gt;\n&amp;quot;;&lt;br /&gt;
 system(&amp;quot;id&amp;quot;);&lt;br /&gt;
 php? &amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
www.nimi.ee skripti vaadates&lt;br /&gt;
&lt;br /&gt;
 hello world&lt;br /&gt;
 &lt;br /&gt;
 uid=1004(katse) gid=1004(katse) groups=1004(katse) &lt;br /&gt;
&lt;br /&gt;
test.nimi.ee&lt;br /&gt;
&lt;br /&gt;
 hello world&lt;br /&gt;
 &lt;br /&gt;
 uid=1009(katse3) gid=1009(katse3) groups=1009(katse3) &lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
EENet 2006&lt;/div&gt;</summary>
		<author><name>Triinu</name></author>
	</entry>
	<entry>
		<id>https://kuutorvaja.eenet.ee/w/index.php?title=PHP_k%C3%A4ivitamine_kasutaja_%C3%B5igustes&amp;diff=2917</id>
		<title>PHP käivitamine kasutaja õigustes</title>
		<link rel="alternate" type="text/html" href="https://kuutorvaja.eenet.ee/w/index.php?title=PHP_k%C3%A4ivitamine_kasutaja_%C3%B5igustes&amp;diff=2917"/>
		<updated>2007-01-31T12:29:35Z</updated>

		<summary type="html">&lt;p&gt;Triinu: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;Apache suexec on programm, mis lisati versioonis 1.2 ja mis annab apache kasutajatele võimaluse käivitada cgi ja ssi programme kasutaja id-ga, &lt;br /&gt;
mis erineb veebiserveri id-st. Normaalselt toimivad kõik skriptid veebiserveri õigustes.&lt;br /&gt;
Kahjuks võimaldab see nõnda startida ainult cgi skripte. Käesolev pala kirjeldab, kuidas saada iga serveris asuv php tükk samuti käima&lt;br /&gt;
antud kasutaja õigustes. Näites kasutatav PHP on 5. versioon, kuid kasutada võib ka neljandat.&lt;br /&gt;
Trellidega (#) on näidetes tähistatud käsuviip.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Tarkvara installeerimine&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
Installeerime apache koos suexec-ga:&lt;br /&gt;
&lt;br /&gt;
  # cd /usr/ports/www/apache2&lt;br /&gt;
  # make  WITH_SUEXEC_MODULES=&amp;quot;YES&amp;quot;  install &lt;br /&gt;
&lt;br /&gt;
Seejärel installeerime php: &lt;br /&gt;
&lt;br /&gt;
  # cd /usr/ports/lang/php5&lt;br /&gt;
  # make install clean&lt;br /&gt;
&lt;br /&gt;
PHP installeerimisel küsitakse täiendavaid parameetreid. Valida tuleb CGI ja FastCGI tugi.&lt;br /&gt;
Apache moodulit pole vaja, kui seda ei plaanita täiendavalt paralleelselt kasutada.&lt;br /&gt;
&lt;br /&gt;
Järgneb fastcgi installeerimine:&lt;br /&gt;
&lt;br /&gt;
  # cd /usr/ports/www/mod_fastcgi&lt;br /&gt;
  # make install clean&lt;br /&gt;
&lt;br /&gt;
Peale installeerimist saame kontrollida MILLE? olemasolu ja parameetreid selliselt:&lt;br /&gt;
&lt;br /&gt;
 # suexec -V&lt;br /&gt;
  -D AP_DOC_ROOT=&amp;quot;/usr/local/www/data&amp;quot;&lt;br /&gt;
  -D AP_GID_MIN=1000&lt;br /&gt;
  -D AP_HTTPD_USER=&amp;quot;www&amp;quot;&lt;br /&gt;
  -D AP_LOG_EXEC=&amp;quot;/var/log/httpd-suexec.log&amp;quot;&lt;br /&gt;
  -D AP_SAFE_PATH=&amp;quot;/usr/local/bin:/usr/local/bin:/usr/bin:/bin&amp;quot;&lt;br /&gt;
  -D AP_UID_MIN=1000&lt;br /&gt;
  -D AP_USERDIR_SUFFIX=&amp;quot;public_html&amp;quot;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Nagu näha, soovib suexec, et kõik skriptid, mida tema abil käivitatakse, asuksid kataloogis /usr/local/www/data&lt;br /&gt;
Ei hakka DOC_ROOT muutma ja loome testi sinna.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Apache konfiguratsioon&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
Muudame httpd.conf, vajadusel lisame:&lt;br /&gt;
&lt;br /&gt;
 LoadModule suexec_module libexec/apache2/mod_suexec.so&lt;br /&gt;
 LoadModule fastcgi_module     libexec/apache2/mod_fastcgi.so&lt;br /&gt;
&lt;br /&gt;
Tekitasime veel konfiguratsioonifaili sellise sektsiooni:&lt;br /&gt;
&lt;br /&gt;
 &amp;lt;IfModule mod_fastcgi.c&amp;gt;&lt;br /&gt;
    FastCgiWrapper  /usr/local/sbin/suexec&lt;br /&gt;
    FastCgiConfig   -singleThreshold 1 -pass-header HTTP_AUTHORIZATION&lt;br /&gt;
 &amp;lt;/IfModule&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Tekitame virtualhostid&lt;br /&gt;
&lt;br /&gt;
 &amp;lt;VirtualHost *:80&amp;gt;&lt;br /&gt;
  SuexecUserGroup katse katse&lt;br /&gt;
  ServerAdmin kasutaja@nimi.ee&lt;br /&gt;
  DocumentRoot /usr/local/www/data/katse&lt;br /&gt;
  ServerName www.nimi.ee&lt;br /&gt;
 &lt;br /&gt;
 ScriptAlias /php-fastcgi/ /usr/local/www/data/katse/&lt;br /&gt;
 AddType application/x-httpd-fastphp .php&lt;br /&gt;
 Action application/x-httpd-fastphp /php-fastcgi/php5-fcgi&lt;br /&gt;
 &lt;br /&gt;
 &amp;lt;/VirtualHost&amp;gt;&lt;br /&gt;
&lt;br /&gt;
 &amp;lt;VirtualHost *:80&amp;gt;&lt;br /&gt;
  SuexecUserGroup katse3 katse3&lt;br /&gt;
  ServerAdmin kasutaja@nimi.ee&lt;br /&gt;
  DocumentRoot /usr/local/www/data/katse3/cgi-bin&lt;br /&gt;
  ServerName test.nimi.ee&lt;br /&gt;
 &lt;br /&gt;
 ScriptAlias /php-fastcgi/ /usr/local/www/data/katse3/cgi-bin&lt;br /&gt;
 AddType application/x-httpd-fastphp .php&lt;br /&gt;
 Action application/x-httpd-fastphp /php-fastcgi/php5-fcgi&lt;br /&gt;
 &lt;br /&gt;
 &amp;lt;/VirtualHost&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Alternatiivselt kataloogipõhiselt:&lt;br /&gt;
&lt;br /&gt;
  SuexecUserGroup katse katse&lt;br /&gt;
  &lt;br /&gt;
  &amp;lt;Directory &amp;quot;/usr/local/www/data/cgi&amp;quot;&amp;gt;&lt;br /&gt;
    Options +ExecCGI&lt;br /&gt;
    AddHandler fastcgi-script .cgi&lt;br /&gt;
    AddType application/x-httpd-fastphp .php&lt;br /&gt;
    Action application/x-httpd-fastphp /cgi/php5-fcgi.cgi&lt;br /&gt;
  &amp;lt;/Directory&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Skript wrapperiks&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
Varasemalt sidusime virtualhostis  iga .php laiendi kindla cgi skriptiga, mida suexeciga käivitame.&lt;br /&gt;
Viimaks ehitame skripti enda, mis käivitatuna suexeci abil kasutaja õigustes stardib php enda ja sellekaudu ka veebi.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
 #!/bin/sh&lt;br /&gt;
 #PHPRC=&amp;quot;/usr/local/etc/php.ini&amp;quot;&lt;br /&gt;
 export PHPRC&lt;br /&gt;
 PHP_FCGI_CHILDREN=4&lt;br /&gt;
 export PHP_FCGI_CHILDREN&lt;br /&gt;
 exec /usr/local/bin/php-cgi&lt;br /&gt;
&lt;br /&gt;
Kopeerime selle faili kasutajate katse ja katse 3 kaustadesse (kataloogidesse):&lt;br /&gt;
&lt;br /&gt;
/usr/local/www/data/katse/cgi-bin/php5-fcgi/usr/local/www/data/katse3/cgi-bin/php5-fcgi&lt;br /&gt;
&lt;br /&gt;
Muudame mõlema faili kasutajaõigusi chown käsuga:&lt;br /&gt;
&lt;br /&gt;
chown katse:katse /usr/local/www/data/katse/cgi-bin/php5-fcgi&lt;br /&gt;
&lt;br /&gt;
chown katse3:katse3 /usr/local/www/data/katse3/cgi-bin/php5-fcgi&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;testimine kasutamine&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
Testimiseks saab teha skripti&lt;br /&gt;
&lt;br /&gt;
 &amp;lt; ?php&lt;br /&gt;
 print &amp;quot;hello world&amp;lt; p &amp;gt;\n&amp;quot;;&lt;br /&gt;
 system(&amp;quot;id&amp;quot;);&lt;br /&gt;
 php? &amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
www.nimi.ee skripti vaadates&lt;br /&gt;
&lt;br /&gt;
 hello world&lt;br /&gt;
 &lt;br /&gt;
 uid=1004(katse) gid=1004(katse) groups=1004(katse) &lt;br /&gt;
&lt;br /&gt;
test.nimi.ee&lt;br /&gt;
&lt;br /&gt;
 hello world&lt;br /&gt;
 &lt;br /&gt;
 uid=1009(katse3) gid=1009(katse3) groups=1009(katse3) &lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
EENet 2006&lt;/div&gt;</summary>
		<author><name>Triinu</name></author>
	</entry>
	<entry>
		<id>https://kuutorvaja.eenet.ee/w/index.php?title=Linux_ATM&amp;diff=2916</id>
		<title>Linux ATM</title>
		<link rel="alternate" type="text/html" href="https://kuutorvaja.eenet.ee/w/index.php?title=Linux_ATM&amp;diff=2916"/>
		<updated>2007-01-31T12:17:58Z</updated>

		<summary type="html">&lt;p&gt;Triinu: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;&#039;&#039;&#039;ATM&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
Algselt lairiba-ISDN-i (B-ISDN) jaoks väljatöötatud võrgutehnika ATM (Asynchronous Transfer Mode, asünkroonne edastusre�iim) toob edaspidi gigabittides edastuskiirused lõppseadmeteni välja. Esmakordselt 1988.a. standardiseeritud&lt;br /&gt;
&lt;br /&gt;
ATM põhineb ühendusega edastusel. Siin suunatakse liiklus tõhusamalt õigele vastuvõtjale. Peamiselt heliliikluses kasutatud aegmultipleksimine (TDM, time-division multiplexing) jaotab riba paremini ning eraldab ühe ühenduse kasutusse ainult sellele vajaliku keskmise ribalaiuse. Samaaegseid ühendusi jaamade vahel võib luua ja töödelda kiiresti ja tõhusalt.&lt;br /&gt;
&lt;br /&gt;
Levinud kiired pakettedastuse meetodid (X.25, Frame Relay, FDDI) kasutavad muutuva pikkusega pakette. Puhangulisi andmeid saata on lihtne, kuid aegsõltuva informatsiooni (näiteks heli ja pildi) saatmine komplitseerub. Üks suur pakett võib hõivata kogu ribalaiuse pikaks ajaks ja teised ühendused ei saa seda kasutada. ATM seevastu edastab väikesi konstantse pikkusega pakette, mida nimetatakse rakkudeks (cell).&lt;br /&gt;
&lt;br /&gt;
ATM oma 155 Mbit/s algkiirusega on tõhusam kui FDDI ja läbilaskevõimet saab tõsta gigabittideni välja. Võrgu jaamad ühendatakse kas otse ATM-sõlmega (switch) või samas karkassis asuvate vana kohtvõrgutehnikat toetavate liidestega, mis on marsruuterite abil ühendatud ATM- keskmagistraaliga. Otse ATM-sõlmega saab ühendada ka teenustena ostetud kaugühendusi. Sel juhul kasutatakse nii koht- kui ka kaugvõrkudes sama edastusviisi.&lt;br /&gt;
&lt;br /&gt;
ATM-ile kavandatud liiklusklasse on neli. Klass A edastab konstantse kiirusega ühenduspõhist sünkroniseeritud liiklust, näiteks pakkimata pilti või heli. Klass B on nagu A, kuid edastab vahelduva kiirusega, näiteks pakitud pilti või heli. Klass C edastab vahelduva kiirusega asünkroonset liiklust nagu X.25 või Frame Relay. Klass D on ühenduseta pakettvõrgu, näiteks tavalise kohtvõrgu jaoks.&lt;br /&gt;
&lt;br /&gt;
ATM-i kaks olulist eelist on suvalist tüüpi andmete edastuse võime ja väga suur edastuskiirus. Samas võrgus võib üheaegselt edastada teksti, andmeid, heli, pilti ja mitmesuguseid signaale väikestes rakkudes. ATM-i rakk koosneb 48-baidisest kasulikust lastist ja 5-baidisest päisest. ATM pakub ka voojuhtimist.&lt;br /&gt;
&lt;br /&gt;
Ühenduspõhisel andmeedastusel tuleb kõigepealt luua saatja ja vastuvõtja vahel virtuaalühendus. Saatja saadab võrku ühenduse loomise raku, mis sõlm-sõlmelt otsib omale tee läbi võrgu ning defineerib ühendusele marsruudi ja kasutatava klassi. Ühendusloomerakk kannab ettepanekut teenuste laadi, näiteks keskmise edastuskiiruse kohta. Vastuvõtja saadetud kviteerimisrakk kulgeb sama marsruuti mööda tagasi saatjale, seades ühenduse teenusteks valmis. Kui võrk ei suuda soovitud teenuseid võimaldada, teatab kviteerimisrakk saatjale saadavate teenuste liigid ja ühendus jääb loomata. Saatja võib reageerida väiksemate teenuste taotlusega või proovida hiljem uuesti.&lt;br /&gt;
&lt;br /&gt;
Globaalset võrguaadressi kasutatakse ainult ühenduse loomisel. Kui loomis- ja kviteerimisrakud on mõlemas suunas marsruudi läbinud, kasutatakse marsruudil asuvates ATM-sõlmedes teeidentifikaatoreid (VPI, virtual path identifier) ja kanaliidentifikaatoreid (VCI, virtual circuit identifier). Identifikaatorid on lühikesed 8- kuni 16-bitised aadressid, mis defineerivad lokaalselt järgmise sõlme. Kui ATM-sõlm võtab raku vastu, loeb ta identifikaatorid, asendab need uue lokaalse identifikaatoriga ja saadab raku edasi. Identifikaatorid vahetatakse marsruutimisel, sest nad on igas sõlmes lokaalsed.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;kernel&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
make menuconfig v .configure&lt;br /&gt;
&lt;br /&gt;
 CONFIG_ATM=m&lt;br /&gt;
 CONFIG_ATM_CLIP=m&lt;br /&gt;
 CONFIG_ATM_CLIP_NO_ICMP=y&lt;br /&gt;
 &lt;br /&gt;
 CONFIG_ATM_DUMMY=m&lt;br /&gt;
 CONFIG_ATM_TCP=m&lt;br /&gt;
&lt;br /&gt;
Kaardi tugi samuti vajalik. Igaüks valib enda kaardi jaoks vajaliku.&lt;br /&gt;
&lt;br /&gt;
 CONFIG_ATM_NICSTAR=m&lt;br /&gt;
 CONFIG_ATM_NICSTAR_USE_SUNI=y&lt;br /&gt;
 CONFIG_ATM_FORE200E_MAYBE=m&lt;br /&gt;
 CONFIG_ATM_FORE200E_PCA=y&lt;br /&gt;
 CONFIG_ATM_FORE200E_PCA_DEFAULT_FW=y&lt;br /&gt;
 CONFIG_ATM_FORE200E_TX_RETRY=16&lt;br /&gt;
 CONFIG_ATM_FORE200E_DEBUG=0&lt;br /&gt;
 CONFIG_ATM_FORE200E=m&lt;br /&gt;
 CONFIG_ROADRUNNER=m&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Esimene pool&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
 atm1      kapseldus:UNSPEC  HWaddr 00-00-00-00-00-00-00-00-00-00-00-00-00-00-00-00&lt;br /&gt;
          inet aadress:192.168.1.2  mask:255.255.255.0&lt;br /&gt;
          UP RUNNING  MTU:1500 meetrika:1&lt;br /&gt;
          RX pakette:14 vigu:0 ära visatud:0 ületäit:0 kaadri vigu:0&lt;br /&gt;
          TX pakette:276 vigu:0 ära visatud:1495 ületäit:0 carrier:0&lt;br /&gt;
          kollisioone:0 txqueuelen:100&lt;br /&gt;
          RX baite:816 (816.0 b)  TX baite:15299 (14.9 Kb)&lt;br /&gt;
&lt;br /&gt;
stardiskript&lt;br /&gt;
&lt;br /&gt;
 /usr/local/sbin/atmsigd -b&lt;br /&gt;
 /usr/local/sbin/atmarpd -b&lt;br /&gt;
 /usr/local/sbin/atmaddr -a Test2&lt;br /&gt;
 /usr/local/sbin/atmarp -c atm1&lt;br /&gt;
 /sbin/ifconfig atm1 192.168.1.2 up&lt;br /&gt;
 /sbin/ifconfig atm1 mtu 1500&lt;br /&gt;
&lt;br /&gt;
 #Teise poole ATM otsa IP läheb PVC peale..&lt;br /&gt;
 /usr/local/sbin/atmarp -s 192.168.1.1 0.0.166&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Teine pool&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
 atm1      Link encap:UNSPEC  HWaddr 00-00-00-00-00-00-00-00-00-00-00-00-00-00-00-00&lt;br /&gt;
          inet addr:192.168.2.2  Mask:255.255.255.0&lt;br /&gt;
          UP RUNNING  MTU:1500  Metric:1&lt;br /&gt;
          RX packets:0 errors:0 dropped:0 overruns:0 frame:0&lt;br /&gt;
          TX packets:1 errors:0 dropped:0 overruns:0 carrier:0&lt;br /&gt;
          collisions:0 txqueuelen:100&lt;br /&gt;
          RX bytes:0 (0.0 b)  TX bytes:55 (55.0 b)&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
stardiskript&lt;br /&gt;
&lt;br /&gt;
 atmsigd -b&lt;br /&gt;
 atmarpd -b&lt;br /&gt;
 atmarp -c atm1&lt;br /&gt;
 &lt;br /&gt;
 /sbin/ifconfig atm1 mtu 1500&lt;br /&gt;
 /sbin/ifconfig atm1 192.168.2.2 up&lt;br /&gt;
 /sbin/ifconfig atm1 up&lt;br /&gt;
 &lt;br /&gt;
 #Teise poole ATM otsa IP l.heb PVC peale..&lt;br /&gt;
 atmarp -s 192.168.2.1 0.0.166&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Korrasoleku proov&lt;br /&gt;
&lt;br /&gt;
 localhost etc # ping 192.168.2.1&lt;br /&gt;
 PING 192.168.2.1 (192.168.2.1) 56(84) bytes of data.&lt;br /&gt;
 64 bytes from 192.168.2.1: icmp_seq=1 ttl=30 time=1.31 ms&lt;br /&gt;
 64 bytes from 192.168.2.1: icmp_seq=2 ttl=30 time=1.32 ms&lt;/div&gt;</summary>
		<author><name>Triinu</name></author>
	</entry>
	<entry>
		<id>https://kuutorvaja.eenet.ee/w/index.php?title=NetBSD_wifi_ap&amp;diff=2908</id>
		<title>NetBSD wifi ap</title>
		<link rel="alternate" type="text/html" href="https://kuutorvaja.eenet.ee/w/index.php?title=NetBSD_wifi_ap&amp;diff=2908"/>
		<updated>2007-01-31T09:53:17Z</updated>

		<summary type="html">&lt;p&gt;Triinu: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;NetBSD installil pikemalt peatuma ei hakka, asi on üsnagi lihtsaks tehtud. Nii, et suhteliselt next vajutades saab sealt läbi.&lt;br /&gt;
Tähelepanu tuleks pöörata ainult sellele, et kui tegemist pcmci kaardiga nagu minul, oleks soovitatav valida kernelitüübiks,&lt;br /&gt;
laptop&#039;i oma täpselt ei mäleta, kirjapilti.&lt;br /&gt;
&lt;br /&gt;
1. rc.confi lisame sshd=YES&lt;br /&gt;
2. lisame tavakasutaja&lt;br /&gt;
 useradd -m -G wheel -C &amp;quot;Kasutaja&amp;quot; kasutaja&lt;br /&gt;
 passwd kasutaja&lt;br /&gt;
&lt;br /&gt;
See värk on selleks, et saaks üle ssh ka sisse&lt;br /&gt;
&lt;br /&gt;
Võtame vi ja kirjutane /etc/rc.conf&#039;i&lt;br /&gt;
&lt;br /&gt;
 defaultroute=192.168.1.254&lt;br /&gt;
&lt;br /&gt;
 echo &amp;quot;inet 192.168.1.124 netmask 255.255.255.0&amp;quot; &amp;gt; /etc/ifconfig.rtk0&lt;br /&gt;
&lt;br /&gt;
 echo &amp;quot;nameserver 194.126.115.18&amp;quot; &amp;gt; /etc/resolv.conf&lt;br /&gt;
 echo &amp;quot;nameserver 194.126.101.34&amp;quot; &amp;gt;&amp;gt; /etc/resolv.conf&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
3. nüüd sikutame src süsteemile, sest vaja oleks selliseid kasulikke utikaid nagu bash ja mõni lihtsam editor vi asemel.&lt;br /&gt;
&lt;br /&gt;
Selleks ftp.estpak.ee ja getime /pub/NetBSD/packages/pkgsrc.tar.gz&lt;br /&gt;
 tar -xvzf pkgsrc.tar.gz -C /usr&lt;br /&gt;
pakib src lahti&lt;br /&gt;
&lt;br /&gt;
Nüüd võib lisada muud softi nagu bash pico wget screen jpt&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
edasi kasutatud http://freespace.ausgamers.com/2004/10/wireless-router-with-netbsd-162-on.html&lt;br /&gt;
&lt;br /&gt;
Avame enda lemmikbrauseriga ftp://ftp.estpak.ee/pub/NetBSD/packages/2.0/i386/All/ ja otsime sealt välja lingid softile ja installime näiteks&lt;br /&gt;
&lt;br /&gt;
 pkg_add ftp://ftp.estpak.ee/pub/NetBSD/packages/2.0/i386/All/screen-4.0.2nb1.tgz&lt;br /&gt;
&lt;br /&gt;
Võib ka portaget kasutada.&lt;br /&gt;
&lt;br /&gt;
Nüüd wireless ap seadistamine ise.&lt;br /&gt;
&lt;br /&gt;
Kaks subnetti&lt;br /&gt;
&lt;br /&gt;
 192.168.0.0/24 for lan&lt;br /&gt;
 192.168.1.0/24 for wireless&lt;br /&gt;
&lt;br /&gt;
 pico /etc/ifconfig.wi0 &lt;br /&gt;
kirjutame&lt;br /&gt;
&lt;br /&gt;
 inet 192.168.1.1 up media DS11 mediaopt adhoc nwid g3_bridge&lt;br /&gt;
 !wiconfig wi0 -c 1&lt;br /&gt;
 !wiconfig wi0 -p 1&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
 ifconfig wi0 chan 11 -&amp;gt; paneb paika wirelessi kanali&lt;br /&gt;
 ifconfig wi0 ssid Kindlus -&amp;gt; paneme SSID&#039;ks Kindlus&lt;br /&gt;
 &lt;br /&gt;
wiconfig wi0 -c 1 causes the airport card to create IBSS, so other &lt;br /&gt;
wireless devices can see it. -p 1 causes the card to enter into BSS mode. &lt;br /&gt;
Now this isn&#039;t strictly correct, but some how it magically works. If you &lt;br /&gt;
know why, feel free to let me know! :-)&lt;br /&gt;
&lt;br /&gt;
 pico /etc/ifconfig.gem0&lt;br /&gt;
 inet 192.168.3.20 up netmask 255.255.255.0&lt;br /&gt;
 media 100BaseTX&lt;br /&gt;
&lt;br /&gt;
 echo net.inet.ip.forwarding=1 &amp;gt;&amp;gt; /etc/sysctl.conf&lt;br /&gt;
 echo pass in all &amp;gt; /etc/ipf.conf&lt;br /&gt;
 echo pass out all &amp;gt;&amp;gt; /etc/ipf.conf&lt;br /&gt;
&lt;br /&gt;
 map tun0 192.168.0.0/16 -&amp;gt; 0.0.0.0/32 portmap tcp/udp 40000:65000&lt;br /&gt;
 map tun0 192.168.0.0/16 -&amp;gt; 0.0.0.0/32&lt;br /&gt;
&lt;br /&gt;
 echo ipfilter=YES &amp;gt;&amp;gt; /etc/rc.conf&lt;br /&gt;
 echo ipnat=YES &amp;gt;&amp;gt; /etc/rc.conf&lt;br /&gt;
 reboot&lt;br /&gt;
&lt;br /&gt;
Nüüd võime teha testi. Võtame enda wirelessi oskavat teha masina, näiteks läpaka,&lt;br /&gt;
vaatame, kas ta leiab signaali ning ssid on õige. Kui jah, siis anname wireless kaardile &lt;br /&gt;
ip gateway ja dns&#039;id näiteks 192.168.3.10. &lt;br /&gt;
Veel gateway 192.168.3.20 ja dns&#039;id vastavalt enda teenusepakkuja omad.&lt;br /&gt;
Proovime pingida alguses gatewayd ja kui õnnestub, siis ka mingit suvalist lemmiserverit.&lt;br /&gt;
&lt;br /&gt;
Korras. Esimene etapp läbitud, net töötab.&lt;/div&gt;</summary>
		<author><name>Triinu</name></author>
	</entry>
	<entry>
		<id>https://kuutorvaja.eenet.ee/w/index.php?title=RRDtool_ja_v%C3%B5rgugraafik&amp;diff=2907</id>
		<title>RRDtool ja võrgugraafik</title>
		<link rel="alternate" type="text/html" href="https://kuutorvaja.eenet.ee/w/index.php?title=RRDtool_ja_v%C3%B5rgugraafik&amp;diff=2907"/>
		<updated>2007-01-31T09:43:31Z</updated>

		<summary type="html">&lt;p&gt;Triinu: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;Paigaldame snmpd teenuse serverisse&lt;br /&gt;
&lt;br /&gt;
 cd /usr/ports/net-mgmt/net-snmp4&lt;br /&gt;
 make install &lt;br /&gt;
       This port has installed the following startup scripts which may cause&lt;br /&gt;
       these network services to be started at boot time.&lt;br /&gt;
 /usr/local/etc/rc.d/snmpd.sh&lt;br /&gt;
&lt;br /&gt;
Lisame rc.conf’i nagu õpetatakse read snmpd boodil startimiseks&lt;br /&gt;
&lt;br /&gt;
 snmpd_enable=&amp;quot;YES&amp;quot;&lt;br /&gt;
 snmpd_flags=&amp;quot;-as -p /var/run/snmpd.pid&amp;quot;&lt;br /&gt;
 snmptrapd_enable=&amp;quot;YES&amp;quot;&lt;br /&gt;
 snmptrapd_flags=&amp;quot;-as -p /var/run/snmptrapd.pid&amp;quot;&lt;br /&gt;
&lt;br /&gt;
Loome snmp.conf’i /usr/local/share/snmp/snmpd.conf&lt;br /&gt;
&lt;br /&gt;
 syscontact   jj&lt;br /&gt;
 sysservices  76&lt;br /&gt;
 &lt;br /&gt;
 rocommunity  public 127.0.0.1&lt;br /&gt;
 rocommunity  avalik localhost&lt;br /&gt;
 &lt;br /&gt;
 agentaddress  127.0.0.1&lt;br /&gt;
&lt;br /&gt;
Installime rrdtool’i ehk programmi, mis hakkab meile graafikuid joonistama&lt;br /&gt;
&lt;br /&gt;
 pkg_add -r rrdtool v cd /usr/ports/net/rrdtool &amp;amp;&amp;amp; make install clean&lt;br /&gt;
&lt;br /&gt;
Teeme serverile reboodi, peale starti on snmp meil töötavana olemas&lt;br /&gt;
&lt;br /&gt;
Testime snmp’d&lt;br /&gt;
&lt;br /&gt;
 snmpwalk -v 1 -c public localhost .1.3 käsul&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Loome rrdtool’i jaoks andmefaili, kuhu ta hakkab liiklusekohta infot kirjutama, selleks käivitame käsu&lt;br /&gt;
&lt;br /&gt;
 rrdtool create liiklus.rrd --step 60 DS:in:COUNTER:60:0:U DS:out:COUNTER:60:0:U RRA:AVERAGE:0.5:1:1440 RRA:AVERAGE:0.5:30:336  RRA:AVERAGE:0.5:120:336 RRA:AVERAGE:0.5:1440:17280&lt;br /&gt;
&lt;br /&gt;
mis tekitab meile faili liiklus.rrd&lt;br /&gt;
&lt;br /&gt;
Võtame ja paigaldame nüüd kaks skripti vastavalt siis g.sh, mis kogub snmp käest info ning kirjutab selle faili liiklus.rrd ning liiklus.sh, mis andmetest loob graafiku.&lt;br /&gt;
&lt;br /&gt;
Kohandame graafikuskriptis failirajad ning võrgukaardi numbri vastavalt endale parajaks. Selleks vaatame skripti liiklus.sh &lt;br /&gt;
&lt;br /&gt;
 #!/bin/sh&lt;br /&gt;
 &lt;br /&gt;
 sin=`/usr/local/bin/snmpget -v2c -c avalik -Oqv localhost IF-MIB::ifInOctets.3`&lt;br /&gt;
 sout=`/usr/local/bin/snmpget -v2c -c avalik -Oqv localhost IF-MIB::ifOutOctets.3`&lt;br /&gt;
 &lt;br /&gt;
 echo Snmp in : $sin&lt;br /&gt;
 echo Snmp out: $sout&lt;br /&gt;
 &lt;br /&gt;
 /usr/local/bin/rrdupdate /home/kasutaja/rrdtool/liiklus.rrd N:$sin:$sout&lt;br /&gt;
&lt;br /&gt;
kus kaks rida&lt;br /&gt;
pööra tähelepanu ridadele sin ja sout :) ehk siis sisse ja välja data vastavalt &lt;br /&gt;
&lt;br /&gt;
 sin=`/usr/local/bin/snmpget -v2c -c avalik -Oqv localhost IF-MIB::ifInOctets.3`&lt;br /&gt;
 sout=`/usr/local/bin/snmpget -v2c -c avalik -Oqv localhost IF-MIB::ifOutOctets.3`&lt;br /&gt;
&lt;br /&gt;
number kolm (ifInOctets.3) tähistab siis võrgukaardi numbrit. Et teada saada, mis number oleks õige, kirjutame käsu&lt;br /&gt;
&lt;br /&gt;
 snmpwalk -v 1 -c public localhost | more&lt;br /&gt;
&lt;br /&gt;
ning siis kerid alla kuni leiab read&lt;br /&gt;
&lt;br /&gt;
 IF-MIB::ifDescr.1 = STRING: fxp0&lt;br /&gt;
 IF-MIB::ifDescr.2 = STRING: fxp1&lt;br /&gt;
&lt;br /&gt;
ifDescr.1 on siis väline ja ifDescr.2 sisemine kaart&lt;br /&gt;
&lt;br /&gt;
Nüüd paigaldame skripti g.sh, mis loob info järgi rrdtool’i andmefailis graafiku &lt;br /&gt;
&lt;br /&gt;
 #!/bin/sh&lt;br /&gt;
 /usr/local/bin/rrdtool graph /home/kasutaja/public_html/g-p2ev.png -a PNG -A -w 800 -h 300 -s -24h -v &amp;quot;Liiklus&amp;quot; \&lt;br /&gt;
    &#039;DEF:in=/home/kasutaja/rrdtool/liiklus.rrd:in:AVERAGE&#039; \&lt;br /&gt;
    &#039;DEF:out=/home/kasutaja/rrdtool/liiklus.rrd:out:AVERAGE&#039; \&lt;br /&gt;
    &#039;CDEF:kbin=in,1024,/&#039; \&lt;br /&gt;
    &#039;CDEF:kbout=out,1024,/&#039; \&lt;br /&gt;
    &#039;CDEF:outg=out,-1,/&#039; \&lt;br /&gt;
    &#039;CDEF:background=in,POP,LTIME,7200,%,3600,LE,INF,UNKN,IF&#039; \&lt;br /&gt;
    &#039;CDEF:backgroundN=background,-1,*&#039; \&lt;br /&gt;
    &#039;AREA:background#F3F3F3&#039; \&lt;br /&gt;
    &#039;AREA:backgroundN#F3F3F3&#039; \&lt;br /&gt;
    &#039;HRULE:262144#FF0000&#039; \&lt;br /&gt;
    &#039;HRULE:131072#FF0000&#039; \&lt;br /&gt;
    &#039;HRULE:32768#FF0000&#039; \&lt;br /&gt;
    &#039;HRULE:-32768#FF0000&#039; \&lt;br /&gt;
    &#039;HRULE:-131072#FF0000&#039; \&lt;br /&gt;
    &#039;HRULE:-262144#FF0000&#039; \&lt;br /&gt;
    &#039;AREA:in#91ACF1&#039; \&lt;br /&gt;
    &#039;AREA:outg#FF9090&#039; \&lt;br /&gt;
    &#039;LINE1:in#767676&#039; \&lt;br /&gt;
    &#039;LINE1:outg#767676&#039; \&lt;br /&gt;
    &#039;GPRINT:kbin:LAST:Viimati sisse \:   %3.2lf KB&#039; \&lt;br /&gt;
    &#039;GPRINT:kbout:LAST:Viimati välja \:   %3.2lf KB\j&#039; \&lt;br /&gt;
    &#039;GPRINT:kbin:AVERAGE:Keskmiselt sisse\: %3.2lf KB&#039; \&lt;br /&gt;
    &#039;GPRINT:kbout:AVERAGE:Keskmiselt välja\: %3.2lf KB\j&#039;&lt;br /&gt;
 &lt;br /&gt;
 &lt;br /&gt;
 /usr/local/bin/rrdtool graph /home/kasutaja/public_html/g-n2dal.png -a PNG -A -w 800 -h 300 -s -168h -v &amp;quot;Liiklus&amp;quot; \&lt;br /&gt;
    &#039;DEF:in=/home/kasutaja/liiklus.rrd:in:AVERAGE&#039; \&lt;br /&gt;
    &#039;DEF:out=/home/kasutaja/liiklus.rrd:out:AVERAGE&#039; \&lt;br /&gt;
    &#039;CDEF:kbin=in,1024,/&#039; \&lt;br /&gt;
    &#039;CDEF:kbout=out,1024,/&#039; \&lt;br /&gt;
    &#039;CDEF:outg=out,-1,/&#039; \&lt;br /&gt;
    &#039;CDEF:background=in,POP,LTIME,172800,%,86400,LE,INF,UNKN,IF&#039; \&lt;br /&gt;
    &#039;CDEF:backgroundN=background,-1,*&#039; \&lt;br /&gt;
    &#039;AREA:background#F3F3F3&#039; \&lt;br /&gt;
    &#039;AREA:backgroundN#F3F3F3&#039; \&lt;br /&gt;
    &#039;HRULE:262144#FF0000&#039; \&lt;br /&gt;
    &#039;HRULE:131072#FF0000&#039; \&lt;br /&gt;
    &#039;HRULE:32768#FF0000&#039; \&lt;br /&gt;
    &#039;HRULE:-32768#FF0000&#039; \&lt;br /&gt;
    &#039;HRULE:-131072#FF0000&#039; \&lt;br /&gt;
    &#039;HRULE:-262144#FF0000&#039; \&lt;br /&gt;
    &#039;AREA:in#91ACF1&#039; \&lt;br /&gt;
    &#039;AREA:outg#FF9090&#039; \&lt;br /&gt;
    &#039;LINE1:in#767676&#039; \&lt;br /&gt;
    &#039;LINE1:outg#767676&#039; \&lt;br /&gt;
    &#039;GPRINT:kbin:LAST:Viimati sisse \:   %3.2lf KB&#039; \&lt;br /&gt;
    &#039;GPRINT:kbout:LAST:Viimati välja \:   %3.2lf KB\j&#039; \&lt;br /&gt;
    &#039;GPRINT:kbin:AVERAGE:Keskmiselt sisse\: %3.2lf KB&#039; \&lt;br /&gt;
    &#039;GPRINT:kbout:AVERAGE:Keskmiselt välja\:%3.2lf KB\j&#039;&lt;br /&gt;
 &lt;br /&gt;
 /usr/local/bin/rrdtool graph /home/kasutaja/public_html/g-kuu.png -a PNG -A -w 800 -h 300 -s -672h -v &amp;quot;Liiklus&amp;quot; \&lt;br /&gt;
    &#039;DEF:in=/home/kasutjaa/liiklus.rrd:in:AVERAGE&#039; \&lt;br /&gt;
    &#039;DEF:out=/home/kasutaja/liiklus.rrd:out:AVERAGE&#039; \&lt;br /&gt;
    &#039;CDEF:kbin=in,1024,/&#039; \&lt;br /&gt;
    &#039;CDEF:kbout=out,1024,/&#039; \&lt;br /&gt;
    &#039;CDEF:outg=out,-1,/&#039; \&lt;br /&gt;
    &#039;CDEF:background=in,POP,LTIME,1209600,%,604800,LE,INF,UNKN,IF&#039; \&lt;br /&gt;
    &#039;CDEF:backgroundN=background,-1,*&#039; \&lt;br /&gt;
    &#039;AREA:background#F3F3F3&#039; \&lt;br /&gt;
    &#039;AREA:backgroundN#F3F3F3&#039; \&lt;br /&gt;
    &#039;HRULE:262144#FF0000&#039; \&lt;br /&gt;
    &#039;HRULE:131072#FF0000&#039; \&lt;br /&gt;
    &#039;HRULE:32768#FF0000&#039; \&lt;br /&gt;
    &#039;HRULE:-32768#FF0000&#039; \&lt;br /&gt;
    &#039;HRULE:-131072#FF0000&#039; \&lt;br /&gt;
    &#039;HRULE:-262144#FF0000&#039; \&lt;br /&gt;
    &#039;AREA:in#91ACF1&#039; \&lt;br /&gt;
    &#039;AREA:outg#FF9090&#039; \&lt;br /&gt;
    &#039;LINE1:in#767676&#039; \&lt;br /&gt;
    &#039;LINE1:outg#767676&#039; \&lt;br /&gt;
    &#039;GPRINT:kbin:LAST:Viimati sisse \:   %3.2lf KB&#039; \&lt;br /&gt;
    &#039;GPRINT:kbout:LAST:Viimati välja \:   %3.2lf KB\j&#039; \&lt;br /&gt;
    &#039;GPRINT:kbin:AVERAGE:Keskmiselt sisse\: %3.2lf KB&#039; \&lt;br /&gt;
    &#039;GPRINT:kbout:AVERAGE:Keskmiselt välja\:%3.2lf KB\j&#039;&lt;br /&gt;
 &lt;br /&gt;
 /usr/local/bin/rrdtool graph /home/kasutaja/public_html/g-aasta.png -a PNG -A -w 800 -h 300 -s -8064h -v &amp;quot;Liiklus&amp;quot; \&lt;br /&gt;
    &#039;DEF:in=/home/kasutaja/liiklus.rrd:in:AVERAGE&#039; \&lt;br /&gt;
    &#039;DEF:out=/home/kasutaja/liiklus.rrd:out:AVERAGE&#039; \&lt;br /&gt;
    &#039;CDEF:kbin=in,1024,/&#039; \&lt;br /&gt;
    &#039;CDEF:kbout=out,1024,/&#039; \&lt;br /&gt;
    &#039;CDEF:outg=out,-1,/&#039; \&lt;br /&gt;
    &#039;HRULE:262144#FF0000&#039; \&lt;br /&gt;
    &#039;HRULE:131072#FF0000&#039; \&lt;br /&gt;
    &#039;HRULE:32768#FF0000&#039; \&lt;br /&gt;
    &#039;HRULE:-32768#FF0000&#039; \&lt;br /&gt;
    &#039;HRULE:-131072#FF0000&#039; \&lt;br /&gt;
    &#039;HRULE:-262144#FF0000&#039; \&lt;br /&gt;
    &#039;AREA:in#91ACF1&#039; \&lt;br /&gt;
    &#039;AREA:outg#FF9090&#039; \&lt;br /&gt;
    &#039;LINE1:in#767676&#039; \&lt;br /&gt;
    &#039;LINE1:outg#767676&#039; \&lt;br /&gt;
    &#039;GPRINT:kbin:LAST:Viimati sisse \:   %3.2lf KB&#039; \&lt;br /&gt;
    &#039;GPRINT:kbout:LAST:Viimati välja \:   %3.2lf KB\j&#039; \&lt;br /&gt;
    &#039;GPRINT:kbin:AVERAGE:Keskmiselt sisse\: %3.2lf KB&#039; \&lt;br /&gt;
    &#039;GPRINT:kbout:AVERAGE:Keskmiselt välja\:%3.2lf KB\j&#039;&lt;br /&gt;
&lt;br /&gt;
Muudame vastavalt leiduvad rajad failis õigeks. Rajad, mida vaja muuta on&lt;br /&gt;
&lt;br /&gt;
 /usr/local/bin/rrdtool graph /home/kasutaja/public_html/g-p2ev.png -a PNG -A -w 800 -h 300 -s -24h -v &amp;quot;Liiklus&amp;quot; \&lt;br /&gt;
    &#039;DEF:in=/home/kasutaja/rrdtool/liiklus.rrd:in:AVERAGE&#039; \&lt;br /&gt;
    &#039;DEF:out=/home/kasutaja/rrdtool/liiklus.rrd:out:AVERAGE&#039; \&lt;br /&gt;
&lt;br /&gt;
Esimene on graafikupildi asukoht ja kaks teist on liiklus.rrd ehk rrdtooli andmebaasifaili asukoht.&lt;br /&gt;
&lt;br /&gt;
Lisame cron’i graafikuloomis skriptide käivitamise, avame /etc/crontab, lisame read &lt;br /&gt;
&lt;br /&gt;
 */1     *       *       *       *       root    /usr/home/kasutaja/liiklus.sh &amp;gt; /dev/null&lt;br /&gt;
 */5     *       *       *       *       root    /usr/home/kasutaja/g.sh &amp;gt; /dev/null&lt;br /&gt;
&lt;br /&gt;
Nagu näha, küsime snmp’ga infot ja lisame rrdtool’i andmebaasi seda iga minut, aga graafikud joonistame iga 5 minuti järel. Praegu on see halb, et korraga loome iga kord päeva, kuu, nädala ja aasta graafiku. Võib näiteks g.sh lüüa lahti kolmeks skriptiks, mida omakorda gron käivitab vastavalt kord päev, kord nädalas, kord aastas ;)&lt;br /&gt;
&lt;br /&gt;
Tulemuseks saame neli pilti. Toome esile siin päevagraafiku.&lt;br /&gt;
&lt;br /&gt;
[[Image:g-p2ev.png]]&lt;br /&gt;
&lt;br /&gt;
Loome mingi html faili, mis näitab tekitatud pilte&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Kogu edasine info netis http://people.ee.ethz.ch/~oetiker/webtools/rrdtool/&lt;/div&gt;</summary>
		<author><name>Triinu</name></author>
	</entry>
	<entry>
		<id>https://kuutorvaja.eenet.ee/w/index.php?title=FreeBSD_jail&amp;diff=2906</id>
		<title>FreeBSD jail</title>
		<link rel="alternate" type="text/html" href="https://kuutorvaja.eenet.ee/w/index.php?title=FreeBSD_jail&amp;diff=2906"/>
		<updated>2007-01-31T09:35:56Z</updated>

		<summary type="html">&lt;p&gt;Triinu: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;&#039;&#039;&#039;jail kiirelt ja mustalt&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Minu arvuti ip on 172.17.0.183, jaili ip hakkab olema 172.17.0.184 ning jaili enda asukoht /usr/jail/jail1.&lt;br /&gt;
&lt;br /&gt;
Esimesena kompileerime kokku süsteemi source ...eeldusel ,et see on olemas&lt;br /&gt;
&lt;br /&gt;
cd /usr/src &amp;amp;&amp;amp; make buildworld&lt;br /&gt;
&lt;br /&gt;
nüüd loome väikese skripti, mis meisterdab meile soovitud kohta jaili valmis. jaili asukoht määratakse süsteemis muutuja D abil&lt;br /&gt;
&lt;br /&gt;
 #!/bin/sh&lt;br /&gt;
 D=/usr/jail/jail1&lt;br /&gt;
 cd /usr/src&lt;br /&gt;
 mkdir -p $D&lt;br /&gt;
 make installworld DESTDIR=$D&lt;br /&gt;
 cd /usr/src/etc&lt;br /&gt;
 make distribution DESTDIR=$D&lt;br /&gt;
 mount_devfs devfs $D/dev&lt;br /&gt;
 cd $D&lt;br /&gt;
 ln -sf dev/null kernel&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
vajalik arvuti /etc/rc.confi lisada&lt;br /&gt;
&lt;br /&gt;
 ifconfig_fxp0=&amp;quot;inet 172.17.0.183 netmask 255.255.255.0&amp;quot;&lt;br /&gt;
 ifconfig_fxp0_alias0=&amp;quot;inet 172.17.0.184 netmask 0xFFFFFFFF&amp;quot;&lt;br /&gt;
 &lt;br /&gt;
 # make it not conflict with jail&lt;br /&gt;
 inetd_flags=&amp;quot;-wW -a 172.17.0.183&amp;quot;&lt;br /&gt;
 &lt;br /&gt;
 # make syslog listen only on a local socket&lt;br /&gt;
 syslogd_flags=&amp;quot;-ss&amp;quot;&lt;br /&gt;
 &lt;br /&gt;
 # rpcbind would conflict with jail&lt;br /&gt;
 rpcbind_enable=&amp;quot;NO&amp;quot;&lt;br /&gt;
 &lt;br /&gt;
 # configure jail&lt;br /&gt;
 jail_enable=&amp;quot;YES&amp;quot;&lt;br /&gt;
 jail_list=&amp;quot;test&amp;quot;&lt;br /&gt;
 jail_test_hostname=&amp;quot;yhikas&amp;quot;&lt;br /&gt;
 jail_test_ip=&amp;quot;172.17.0.184&amp;quot;&lt;br /&gt;
 jail_test_rootdir=&amp;quot;/usr/jail/jail1&amp;quot;&lt;br /&gt;
 jail_test_exec=&amp;quot;/bin/sh /etc/rc&amp;quot;&lt;br /&gt;
 jail_test_procfs_enable=&amp;quot;Yes&amp;quot; &lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
masina /etc/ssh/sshd_config lisame sellise konfi&lt;br /&gt;
 Port            22&lt;br /&gt;
 Protocol        2&lt;br /&gt;
 ListenAddress   172.17.0.183&lt;br /&gt;
 UseDNS          no&lt;br /&gt;
 Subsystem       sftp    /usr/libexec/sftp-server&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
jaili /etc/rc.conf&lt;br /&gt;
&lt;br /&gt;
 rpcbind_enable=&amp;quot;NO&amp;quot;&lt;br /&gt;
 network_interfaces=&amp;quot;&amp;quot;&lt;br /&gt;
 hostname=&amp;quot;yhikas&amp;quot;&lt;br /&gt;
 sshd_enable=&amp;quot;YES&amp;quot;&lt;br /&gt;
 sendmail_enable=&amp;quot;NO&amp;quot;&lt;br /&gt;
 syslogd_flags=&amp;quot;-ss&amp;quot;&lt;br /&gt;
 inetd_flags=&amp;quot;-wW -a 172.17.0.184&amp;quot;&lt;br /&gt;
&lt;br /&gt;
Jaili /etc/ssh/sshd_config&lt;br /&gt;
&lt;br /&gt;
 Port            22&lt;br /&gt;
 Protocol        2&lt;br /&gt;
 ListenAddress   172.17.0.184&lt;br /&gt;
 UseDNS          no&lt;br /&gt;
 Subsystem       sftp    /usr/libexec/sftp-server&lt;br /&gt;
&lt;br /&gt;
Jaili tyhi /etc/fstab&lt;br /&gt;
 touch /mnt/jail/etc/fstab&lt;br /&gt;
&lt;br /&gt;
Jaili /etc/resolv.conf kirjutame enda nimeserveri, mida kasutame, mina kirjutasin sinna kadri.ut.ee&lt;br /&gt;
 echo &amp;quot;nameserver 193.40.5.94&amp;quot; &amp;gt;&amp;gt; /mnt/jail/etc/resolv.conf&lt;br /&gt;
&lt;br /&gt;
 ln -s /var/run/log /mnt/jail/dev/log&lt;br /&gt;
&lt;br /&gt;
paneme jaili käima lähme sinna sisse&lt;br /&gt;
 jail /usr/jail/jail1 test 172.17.0.184 /bin/sh&lt;br /&gt;
&lt;br /&gt;
nüüd võib luua userid seada root kasutaja parooli&lt;br /&gt;
&lt;br /&gt;
nüüd peale rebooti hakkab jail tööle&lt;br /&gt;
&lt;br /&gt;
võib logida sinna enda kasutajanimega ssh abil&lt;/div&gt;</summary>
		<author><name>Triinu</name></author>
	</entry>
	<entry>
		<id>https://kuutorvaja.eenet.ee/w/index.php?title=Kohtv%C3%B5rgu_kaitse&amp;diff=2905</id>
		<title>Kohtvõrgu kaitse</title>
		<link rel="alternate" type="text/html" href="https://kuutorvaja.eenet.ee/w/index.php?title=Kohtv%C3%B5rgu_kaitse&amp;diff=2905"/>
		<updated>2007-01-31T09:26:10Z</updated>

		<summary type="html">&lt;p&gt;Triinu: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;===Kohtvõrk===&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Kohtvõrguks&#039;&#039;&#039; (ingl. k. LAN - Local Area Network) nimetatakse sellist arvutivõrku, mis asub füüsiliselt piiratud alal ning mille võrguteenused on mõeldud kasutamiseks sama võrgu klientidele. Tüüpiliselt on kohtvõrgud ehitatud kasutades Etherneti tehnoloogiat, so arvutid on omavahel ühendatud koaksiaal- või keerupaari kaablitega. Kohtvõrk võib koosneda mitmest alamvõrgust, mis on omavahel ühendatud sobivate võrguseadmetega. Näiteks on koolimajasisene arvutivõrk kohtvõrk, serveriga on ühendatud kaks alamvõrku &lt;br /&gt;
     ___________________________&lt;br /&gt;
       _|_       _|_  _|_    |&lt;br /&gt;
      |___| ... |___||___|   |&lt;br /&gt;
                             |  &lt;br /&gt;
        raamatukogu        __|__&lt;br /&gt;
                          |     |  server&lt;br /&gt;
                          |     | &lt;br /&gt;
                          |_____|&lt;br /&gt;
                             |	&lt;br /&gt;
     ________________________|__&lt;br /&gt;
       _|_       _|_  _|_            &lt;br /&gt;
      |___| ... |___||___|           &lt;br /&gt;
 &lt;br /&gt;
        arvutiklass&lt;br /&gt;
&lt;br /&gt;
Koolimaja serveris asuvad kasutajate kodukataloogid, sealt kontollitakse, millist printerit saab keegi kasutada ja server korraldab kohalikele kasutajatele e-posti vahetamist.&lt;br /&gt;
&lt;br /&gt;
===Kohtvõrgu ühendamine Internetti===&lt;br /&gt;
&lt;br /&gt;
Hiljem või varem nõuavad süsteemi kasutajad, lisaks kohtvõrgu teenustele, võimalust kasutada Internetis pakutavaid teenuseid - veeb, e-post, FTP arhiivid ja kõikvõimalikud nendest tuletatud teenused, näiteks veebipank. &lt;br /&gt;
&lt;br /&gt;
Tehniliselt on Internet ===laivõrk=== (ingl. k. WAN - Wide Area Network), koosnedes paljudest omavahel ühendatud kohtvõrkudest. Kohtvõrkude omavaheliseks ühendamiseks kasutatakse näiteks telefoniliine, raadiosidet, valguskaablit. &lt;br /&gt;
&lt;br /&gt;
Ühendades kohtvõrgu Internetti, saab lisaks väliste teenuste kasutamisele hakata kohtvõrgu seest pakkuma ka teistele, sh oma kasutajatele, väljapoole teenuseid, näiteks kohalik veebiserver ja e-post. Skeem kujutab Internetti ühendatud kohtvõrku &lt;br /&gt;
                ..  ^^   -- - )&lt;br /&gt;
            ((     INTERNET           )))&lt;br /&gt;
        (                . . .            )&lt;br /&gt;
               ( .,,         ..-.-. )&lt;br /&gt;
                         |&lt;br /&gt;
                         |                             &lt;br /&gt;
                         |                              &lt;br /&gt;
                         |          &lt;br /&gt;
                         |          &lt;br /&gt;
         ________________|__________&lt;br /&gt;
           _|_       _|_  _|_    |&lt;br /&gt;
          |___| ... |___||___|   |&lt;br /&gt;
                                 |  &lt;br /&gt;
            raamatukogu        __|__&lt;br /&gt;
                              |     |  server&lt;br /&gt;
                              |     |&lt;br /&gt;
                              |_____|&lt;br /&gt;
                                 |	&lt;br /&gt;
         ________________________|__&lt;br /&gt;
           _|_       _|_  _|_            &lt;br /&gt;
          |___| ... |___||___|           &lt;br /&gt;
 &lt;br /&gt;
            arvutiklass&lt;br /&gt;
&lt;br /&gt;
Toodud skeem toimib, kuid allpool näeme, miks see ei ole alati parim lahendus. &lt;br /&gt;
&lt;br /&gt;
Kohtvõrgu ühendamisest Internetti tulenevad turvaprobleemid, nimelt kujutab Internet potensiaalselt ohtu kohtvõrgule ja vastupidi. Mõlemad vajavad kaitset.&lt;br /&gt;
Kohtvõrku ja selle kasutajaid tuleb kaitsta võimalike väljast-sisse tulevate rünnakute eest. Internetti tuleb kaitsta võimalike seest-välja minevate rünnakute eest. Kohtvõrku tuleb kaitsta seestpoolt tulevate selle sama kohtvõrgu ja tema kasutajate vastu suunatud rünnakute eest. &lt;br /&gt;
&lt;br /&gt;
Töötavas süsteemis peab lisaks nimetatud kaitsete realiseerimisele jääma kasutajatele võimalus süsteemi tarvitada. Mida turvalisem on süsteem, seda ebamugavam on ta reeglina kasutaja jaoks. Oskuslikul konfigureerimisel tunnevad kasutajad end suhteliselt normaalselt ning ka süsteem on suhteliselt turvaline. Sõltuvalt pakutavatest ja tarvitatavatest teenustest võib olla selle saavutamine lihtsam või keerulisem.&lt;br /&gt;
&lt;br /&gt;
===Rünnakud===&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Tänapäeval on tundlikku informatsiooni sisalduvad serverid piisavalt hästi kaitstud ja seega on põhiline ründaja motivatsioon sportlik huvi või lihsalt soov segadust tekitada. Eristakse kolme rünnaku eesmärki, üks võib tuua kaasa teise &lt;br /&gt;
&lt;br /&gt;
===sissetung&#039;&#039; - tulemusena saab ründaja süsteemi kasutaja või administraatori õigused ning kontrollib süsteemi&lt;br /&gt;
&lt;br /&gt;
===DoS=== (ingl. k. Denial of Service) - näiteks &amp;quot;uputab&amp;quot; keegi teie süsteemi saates sinna suurtes kogustes e-posti; tulemusena ei saa ründaja küll midagi olulist kätte, va süsteemi töö halvamine&lt;br /&gt;
&lt;br /&gt;
===info vargus=== - näiteks ühendatakse andmeliinile füüsiliselt külge pealtkuulamisseade, so vastavalt konfigureeritud arvuti, ning salvestatakse kõik või teatud tunnustega andmed; tüüpiliselt kasutatakse saadud andmeid edasiseks sissetungiks &lt;br /&gt;
&lt;br /&gt;
Kõige primitiivsemaks sissetungi mooduseks on püüda aimata ära mõne süsteemi legaalse kasutaja kasutajanimi ja parool ning sisse logida. Teine populaarne sissetungi viis on kasutada ära mõne kohtvõrgu avaliku serveri programmivigu, mida tõenäoliselt igasugune tarkvara sisaldab. Näiteks e-posti serverina kasutatav programm Sendmail peab tavaliselt olema nõus suhtlema igasuguste &amp;quot;külalistega&amp;quot;. Sendmail võimaldab kliendil anda protokolliga ettenähtud korraldusi ning seejärel täidab neid. Eeldatavasti ei kujuta see ohtu süsteemile ja äärmisel juhul lihtsalt toimib DoS-ina. Teatud puhkudel saab serveri protokolli ja selle realiseerimise piiril tegutsedes keelitada süsteemi tegema midagi, mida ta teha ei tohiks. Näiteks saatma e-postiga välja kohaliku süsteemi kasutajate paroolifaili. Seda omades on aga sissetungijal juba hõlpsam edasi tegutseda. &lt;br /&gt;
&lt;br /&gt;
Kõige raskem on süsteemi kaitsta seestpoolt tulevate rünnakute eest, mis on ka kõige sagedasemad. Süsteemi on seestpoolt rünnata lihsam juba seetõttu, et ollakse süsteemi kasutaja ning omatakse ligipääsu, sh füüsilist ligipääsu. Tegemist võib olla tõeliselt pahatahtlike kohalike kasutajatega või lihtsalt teadmatusega. Näiteks valivad kasutajad endale liiga kergesti äraaimatava parooli või ei hoia seda endateada.&lt;br /&gt;
&lt;br /&gt;
===Kaitse===&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Kaitse eemärk on väärata väljast sisse tulevad nii serveri kui üksikute kohtvõrgu arvutite vastu suunatud rünnakud. Samuti kaitsta seest lähtuvate võimalike rünnakute eest kohalikke ja väljaspool asuvaid masinaid. &lt;br /&gt;
&lt;br /&gt;
Kasutades eelmisel skeemil toodud arvutite paigutust, tuleks vähemalt kõiki raamatukogu arvuteid ja serverit eraldi kindlustada. See vastab ===masina taseme kaitsele=== (ingl. k. host-level security) ja on suheliselt töömahukas. &lt;br /&gt;
&lt;br /&gt;
Kasutades samu riistvaralisi vahendeid saab kaitse realiseerimist oluliselt lihtsustada, paigutades kohtvõrgu arvutid selliselt &lt;br /&gt;
&lt;br /&gt;
                ..  ^^   -- - )&lt;br /&gt;
            ((     INTERNET           )))&lt;br /&gt;
        (                . . .            )&lt;br /&gt;
               ( .,,         ..-.-. )&lt;br /&gt;
                         |&lt;br /&gt;
                        _|__&lt;br /&gt;
                       |    | server &lt;br /&gt;
                       |    |&lt;br /&gt;
                       |____|&lt;br /&gt;
                        |  |__________________________&lt;br /&gt;
                        |          _|_       _|_  _|_ &lt;br /&gt;
                        |         |___| ... |___||___|&lt;br /&gt;
      __________________|            &lt;br /&gt;
      _|_       _|_  _|_            raamatukogu&lt;br /&gt;
     |___| ... |___||___|&lt;br /&gt;
 &lt;br /&gt;
       arvutiklass&lt;br /&gt;
&lt;br /&gt;
Antud juhul liiguvad andmed kohtvõrgu arvutite ja välismaailma vahel mõlemas suunas läbi ühe sõlmpunkti (ingl. k. choke point), so antud juhul serveri. Kuna sõlmpunktiks olev arvuti saab seda liiklust kontrollida ja otsustada milliseid ühendusi lubatakse, siis selliselt tööle seatud arvutit nimetatakse tulemüüriks. Selline skeem vastab võrgutaseme kaitsele (ingl. k. network-level security), kuivõrd ühe arvutiga on kaitstud terve arvutivõrk, antud juhul isegi kaks. &lt;br /&gt;
&lt;br /&gt;
Ennekõike peab tulemüür olema ise võimalikult raskesti sissetungitav. Näiteks kui pahalane on saanud haarata tulemüüris juurkasutaja õigused, saab ta antud juhul kuulata pealt kõike alamvõrkudes toimuvat. &lt;br /&gt;
&lt;br /&gt;
Kaitse algab sellest, et teadvustatakse endale ohud ning otsustatakse kuidas neile vastu seista. Kaitse peab muuseas võimaldama võimalikult vara aru saada, et keegi tunneb teie süsteemi vastu kahtlast huvi. Näiteks saab enamuse serverid konfigureerida nii, et nad logivad teatud tunnustega pöördumisi.&lt;br /&gt;
&lt;br /&gt;
===Tulemüür===&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Tulemüüri konfigureerimisel soovitatakse lähtuda sellest, et keelatud on kõik, va see, mis on lubatud. Näiteks soovides lubada välismaailmal külastada vaid veebiserverit, tuleb keelata kõik sissetulevad ühenduse loomise katsed ja lubada ligipääs ainult sellele pordile, millele vastab veebiserver. &lt;br /&gt;
&lt;br /&gt;
Tulemüür töötab tavaliselt kahel tasemel: &lt;br /&gt;
võrgutase - kontrollitakse IP-pakettide liiklust, näiteks IP-filter &lt;br /&gt;
rakendustase - kontrollitakse erinevate rakenduste protokollide tasemel andmevahetust, näiteks vahendusservereid (ingl. k. Proxy)&lt;br /&gt;
&lt;br /&gt;
===IP filter===&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Tüüpiliselt kasutatakse tulemüüris andmete liikumise kontrollimiseks IP-filtrit. IP-filtri abil saab hõlpsasti reguleerida IP-pakettide liiklust vastavalt IP-paketi päises olevate andmetele, näiteks lähte- ja sihtaadressi ja vastavate portide järgi. &lt;br /&gt;
&lt;br /&gt;
IP-filtri kasutamise eelised on: &lt;br /&gt;
ühte kohta saab luua sõlmpunkti, mis reguleerib liiklust kahe või enama alamvõrgu vahel, näiteks kahe alamvõrgu ja Interneti vahel &lt;br /&gt;
tulemüür on kasutajale nähtamatu - kui vastavaid pakette lubatakse läbi, siis ühendus toimub, kui mitte, siis ühendust ei toimu; kasutaja ei pea omama tööjaamas spetsiaalset tarkvara ega tarvitama standardset tarkvara erilisel viisil. &lt;br /&gt;
&lt;br /&gt;
IP-filtri kasutamise puuduseks on see, et kuna filter toimib nii madalal tasemel (IP-tasemel), siis on raske kontrollida mis sisuga ühendusi peetakse. Logimisel ei saa olulist infot. &lt;br /&gt;
&lt;br /&gt;
===Vahendusserver===&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Äärmuslikul juhul saab rakendada tulemüüris IP-filtrit selliselt, et IP-paketid ei saagi otse tulemüürist läbi. Tulemüür eraldab kohtvõrgud Internetist. Et siiski kohtvõrgu kliendid saaksid väliseid teenuseid pruukida, kasutatakse tulemüüris vahendusserverid, mis on olemas enamusele olulistele teenustele. &lt;br /&gt;
&lt;br /&gt;
Kui klient soovib näiteks külastada välist veebiserverit, siis esitab ta vastava päringu HTTP vahendusserverile ning too võtab omakorda ühendust välise veebiserveriga. Väline veebiserver saadab andmed vahendusserverile ning too omakorda kliendile. &lt;br /&gt;
    klient                                     server&lt;br /&gt;
      ____                                      ____&lt;br /&gt;
     |    |                                    |    |&lt;br /&gt;
     |____|                                    |____|&lt;br /&gt;
 &lt;br /&gt;
          \                                  /&lt;br /&gt;
             \                            /&lt;br /&gt;
                \                      /&lt;br /&gt;
                   \                /&lt;br /&gt;
                      \          /&lt;br /&gt;
                           ____&lt;br /&gt;
                tulemüür  |    |  HTTP vahendusserver&lt;br /&gt;
                          |____| &lt;br /&gt;
 &lt;br /&gt;
&lt;br /&gt;
Kliendile jääb illusioon, et ta suhtleb otse välise severiga, kuid välisel serveril jääb mulje, et temaga suhtlevaks kliendiks ongi vahendusserver ise. &lt;br /&gt;
&lt;br /&gt;
Nii toimivat vahendusserverit nimetatakse &#039;&#039;&#039;rakendustaseme vahendusserveriks&#039;&#039;&#039; (ingl. k. application-level proxy) ning tema eeliseks on, et lisaks vahendustegevusele on võimalik tulemüüris sekkuda andmevahetusse, sh logida suhteliselt põhjalikult, kuna tegutsetakse kõrgel tasemel (protokolli tasemel). &lt;br /&gt;
&lt;br /&gt;
Tavaliselt saab rakendustaseme vahendusserveri kasutamisel tarvitada neid samu klientprogramme, mida tavaliselt, kuid nad tuleb vastavalt konfigureerida või kasutamise käigus näidata, millise vahendusserveri kaudu toimetatakse (ingl. k. custom user procedures for proxying). Näiteks tuleb Lynxi jaoks väärtustada keskkonnamuutuja HTTP_PROXY masina nime ja pordi numbriga, kus HTTP vahendusserver töötab. &lt;br /&gt;
&lt;br /&gt;
Praktiliselt võimaldavad vahendusserverid andmeid ka ladustada. Näiteks kui üks klient esitab HTTP vahendusserverile päringu, siis ta saadab talle vastuseks soovitud andmed ning salvestab need teatud ajaks ka endale lattu. Kui tuleb järgmine päring samale aadressile ning vahepeal pole möödunud liiga palju aega, siis ei pruugi vahendusserver enam neile andmetele uuesti järele minna, vaid annab pärijale andmed oma laost.&lt;/div&gt;</summary>
		<author><name>Triinu</name></author>
	</entry>
	<entry>
		<id>https://kuutorvaja.eenet.ee/w/index.php?title=Samba_installeerimine&amp;diff=2902</id>
		<title>Samba installeerimine</title>
		<link rel="alternate" type="text/html" href="https://kuutorvaja.eenet.ee/w/index.php?title=Samba_installeerimine&amp;diff=2902"/>
		<updated>2007-01-31T09:13:11Z</updated>

		<summary type="html">&lt;p&gt;Triinu: /* Installeerimine */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;&lt;br /&gt;
===Tarkvara hankimine===&lt;br /&gt;
&lt;br /&gt;
Samba tuleb kaasa enamuse levinud Linuxi distributsioonidega. Soovides seda ise kompileerida, tuleb külastada Samba veebikohta ning kopeerida sealt sobiv lähtetekstide komplekt.&lt;br /&gt;
&lt;br /&gt;
===Installeerimine===&lt;br /&gt;
&lt;br /&gt;
Kasutades oma distributsiooni pakette, ei tule teil midagi kompileerida, vaid ainult lahti pakkida. Soovides ise kompileerida, peab teil olema C kompilaator ja muud vahendid. Lühidalt sama varustus, mis Linuxi tuuma tegemiseks, lisaks ka tuuma include failid. Vajalikud juhtnöörid on lisatud lähtetekstide juurde. &lt;br /&gt;
&lt;br /&gt;
Tüüpiliselt piisab peale tarkvara lähtetekstide lahtipakkimist käskudest &lt;br /&gt;
bash# ./configure --prefix=/usr/local/samba&lt;br /&gt;
bash# make&lt;br /&gt;
bash# make install&lt;br /&gt;
&lt;br /&gt;
Antud juhul installeeritakse kõik sambat puudutav kataloogi /usr/local/samba alla. Näiteks serverid smbd ja nmbd ning smbclient pannakse kataloogi /usr/local/samba/bin, mida ilmselt ei ole vaikimisi tee peal ja seda asjaolu peab arvestama. &lt;br /&gt;
&lt;br /&gt;
Kuna Samba on suhteliselt populaarne, et mitte öelda standardne, siis on tõenäoliselt teie süsteemi teenustefailis /etc/services juba olemas read &lt;br /&gt;
      netbios-ns      137/tcp         nbns&lt;br /&gt;
      netbios-ns      137/udp         nbns&lt;br /&gt;
      netbios-dgm     138/tcp         nbdgm&lt;br /&gt;
      netbios-dgm     138/udp         nbdgm&lt;br /&gt;
      netbios-ssn     139/tcp         nbssn&lt;br /&gt;
&lt;br /&gt;
© EENet 2000&lt;/div&gt;</summary>
		<author><name>Triinu</name></author>
	</entry>
	<entry>
		<id>https://kuutorvaja.eenet.ee/w/index.php?title=Apache%27i_veebiserver&amp;diff=2846</id>
		<title>Apache&#039;i veebiserver</title>
		<link rel="alternate" type="text/html" href="https://kuutorvaja.eenet.ee/w/index.php?title=Apache%27i_veebiserver&amp;diff=2846"/>
		<updated>2007-01-26T14:16:09Z</updated>

		<summary type="html">&lt;p&gt;Triinu: /* Nimepõhised virtuaalveebiserverid */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;===Veebiserveri konfigureerimine ja käivitamine===&lt;br /&gt;
&lt;br /&gt;
Veebiserveri tööd juhib üks konfiguratsioonifail httpd.conf. Sellesse kirjutatake parameetrid üks reale, kusjuures # märgiga algavaid ridu ignoreeritakse. Ridu saab jätkata sisestades kurakallu (\) viimase sümbolina eelmisele reale, tegelikult eelviimasena, viimane on reavahetus :)&lt;br /&gt;
&lt;br /&gt;
Lihtsal juhul võiks olla konfiguratsioonifail selline&lt;br /&gt;
&lt;br /&gt;
 User nobody&lt;br /&gt;
 Group nobody&lt;br /&gt;
 ServerType standalone&lt;br /&gt;
 ServerName www.zoo.tartu.ee&lt;br /&gt;
 ServerRoot &amp;quot;/usr/local/apache&amp;quot;&lt;br /&gt;
 DocumentRoot &amp;quot;/html&amp;quot;&lt;br /&gt;
 DirectoryIndex index.html&lt;br /&gt;
 ErrorLog /var/log/apache/error.log&lt;br /&gt;
 Listen 80&lt;br /&gt;
 Options None&lt;br /&gt;
 &amp;lt;Directory /&amp;gt;&lt;br /&gt;
 AllowOverride None&lt;br /&gt;
 &amp;lt;/Directory&amp;gt;&lt;br /&gt;
&lt;br /&gt;
kus on kasutatud järgmisi direktiive&lt;br /&gt;
&lt;br /&gt;
    * User - kasutaja, kelle õigustes veebiserver töötab&lt;br /&gt;
    * Group - grupp, kelle õigustes veebiserver töötab&lt;br /&gt;
    * ServerType - serveri tüüp, tavaliselt standalone, so mitte inetd abil käivitatav&lt;br /&gt;
    * ServerName - millise nime server arvab endal olevat&lt;br /&gt;
    * ServerRoot - kataloog, mille all serveri programmid asuvad&lt;br /&gt;
    * DocumentRoot - veebifailid, mida külastajaile serveeritakse&lt;br /&gt;
    * DirectoryIndex - faili nimi, mis brauserisse saadetakse, kui ta küsib kataloogi eeldusel, et sellenimeline fail kataloogis leidub&lt;br /&gt;
    * ErrorLog - fail, kuhu saadetakse veateated; kataloog, kus see fail asub peab olema kindlasti olemas!&lt;br /&gt;
    * Listen - port, millel veebiserver ootab päringuid, kõigil võrguseadmetel&lt;br /&gt;
    * Options - väärtus None tagab, et külastajale näidatakse vaid neid veebilehti, mida ta nimeliselt küsib. &lt;br /&gt;
&lt;br /&gt;
Reeglina on veebiserverina töötaval arvutil nö tavaline nimi, näiteks kalake.zoo.tartu.ee ning nimeserveris on talle defineeritud lisaks ka mõned hüüdnimed (CNAMEga). Tavaliselt kasutatakse veebiserveri nime alguses kombinatsiooni www, kokku saab antud juhul www.zoo.tartu.ee, kuid veebiserveri nimi ei pea sugugi algama www-ga olles näiteks see sama kalake.zoo.tartu.ee.&lt;br /&gt;
&lt;br /&gt;
Konfiguratsioonifailis kasutatud kataloogid peavad süsteemis leiduma, toodud näites peavad nad kuuluma lähtudes turvakaalutlustest juurkasutajale; samuti nendest kataloogidest ülevalpool asuvad kataloogid.&lt;br /&gt;
&lt;br /&gt;
Reeglina on süsteemis vaikimisi olemas mitteprivilegeeritud kasutaja nobody grupiga nobody. Võib kasutada seda või luua spetsiaalne kasutaja, näiteks apache grupiga veeb. Veebiserveri mittekäivitumise põhjuseks on tihtipeale vastavate kasutajate puudumine süsteemis.&lt;br /&gt;
&lt;br /&gt;
Näidates võrguseadme nime, vastatakse ainult sellelt seadmelt tulevaile päringutele, näiteks &#039;Listen 193.40.10.1 80&#039;.&lt;br /&gt;
&lt;br /&gt;
===Sektsioon===&lt;br /&gt;
&lt;br /&gt;
 &amp;lt;Directory /&amp;gt;&lt;br /&gt;
 AllowOverride None&lt;br /&gt;
 &amp;lt;/Directory&amp;gt;&lt;br /&gt;
&lt;br /&gt;
tähendab, et kataloogides pole täiendavate vahenditega õigust veebiserveri konfiguratsiooni täpsustada.&lt;br /&gt;
&lt;br /&gt;
Kuigi teatud parameetrite järjekord konfiguratsioonifailis ei ole tähtis, jääb kehtima parameetrile viimasena omistatud väärtus.&lt;br /&gt;
Käivitamine&lt;br /&gt;
&lt;br /&gt;
Veebiserver käivitatakse ja peatatakse käsuga apachectl&lt;br /&gt;
&lt;br /&gt;
 bash# apachectl start&lt;br /&gt;
&lt;br /&gt;
Peatamine toimub käsuga stop&lt;br /&gt;
&lt;br /&gt;
 bash# apachectl stop&lt;br /&gt;
&lt;br /&gt;
Peale konfiguratsioonifaili muutmist kehtestuvad muutused serveri taaskäivitamisel soovitavalt käsuga graceful, või restart&lt;br /&gt;
&lt;br /&gt;
 bash# apachectl graceful&lt;br /&gt;
&lt;br /&gt;
Veebiserver tuleb käivitada juurkasutajaõigustes, kuid ta töötab konfiguratsioonifailis näidatud User ja Group kasutajana. See tähendab, et failisüsteemi osad, mida soovitakse veebi näidata peavad olema vastavatele UNIXi kasutajatele nähtavad. Tavaliselt on nende failide kasutajagrupile other antud lugemisõigus.&lt;br /&gt;
&lt;br /&gt;
Töötavast veebiserverist annab tunnistust see, kui süsteemi protsessitabelis on httpd deemoni nimi, isegi mitu&lt;br /&gt;
&lt;br /&gt;
 bash# ps auxw | grep httpd&lt;br /&gt;
 root   30692  0.0  5.4  4236 3288  ??  Ss    4:39PM   0:00.16 /usr/local/apache/bin/httpd&lt;br /&gt;
 nobody 30840  0.0  5.5  4272 3324  ??  I     5:52PM   0:00.00 /usr/local/apache/bin/httpd&lt;br /&gt;
 nobody 30841  0.0  5.5  4272 3324  ??  I     5:52PM   0:00.00 /usr/local/apache/bin/httpd&lt;br /&gt;
 nobody 30842  0.0  5.5  4272 3324  ??  I     5:52PM   0:00.00 /usr/local/apache/bin/httpd&lt;br /&gt;
 nobody 30843  0.0  5.4  4248 3296  ??  I     5:52PM   0:00.00 /usr/local/apache/bin/httpd&lt;br /&gt;
 nobody 30844  0.0  5.4  4248 3296  ??  I     5:52PM   0:00.00 /usr/local/apache/bin/httpd&lt;br /&gt;
 nobody 30845  0.0  5.4  4256 3300  ??  I     5:52PM   0:00.00 /usr/local/apache/bin/httpd&lt;br /&gt;
&lt;br /&gt;
Aga veel parem kinnitus on, kui olemaks näitega kooskõlas päring http://www.zoo.edu.ee näitab veebilehte, so faili /html/index.html. Samuti saab antud näite rakendamisel näha kasutajate kodulehti eeldusel, et nad asuvad kataloogide ~/public_html all.&lt;br /&gt;
&lt;br /&gt;
Kui veebiserveri käivitamisel ilmneb raskusi, siis tasub uurida vealogi (/var/log/apache/error.log) sisu.&lt;br /&gt;
Automaatne käivitamine&lt;br /&gt;
&lt;br /&gt;
===Veebiressursside kasutusõigus===&lt;br /&gt;
&lt;br /&gt;
Veebiserveri konfigureerimisel on väga oluline näidata, mida vastuseks külastaja päringule tohib teha või saata või kas üldse külastajat teenindada.&lt;br /&gt;
&lt;br /&gt;
===Direktiiv Option===&lt;br /&gt;
&lt;br /&gt;
Direktiivi Options abil saab määratleda, mida kataloogis leiduvate failidega lubatakse teha. Näiteks määrates minimaalsed õigused parameetriga None, saab kataloogis sisalduvate failide poole pöörduda vaid nimeliselt; failide nimekirja ei näidata.&lt;br /&gt;
&lt;br /&gt;
 Options None&lt;br /&gt;
&lt;br /&gt;
===Muud võimalused:===&lt;br /&gt;
&lt;br /&gt;
    * FollowSymLinks - kui brauser esitatud päringus on failinimi viide, siis seda järgitakse vaatamata, kas viidatav fail kuulub samale kasutajale kui&lt;br /&gt;
      viide&lt;br /&gt;
    * SymLinksIfOwnerMatch - kui brauser esitatud päringus on failinimi viide, siis seda järgitakse juhul, kas viidatav fail kuulub samale kasutajale &lt;br /&gt;
      kellele viide&lt;br /&gt;
    * Indexes - näidatakse serveri kataloogi failide nimekirja kui DirectoryIndexis näidatud faile ei leitud&lt;br /&gt;
    * ExecCGI - CGI skriptide kasutamiseks&lt;br /&gt;
    * Includes - SSI failide kasutamiseks&lt;br /&gt;
    * IncludesNOEXEC - SSI failide kasutamiseks, va #exec ja CGI skriptide #include&lt;br /&gt;
    * All - kõik eelnimetatu on lubatud &lt;br /&gt;
&lt;br /&gt;
Korraga võib määratleda ka mitu parameetrit, eraldades nad üksteisest tühikuga.&lt;br /&gt;
&lt;br /&gt;
Kui konfiguratsioonifailis kasutada mitmel Options direktiivi, jääb kehtima viimane. Lisades parameetri algusesse + või - märgi, lisatakse või eemaldatakse vastav toime. Näiteks kasutades direktiive&lt;br /&gt;
&lt;br /&gt;
 Options Indexes Includes FollowSymLinks&lt;br /&gt;
 Options -FollowSymLinks&lt;br /&gt;
&lt;br /&gt;
on toime samaväärne avaldisega&lt;br /&gt;
&lt;br /&gt;
 Options Indexes Includes&lt;br /&gt;
&lt;br /&gt;
Direktiivi Options vaikeväärtus on All.&lt;br /&gt;
&lt;br /&gt;
===Direktiivid Allow, Deny ja Order===&lt;br /&gt;
&lt;br /&gt;
Direktiividega Allow, Deny ning Order abil saab kehtestada, millistelt domeenidelt tulevaid päringuid teenidatakse. Orderi abil seatakse, millises järjekorras kontroll toimub, kusjuures rakendatakse viimast reeglit, millega külastaja domeeninimi klapib. Kui ükski reegel ei klapi, toimitakse vaikimisi nagu viimane Orderi parameeter näitab. Näiteks sellise sektsiooni puhul&lt;br /&gt;
&lt;br /&gt;
 Order Deny,Allow&lt;br /&gt;
 Deny from all&lt;br /&gt;
 Allow from zoo.tartu.ee&lt;br /&gt;
&lt;br /&gt;
Päringut domeenist zoo.tartu.ee teenindatakse, esimene reegel (Deny) keelab kõik, kuid teine (Allow) lubab domeeni zoo.tartu.ee. Kui Order oleks vastupidi, siis lubaks esimene reegel (Allow) zoo.tartu.ee, kuid kehtima jääks viimane reegel (Deny). Reeglite järjekord failis ei loe, kuna selle määrab Order.&lt;br /&gt;
&lt;br /&gt;
Järgmises näites on lubatud päringud vaid tartu.ee domeenist, va alamdomeen zoo.tartu.ee&lt;br /&gt;
&lt;br /&gt;
 Order Allow,Deny&lt;br /&gt;
 Allow from tartu.ee&lt;br /&gt;
 Deny from zoo.tartu.ee&lt;br /&gt;
&lt;br /&gt;
Tõepoolest, päringut foo.tartu.ee domeenist teenindatakse kuna ta klapib esimese (Allow) reegliga, mis lubab ning teisega, mis keelab mitte. Päringuid muudest domeenidest keelatakse, kuna nad ei klapi kummagi reegliga ning vaikimisi rakendatakse viimast Orderi parameetrit - Deny.&lt;br /&gt;
&lt;br /&gt;
Order, Deny ja Allow direktiive saab kasutada vaid direktiivi Directory sees ning Deny ja Allow tuleb eraldada ainult täpselt ühe komaga!&lt;br /&gt;
&lt;br /&gt;
===Veebiressursside grupeerimisvahendid===&lt;br /&gt;
&lt;br /&gt;
Veebiserveri kasutusõigust ning teisi omadusi reguleerivaid parameetreid saab grupeerida järgmiste direktiividega&lt;br /&gt;
&lt;br /&gt;
    * Directory - kataloogis ning selle alla jäävate alamkataloogides sisalduvate failide grupeerimiseks&lt;br /&gt;
    * Files - faili nimede järgi failide grupeerimiseks&lt;br /&gt;
    * Location - URLi ning selle alla jäävate URLide grupeerimiseks &lt;br /&gt;
&lt;br /&gt;
Sellistele gruppidele saab rakendada korraga samu määratlusi, näiteks Option parameetriga.&lt;br /&gt;
&lt;br /&gt;
===Directory direktiiv===&lt;br /&gt;
&lt;br /&gt;
Directory abil saab määrata näidatud kataloogi alla jäävatele failidele ühesuguseid omadusi. Näiteks kehtestame, et kataloogi /html/veeb/kalamaja alla jäävates kataloogides käsitletakse DirectoryIndexina faile index.html ja index.htm&lt;br /&gt;
&lt;br /&gt;
 &amp;lt;Directory /html/veeb/kalamaja&amp;gt;&lt;br /&gt;
 DirectoryIndex index.html index.htm&lt;br /&gt;
 &amp;lt;/Directory&amp;gt;&lt;br /&gt;
&lt;br /&gt;
===Files direktiiv===&lt;br /&gt;
&lt;br /&gt;
Sarnaselt Directory&#039;le saab kehtestada näidatud regulaaravaldisega klappivate failinimedega failidele ühesuguseid omadusi. Näiteks kehtestame, et failides, mille nimi algab tähtedega &amp;quot;e_&amp;quot; ja lõpeb .html-ga, tohivad sisaldada Embperli konstruktsioone&lt;br /&gt;
&lt;br /&gt;
 &amp;lt;Files ~ &amp;quot;^e_.*\.html$&amp;quot;&amp;gt;&lt;br /&gt;
 Options +ExecCGI&lt;br /&gt;
 SetHandler perl-script&lt;br /&gt;
 PerlHandler HTML::Embperl&lt;br /&gt;
 &amp;lt;/Files&amp;gt;&lt;br /&gt;
&lt;br /&gt;
===Location direktiiv===&lt;br /&gt;
&lt;br /&gt;
Sarnaselt Directory direktiivile saab Locationiga kehtestada osale veebikohale samasuguseid omadusi. Location mõjub mitte kataloogistruktuuri, vaid URLi mõttes hulgale elementidele. Näiteks kehtestame, et URL&#039;ist http://kalake.zoo.edu.ee/hobused edasi tohib näha kataloogide nimekirja&lt;br /&gt;
&lt;br /&gt;
 &amp;lt;Location /hobused&amp;gt;&lt;br /&gt;
 Options Indexes&lt;br /&gt;
 &amp;lt;/Location&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Tavaliselt piisab Directory kasutamisest, kuid kuna veebiserveri kataloogi-ja URLihierarhia ei pruugi alati kokku langeda, siis on sellest vahel abi.&lt;br /&gt;
&lt;br /&gt;
===Kataloogipõhine veebiserveri konfigureerimine===&lt;br /&gt;
&lt;br /&gt;
Veebiserveri põhikonfiguratsioonifailis näidatud väärtusi saab iga kataloogi jaoks täpsustavalt määrata kataloogis sisalduva konfiguratsiooni .htaccess faili abil. Selle faili nimi on määratud põhikonfiguratsioonifailis direktiiviga AccessFileName, mis peab esinema Directory sees. Faili süntaks on sama, mis põhikonfiguratsioonifailil. Seda, milliseid omadusi on ludatud .htaccess failiga täpsustada, näitab põhikonfiguratsioonifailis direktiiv AllowOverride; järgmistele parameeritele vastab voli muuta toodud parameetreid&lt;br /&gt;
&lt;br /&gt;
    * AuthConfig - AuthGroupFile, AuthName, AuthType, AuthUserFile, Require jne&lt;br /&gt;
    * FileInfo - AddEncoding, AddLanguage, AddType, DefaultType, ErrorDocument jne&lt;br /&gt;
    * Indexes - DirectoryIndex, AddDescription, AddIcon, AddIconByEncoding, AddIconByType, DefaultIcon, DirectoryIndex, FancyIndexing, HeaderName,&lt;br /&gt;
      IndexIgnore, IndexOptions, ReadmeName jne&lt;br /&gt;
    * Limit - Order, Allow, Deny&lt;br /&gt;
    * Options - Options, XBitHack&lt;br /&gt;
    * None - mitte midagi&lt;br /&gt;
    * All - kõik nimetatud &lt;br /&gt;
&lt;br /&gt;
Vaikimisi toimib parameeter All. Kui ei soovita lasta kasutajatel veebiserverit konfigureerida, siis kasutage peale veebiserveri põhiosa direktiivi&lt;br /&gt;
&lt;br /&gt;
 AllowOverride None&lt;br /&gt;
&lt;br /&gt;
.htaccess failis tohib kasutada direktiivi Files, aga ei saa kasutada Diectory või Location.&lt;br /&gt;
&lt;br /&gt;
Tavaliselt on ohutu ning kasutajaile piisav&lt;br /&gt;
&lt;br /&gt;
 AllowOverride Indexes AuthConfig&lt;br /&gt;
&lt;br /&gt;
===Alias===&lt;br /&gt;
&lt;br /&gt;
Direktiiv Alias võimaldab muuta veebi failile kataloogistruktuuri vastavust URLi struktuurile. Näiteks olgu kataloogis /html/veeb/hobused/2000/tyrinaitus/ehola_talu failid ning soovime neile ligi pääseda URLiga http://www.zoo.tartu.ee/ehola_talu. Kasutame sellist Aliast&lt;br /&gt;
&lt;br /&gt;
 Alias /ehola_talu/ /html/veeb/hobused/2000/tyrinaitus/ehola_talu/&lt;br /&gt;
&lt;br /&gt;
Antud juhul laheneb päring http://www.zoo.tartu.ee/ehola_talu/, kuid mitte http://www.zoo.tartu.ee/ehola_talu.&lt;br /&gt;
&lt;br /&gt;
Lisaks saab Aliasega kaasata veebi faile ning katalooge, mis asuvad failisüsteemi mõttes väljaspool DocumentRootu.&lt;br /&gt;
&lt;br /&gt;
 Alias /valdek/ /html/valdek/veeb/&lt;br /&gt;
&lt;br /&gt;
Aliase süntaks on järgmine&lt;br /&gt;
&lt;br /&gt;
 Alias URLi-tee kataloogi-tee&lt;br /&gt;
&lt;br /&gt;
kus&lt;br /&gt;
&lt;br /&gt;
    * URLi-tee on osa URList, mis jääb peale serverinimi osa, näiteks http://www.zoo.tartu.ee/ehola_talu/ puhul /ehola_talu/&lt;br /&gt;
    * kataloogi-tee on vastava kataloogi nimi &lt;br /&gt;
&lt;br /&gt;
Aliasi saab kasutada peakonfiguratsioonifailis või võrdväärsetes kohtades, näiteks VirtualHost sektsioonis. Aliaste kasutamisel tuleb tavaliselt kasutada kataloogi tee&#039;le vastavaid Directory direktiive, muutmaks sobivaks veebiosa kasutusõigused. Aliased loetakse läbi enne Directory sektsioone.&lt;br /&gt;
&lt;br /&gt;
Aliase kasutamisel tuleb tähele panna, et URLi tee asendatakse igal juhul kataloogiteega. Kas sel juhul, kui päring on pikem, kooskõlas kasutatud näitega päringu http://www.zoo.tartu.ee/ehola_talu/ratsahobused/piiker.html puhul esitatakse fail /html/veeb/hobused/2000/tyrinaitus/ehola_talu/ratsahobused/piiker.html.&lt;br /&gt;
&lt;br /&gt;
Soovides teha paindlikumaid nö ümberkirjutusi, kasutage mod_rewrite&#039;i võimalusi.&lt;br /&gt;
&lt;br /&gt;
===CGI===&lt;br /&gt;
&lt;br /&gt;
CGI kasutamiseks lisage konfiguratsioonifaili rida&lt;br /&gt;
&lt;br /&gt;
 AddHandler cgi-script .cgi .pl&lt;br /&gt;
&lt;br /&gt;
Tulemusena püüab veebiserver käivitada kõiki serveeritavaid .cgi ja .pl lõpuliste nimedega faile, eeldusel, et failile rakendub Optioni parameeter ExecCGI. Käivitamisel tekkiv programmiväljund saadetakse brauserisse, kusjuures see peab algama tuntud Content-type&#039;iga, näiteks text/html. Seda võib teha näiteks Directory abil; kehtestame, et kõikjal veebi faile sisaldavas kataloogis /html/veeb/suhtleja ja selle all asuvad .cgi ja .pl lõpuliste nimedega failid on käivitatavad&lt;br /&gt;
&lt;br /&gt;
 &amp;lt;Directory /suhtleja&amp;gt;&lt;br /&gt;
 Options ExecCGI&lt;br /&gt;
 &amp;lt;/Directory&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Soovides näidata, et vaatamata failinimele tuleb käsitleda faili CGI skriptina, kasutage ScriptAlias direktiivi. Tüüpiliselt määratletakse URLi http://kalake.zoo.tartu.ee/cgi-bin/&#039;le vastavad failid skriptideks&lt;br /&gt;
&lt;br /&gt;
 ScriptAlias /cgi-bin/ /html/veeb/cgi-bin/&lt;br /&gt;
&lt;br /&gt;
Tulemusena, näiteks päringu http://kalake.zoo.tartu.ee/cgi-bin/kasutajatenimikiri.sh puhul käivitatakse fail /html/veeb/cgi-bin/kasutajatenimekiri.sh.&lt;br /&gt;
&lt;br /&gt;
===SSI===&lt;br /&gt;
&lt;br /&gt;
SSI (Server Sides Includes) tehnika võimaldab sisestada brauseri päringus nõutud faili koosseisu muude failide sisu.&lt;br /&gt;
&lt;br /&gt;
SSI kasutamiseks lisage konfiguratsioonifaili rida&lt;br /&gt;
&lt;br /&gt;
 AddType text/html .shtml&lt;br /&gt;
 AddHandler server-parsed .shtml&lt;br /&gt;
&lt;br /&gt;
ning näidake näiteks direktiivide Directory ja Options parameetri Includes abil, milliseid faile tohib server käsitleda SSIdena. Näiteks kehtestame, et kataloogi /html/veeb/uudised all kasutatakse SSId&lt;br /&gt;
&lt;br /&gt;
 &amp;lt;Directory /html/veeb/uudised&amp;lt;&amp;gt;&lt;br /&gt;
 Options IncludesNOEXEC&lt;br /&gt;
 &amp;lt;/Directory&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Tulemusena saab failides, mille nime lõpus on .shtml, kasutada SSI konstruktsioone, va #exec ja CGI skriptide #include.&lt;br /&gt;
&lt;br /&gt;
===Embperl===&lt;br /&gt;
&lt;br /&gt;
Embperl on tehnika, mis võimaldab sisestada HTML koodi sisse Perli konstruktsioone. Selle võimaluse kasutamiseks lisage konfiguratsioonifaili&lt;br /&gt;
&lt;br /&gt;
 &amp;lt;Files ~ &amp;quot;\.html$&amp;quot;&amp;gt;&lt;br /&gt;
 Options ExecCGI&lt;br /&gt;
 SetHandler perl-script&lt;br /&gt;
 PerlHandler HTML::Embperl&lt;br /&gt;
 &amp;lt;/Files&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Tulmusena lahendab veebiserver failides, mille nime lõpetab .html sisalduva Perli koodi.&lt;br /&gt;
&lt;br /&gt;
Muuseas, Embperli rakendamisel on veebiserver ka tavalise HTML süntaksi osas oluliselt rangem. Tüüpiliselt ei meeldi talle [# jne järgnevused, mida kasutatakse Embperli skriptide tähistamiseks. Et neid sümboleid siiski kasutada saada, esitage neid a la &amp;amp;#kood;, näiteks &amp;amp;#60;.&lt;br /&gt;
&lt;br /&gt;
===PHP===&lt;br /&gt;
&lt;br /&gt;
PHP on tehnika, mis võimaldab lisada HTML koodi sisse PHP keele konstruktsioone. Selle võimaluse kasutamiseks lisage konfiguratsioonifaili&lt;br /&gt;
&lt;br /&gt;
 AddType application/x-httpd-php .php&lt;br /&gt;
&lt;br /&gt;
Veebiserverisse konfigureeritud PHP omadusi saab näha PHP skriptiga&lt;br /&gt;
&lt;br /&gt;
 &amp;lt;?&lt;br /&gt;
 phpinfo();&lt;br /&gt;
 ?&amp;gt;&lt;br /&gt;
&lt;br /&gt;
===Serveri kasutajate kodulehed===&lt;br /&gt;
&lt;br /&gt;
Vaikimisi eeldab veebiserver, et näiteks URLile http://www.zoo.tartu.ee/~priit vastab süsteemi kasutaja priit kodukataloogis olev kataloog public_html. Selle kataloogi nime määrab direktiiv UserDir.&lt;br /&gt;
&lt;br /&gt;
===Veebi kaitsmine parooliga===&lt;br /&gt;
&lt;br /&gt;
Apache pakub vahendid veebistruktuuri kaitsmiseks parooliga. Konfiguratsioonifailis näidatakse ära, millist ressurssi kaitsta ning millist autentimissüsteemi kasutada.&lt;br /&gt;
&lt;br /&gt;
Kõige lihtsamal juhul tuleb programmiga htpasswd genereerida lubatud külastajate paroolifail, milles on kirjas kasutajanimed ning vastavad paroolid. See fail on reeglina erinev süsteemi paroolifailist, kus veebiserver töötab. Kui külastaja püüab siseneda kaitstud veebi, avaneb dialoog ning küsitakse tema kasutajanime ning parooli. Sobiva paari sisestamisel lubatakse külastaja veebile ligi, kusjuures kõnealust veebi saab kasutada kuni brauseri sulgemiseni.&lt;br /&gt;
&lt;br /&gt;
Näiteks kaitseme kataloogistruktuuri /html/salajane kirjeldatud paroolikontrolliga&lt;br /&gt;
&lt;br /&gt;
 &amp;lt;Directory /html/salajane&amp;gt;&lt;br /&gt;
 AuthUserFile /usr/local/apache/conf/salajane.paroolifail&lt;br /&gt;
 AuthType Basic&lt;br /&gt;
 AuthName Salajane&lt;br /&gt;
 require valid-user&lt;br /&gt;
 &amp;lt;/Directory&amp;gt;&lt;br /&gt;
&lt;br /&gt;
kus on kasutatud direktiive:&lt;br /&gt;
&lt;br /&gt;
    * AuthUserFile - paroolifailinimi, /usr/local/apache/conf/salajane.paroolifail&lt;br /&gt;
    * AuthType - millist tüüpi autentimisega on tegemist, antud juhul Basic&lt;br /&gt;
    * AuthName - parameetri väärtust näidatakse aknas, kuhu kasutaja sisestab oma veebi kasutajanime ja parooli; sama veebi piires saab sama kasutajanimega&lt;br /&gt;
      seostada erinevaid paroole, mistõttu peab külastaja saama teada, millist parooli konkreetsel juhul tarvitada&lt;br /&gt;
    * require valid-user - sellele ressursile lastakse ligi vaid peale edukat autentimist &lt;br /&gt;
&lt;br /&gt;
Sobiv paroolifail moodustatakse programmiga htpasswd&lt;br /&gt;
&lt;br /&gt;
 bash$ htpasswd -b -c -m salajane.paroolifail priit priiduparool&lt;br /&gt;
&lt;br /&gt;
kus&lt;br /&gt;
&lt;br /&gt;
   1. -b kasutaja parooliks loetakse käsurea viimane sõna (priiduparool)&lt;br /&gt;
   2. -c seda võtit tuleb kasutada vaid siis, kui paroolifaili veel ei eksisteeri; edaspidi peab selle võtme ära jätma, sest muidu kustutatakse olemasoleva&lt;br /&gt;
      paroolifaili sisu&lt;br /&gt;
   3. -m kasutada MD5 krüptimist; jättes selle võtme kirjutamata tekitatakse CRYPT proolid&lt;br /&gt;
   4. järgnevad paroolifaili nimi (salajane.paroolifail) ja kasutajanimi (priit) &lt;br /&gt;
&lt;br /&gt;
Tundub, et peale Directory, saab autentimist kasutada ka Location sektsioonis, mis on veebi suhtes veel asjakohasem.&lt;br /&gt;
&lt;br /&gt;
Paroolifail peab olema loetav sellele kasutajale, kelle õigustes veebiserver töötab (näiteks nobody) ning soovitavalt mitte olema veebiga samas kataloogistruktuuris.&lt;br /&gt;
&lt;br /&gt;
===Logi===&lt;br /&gt;
&lt;br /&gt;
Apache veebiserveriga saab logida tekstifaili erinevatel tingimustel toimunud päringuid ning neid logifaile automaatselt roteerida. Logida saab paraleelselt ka näidatud tingimustele erinevates formaatides erinevatesse failidesse.&lt;br /&gt;
&lt;br /&gt;
Direktiiviga LogFormat kirjeldatakse mida logitakse. Tüüpiliselt defineeritakse formaat nimega tavaline&lt;br /&gt;
&lt;br /&gt;
 LogFormat &amp;quot;%h %l %u %t \&amp;quot;%r\&amp;quot; %&amp;gt;s %b&amp;quot; tavaline&lt;br /&gt;
&lt;br /&gt;
kus&lt;br /&gt;
&lt;br /&gt;
    * %h - maisinanimi, kust päring esitati&lt;br /&gt;
    * %l - kasutajanimi, kes päringu esitas eeldusel, et IdentityCheck tomib; tavaliselt see väli jääb tühjaks, kuna IdentityCheck&#039;i kasutamine võtab&lt;br /&gt;
      tublisti veebi kiirust alla&lt;br /&gt;
    * %u - kui veebiserveri ressurss nõudis autentimist, siis kasutatud kasutajanimi&lt;br /&gt;
    * %t - päringu esitamise aeg&lt;br /&gt;
    * \&amp;quot;%r\&amp;quot; - jutumärkides esitatud päringu esimene rida&lt;br /&gt;
    * %&amp;gt;s - päringule vastuse olek (ingl. k. status)&lt;br /&gt;
    * %b - päringu vastuse maht baitides&lt;br /&gt;
    * tavaline - logiformaadi nimi &lt;br /&gt;
&lt;br /&gt;
Logimine ise toimub direktiiviga CustomLog, näiteks logime, kasutades logiformaati tavaline, faili /var/log/apache/tavaline.log&lt;br /&gt;
&lt;br /&gt;
 CustomLog /var/log/apache/tavaline.log tavaline&lt;br /&gt;
&lt;br /&gt;
Soovides logifaili automaatselt roteerida, kasutage veebiserveriga kaasas olevat programmi rotatelogs. Näiteks moodustame iga nädal uue logi&lt;br /&gt;
&lt;br /&gt;
 CustomLog &amp;quot;|/usr/local/apache/bin/rotatelogs /var/log/apache/tavaline.log 604800&amp;quot; common&lt;br /&gt;
&lt;br /&gt;
Logi faili nimi moodustatakse lisades failinime lõppu aja sekundites, mis on möödunud UNIXi ajastu algusest, so 1970. 1. jaanuar kell 00:00 hommikul.&lt;br /&gt;
&lt;br /&gt;
===Vealogi===&lt;br /&gt;
&lt;br /&gt;
Vealogisse salvestatakse serveri töös toimunud vead, sh näiteks päringud puuduvatele failidele. Logitaset saab reguleerida direktiiviga LogLevel, soovitatakse taset warn&lt;br /&gt;
&lt;br /&gt;
 LogLevel warn&lt;br /&gt;
&lt;br /&gt;
Direktiiviga ErrorLog näidatakse, kuhu logi salvestada&lt;br /&gt;
&lt;br /&gt;
 ErrorLog /var/log/apache/error.log&lt;br /&gt;
&lt;br /&gt;
Logianalüsaatorid&lt;br /&gt;
&lt;br /&gt;
Apache veebiserveri logi analüüsiks sobib kasutada näiteks programmi Webalizer.&lt;br /&gt;
&lt;br /&gt;
===Veebiserveri staatus ja info===&lt;br /&gt;
&lt;br /&gt;
Eeldusel, et veebiserverisse on sissekompilleeritud vastavad moodulid võtmetega --enable-module=status ja --enable-moudule=info, saab näha veebiserveri konfiguratsiooni (info) ning parasjagu olevat seisu (status).&lt;br /&gt;
&lt;br /&gt;
Näidates konfiguratsioonifailis direktiivi ExtendedStatus parameetriks &amp;quot;On&amp;quot;, esitatakse staatus põhjalikumalt.&lt;br /&gt;
&lt;br /&gt;
Nende veebiserveri omaduste nägemiseks peab sisalduma konfiguratsioonifailis kaks sektsiooni&lt;br /&gt;
&lt;br /&gt;
URLi http://www.zoo.tartu.ee/status-info jaoks&lt;br /&gt;
&lt;br /&gt;
 &amp;lt;Location /server-info&amp;gt;&lt;br /&gt;
     SetHandler server-info&lt;br /&gt;
     Order deny,allow&lt;br /&gt;
     Deny from all&lt;br /&gt;
     Allow from .zoo.tartu.ee&lt;br /&gt;
 &amp;lt;/Location&amp;gt;&lt;br /&gt;
&lt;br /&gt;
URLi http://www.zoo.tartu.ee/server-info jaoks&lt;br /&gt;
&lt;br /&gt;
 &amp;lt;Location /server-status&amp;gt;&lt;br /&gt;
     SetHandler server-status&lt;br /&gt;
     Order deny,allow&lt;br /&gt;
     Deny from all&lt;br /&gt;
     Allow from .zoo.tartu.ee&lt;br /&gt;
 &amp;lt;/Location&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Mõlemas sektsioonis on kasutatud Deny ja Allow direktiive, piiramaks nende URLide külastamise õigust. Kuigi sealt midagi väga salajast ei paista, on külastama lubatud vaid zoo.tart.ee domeeni masinastest.&lt;br /&gt;
Veebi-indekseerijad&lt;br /&gt;
&lt;br /&gt;
Apache veebiserver ei sisalda indekseerimisvahendeid, so võimalusi luua serveeritavale veebile otsingumootorit. Küll aga sobib kasutada mõnda olemasolevat veebiindeksaatorit, näiteks Glimpse või HtDig.&lt;br /&gt;
&lt;br /&gt;
Hoopis teine probleem on kuidas kontrollida, mida tohivad teha teised otsingumootorid (tuntud kui robotid või nuhid) teie veebi külastades. Tüüpiliselt tuleb neid kontrollida, kuna nad võivad täita avalikke andmebaase kiiresti vananeva infoga või ebasoovitavalt teie serverit koormata.&lt;br /&gt;
&lt;br /&gt;
===URLi ümberkirjutamine===&lt;br /&gt;
&lt;br /&gt;
Ümberkirjutamise kasutamiseks on vaja mod_rewrite&#039;i toetus serverisse kompilleerida võtmega --enable-module=rewrite.&lt;br /&gt;
&lt;br /&gt;
See tehnika võimaldab suunata serverisse tulevad päringud ümber, jäädes sama serveri piiridesse või välja. Ümbersuunamisi saab konfigureerida peakonfiguratsioonifailist või .htaccess failist.&lt;br /&gt;
&lt;br /&gt;
Ümbersuunamisel saab kasutada tingimusi või teha seda juhuslikult.&lt;br /&gt;
&lt;br /&gt;
Tõenäoliselt on võimalik järgnevalt näidetena toodud tegevusi korraldada ka muude vahenditega, URLi ümberkirjutamine mod_rewrite&#039;ga on selleks üks käepärane vahend.&lt;br /&gt;
&lt;br /&gt;
Ümberkirjutuste tegemiseks tuleb esmalt aktiviseerida ümberkirjutusmehhanism&lt;br /&gt;
&lt;br /&gt;
 RewriteEngine On&lt;br /&gt;
&lt;br /&gt;
Ümberkirjutust ennast teostab direktiiv RewriteRule. Näiteks suuname kõik veebiserverisse kasutajale priit tulevad päringud (http://www.zoo.tartu.ee/~priit) aadressile http://www.priit.ee&lt;br /&gt;
&lt;br /&gt;
 RewriteRule ^/~priit.+ http://www.priit.ee &lt;br /&gt;
&lt;br /&gt;
Direktiivi RewriteRule esimene argument on regulaaravaldis (^/~priit.+) ning kui sellega päring klapib, siis suunatakse brauser teise parameetriga näidatud URLile (http://www.priit.ee). Kasutaja brauseri Location real kirjutatakse URL paratamatult ümber.&lt;br /&gt;
&lt;br /&gt;
Direktiivi süntaks on järmine&lt;br /&gt;
&lt;br /&gt;
 RewriteRule regulaaravaldis asendus [võtmed]&lt;br /&gt;
&lt;br /&gt;
kus&lt;br /&gt;
&lt;br /&gt;
    * regulaararvaldisega kontrollitakse, kas URL klapib ümberkirjutamisreegliga, kusjuures URL on antud juhul see osa päringust, mis jääb paremale&lt;br /&gt;
      http://www.zoo.tartu.ee&#039;st, näite puhul /~priit.&lt;br /&gt;
    * kui URL klappis, siis asendatakse URL asendusega &#039;asendus&#039;&lt;br /&gt;
    * lisaks on mõnel juhul oluline kasutada võtmeid, mis kontrollivad ümberkirjutamise peensusi &lt;br /&gt;
&lt;br /&gt;
^ tähistab, et / peab olema URLi esimene sümbol ning peale priit &#039;t&#039; tähte võib tulla kuitahes palju mistahes sümboleid (.+). Muuseas, antud juhul suunatakse ümber näiteks päring http://www.zoo.tartu.ee/~priit-onvastmees.&lt;br /&gt;
&lt;br /&gt;
Lubatud on kasutada järjest mitmeid asendusi, mil neid rakendatakse järjest, tulemuseks on viimane tehtud ümberkirjutus. Järgmise asenduse regulaaravaldist klapitatakse eelmise ümberkirjutamisel tehtud tulemusega.&lt;br /&gt;
&lt;br /&gt;
Esitame näite sisemise ning välimise ümberkirjutamise kohta. Soovides vastuseks päringule http://www.zoo.tartu.ee/vana.html brauserisse saata lehe uus.html, kusjuures jättes brauseri Location reale esialgse teksti, so http://www.zoo.tartu.ee/vana.html, kasutage ümberkirjutamisreeglit&lt;br /&gt;
&lt;br /&gt;
 RewriteRule    ^vana\.html$  uus.html&lt;br /&gt;
&lt;br /&gt;
Sama, kuid brauseri Location real kajastub ümberkirjutus&lt;br /&gt;
&lt;br /&gt;
 RewriteRule    ^vana\.html$  uus.html [R]&lt;br /&gt;
&lt;br /&gt;
^vana\.html$ tähendab, et asendus toimub, kui päring oli täpselt vana.html, so algas v-ga (^) ja lõppes l-ga ($); punkt on regulaaravaldise erisümbol ja tuleb põgeda (\).&lt;br /&gt;
&lt;br /&gt;
Kirjutades järjest mitu ümberkirjutusreeglit ning soovides, et ümberkirjutamine lõppeks antud reegliga, tuleb reegli lõppu lisada võti L (last).&lt;br /&gt;
&lt;br /&gt;
 RewriteRule ^/~priit.+ http://www.priit.ee [R,L]&lt;br /&gt;
 RewriteRule ^/~nea.+   http://www.nea.ee   [R,L]&lt;br /&gt;
 RewriteRule ^/~inna.+  http://www.inna.ee  [R,L]&lt;br /&gt;
 RewriteRule ^/~mart.+  http://www.mart.ee  [R,L]&lt;br /&gt;
&lt;br /&gt;
Kui aga veebiserverit tõstetakse ühest masinast teise, oletame, et uus töötab, kuid kasutajate kodud on vanas, siis lisage uue konfi selline rida&lt;br /&gt;
&lt;br /&gt;
 RewriteRule   ^/~(.+)  http://vana.zoo.edu.ee/~$1  [R,L]&lt;br /&gt;
&lt;br /&gt;
Siin on kasutatud regulaaravaldist koos asendamisega. $1 asendatakse tekstiga, mis klappis kasutatud regulaaravaldises avaldisega (.+). Praktiliselt näiteks&lt;br /&gt;
&lt;br /&gt;
===Lisatingimuste kasutamine===&lt;br /&gt;
&lt;br /&gt;
Direktiiv RewriteRule teostab ümberkirjutusi niikuinii tingimusi kasutades regulaaravaldise abil. Peale selle saab seada direktiiviga RewriteCond lisatingimusi. Näiteks sõltuvalt serveri kellaajast, saadetakse brauserile üks või teine veeb&lt;br /&gt;
&lt;br /&gt;
 RewriteEngine on&lt;br /&gt;
 RewriteCond   %{TIME_HOUR}%{TIME_MIN} &amp;gt;0700&lt;br /&gt;
 RewriteCond   %{TIME_HOUR}%{TIME_MIN} &amp;lt;1900&lt;br /&gt;
 RewriteRule   ^index\.html$             paev.html&lt;br /&gt;
 &lt;br /&gt;
 RewriteRule   ^index\.html$             oo.html&lt;br /&gt;
&lt;br /&gt;
%{TIME_HOUR} asendatakse päringu sooritamise kellaaja tunniväärtusega. Oluline on kirjutada &amp;lt; ja 0700 järjest, kusjuues toimub leksikograafiline stringide, mitte arvude võrdlus.&lt;br /&gt;
&lt;br /&gt;
Kui brauser esitab veebiserverile päringu päeval, siis toimub ümberkirjutus index.html -&amp;gt; paev, kuna esimese direktiivi RewriteRule regulaaravaldis klappis URLiga ning kõik eelnenud lisatingimused olid täidetud. Seejärel klapitatakse teist RewriteRule&#039;i eelmise väljundiga, so paev.html - ei klapi ning midagi ei kirjutata ümber.&lt;br /&gt;
&lt;br /&gt;
Lisatingimusi on sobiv kasutada ka brauserite eristamiseks.&lt;br /&gt;
&lt;br /&gt;
 RewriteCond  %{HTTP_USER_AGENT} Mozilla/4*&lt;br /&gt;
 RewriteRule  ^leht.html$                leht.moz.html [L]&lt;br /&gt;
 &lt;br /&gt;
 RewriteCond  %{HTTP_USER_AGENT} Lynx.*&lt;br /&gt;
 RewriteRule  ^leht.html$                leht.lynx.html [L]&lt;br /&gt;
&lt;br /&gt;
Sõltuvalt päringu tegija aadressist, saab esitada erinevat veebi.&lt;br /&gt;
&lt;br /&gt;
 RewriteCond  %{REMOTE_ADDR}  ^192.168.1.3$ &lt;br /&gt;
 RewriteRule  ^leht.html$      192.168.1.3.html [L]&lt;br /&gt;
&lt;br /&gt;
===Ümberkirjutusalus===&lt;br /&gt;
&lt;br /&gt;
Kui te tegutsete sügavamal URLi-struktuuri sees, kasutage RewriteRule&#039;i juurika ümbernimetamiseks direktiivi RewriteBase. Näiteks kirjutatakse URL http://www.zoo.tartu.ee/~priit/lemmikud/hobused.html ümber URLiks http://www.zoo.tartu.ee/~priit/lemmikud/kabjaksed.html&lt;br /&gt;
&lt;br /&gt;
 RewriteBase   /~priit/lemmikud&lt;br /&gt;
 RewriteRule   ^hobused.html$  kabjaksed.html &lt;br /&gt;
&lt;br /&gt;
===Ümberkirjutustabel===&lt;br /&gt;
&lt;br /&gt;
Esitatud päringu juhuslikult valitud URLile ümbersuunamiseks on sobiv kasutada direktiivi RewriteMap. RewriteMap pakub võimaluse salvestada tekstifaili hulga URLe, mille poole saab ümberkirjutusreeglist pöörduda. Näiteks loome olukorra, kus päringule http://www.zoo.tartu.ee/juhuslik vastatakse juhuslikult valitud veebilehega.&lt;br /&gt;
&lt;br /&gt;
Kirjeldame tabelikirjeldusfailis vl.txt juhuslike veebilehtede nimed&lt;br /&gt;
&lt;br /&gt;
 bash# cat /usr/local/apache/vl.txt&lt;br /&gt;
 veebilehed 1.html|2.html|3.html|4.html|5.html|6.html|7.html&lt;br /&gt;
&lt;br /&gt;
ning lisame veebiserveri konfiguratsioonifaili read&lt;br /&gt;
&lt;br /&gt;
 RewriteMap vl rnd:/usr/local/apache/vl.txt&lt;br /&gt;
 RewriteRule   ^/juhus$   /home/html/juhus/${vl:veebilehed|html.html}&lt;br /&gt;
&lt;br /&gt;
Ümberkirjutustabeli süntaks on selline&lt;br /&gt;
&lt;br /&gt;
RewriteMap tablelinimi tabelitüüp:tabelikirjeldusfail&lt;br /&gt;
&lt;br /&gt;
kus&lt;br /&gt;
&lt;br /&gt;
    * tabelinimi - on kooskõlas ümberkirjutusreeglis kasutatud nimega&lt;br /&gt;
    * tabelitüüp - rnd (random) näitab et&lt;br /&gt;
    * tabelikirjeldusfail - failis kirjeldatakse tabeli sisu, näiteks juhusliku puhul peab eraldama andmed |-ga (loogiline OR) &lt;br /&gt;
&lt;br /&gt;
Ümberkirjutusreegli asenduses kasutatud muutujat ${vl:veebilehed|html.html} väärtustatakse ümberkirjutustabeli vl võtme veeblilehed abil. Kui sellist ümberkirjutustabelit mingil põhjusel pole, on muutuja väärtus html.html.&lt;br /&gt;
&lt;br /&gt;
===Ümberkirjutuslogi===&lt;br /&gt;
&lt;br /&gt;
Ümberkirjutamise tööleseadmisel ning toimuvate ümberkirjutuste jälgimiseks saab kasutada direktiive RewriteLog ja RewriteLogLevel&lt;br /&gt;
&lt;br /&gt;
 RewriteLogLevel 3&lt;br /&gt;
 RewriteLog /var/log/apache/rewrite.log&lt;br /&gt;
&lt;br /&gt;
===Veebiserveri konfiguratsioonifaili lugemine===&lt;br /&gt;
&lt;br /&gt;
Lihtsamatel juhtudel pole see oluline, millises järjekorras veebiserver direktiivides esitatud reegleid kehtestab. Näiteks, kui konfiguratsioonifailis ei sisaldugi Location ja Files sektsioone, kuid soovides kasutada veebiseverit paindlikumalt, tuleb järjekorraga arvestada.&lt;br /&gt;
&lt;br /&gt;
Direktiivide puhul ei hooli Apache suurtest ja väikestest tähtedest, kuid parameetrite puhul on see tihti oluline.&lt;br /&gt;
&lt;br /&gt;
Eeldusel, et te paigutate kogu konfiguratsiooni ühte faili, sisalduvad seal kaks osa&lt;br /&gt;
&lt;br /&gt;
    * põhiosa - kirjeldatakse veebiserveri üldisi omadusi, näiteks millise kasutaja õigustes ta töötab&lt;br /&gt;
    * ressursside määrangud - kehtestatakse reeglid, kuidas veebiserver faile serveerib, näiteks käsitleb .php lõpulisi faile PHP skriptidena &lt;br /&gt;
&lt;br /&gt;
Üldosa direktiivide järjekord pole oluline, kui sama direktiiv on väärtustatud mitu korda, jääb kehtima viimane väärtus.&lt;br /&gt;
&lt;br /&gt;
Kui ressursside omadusi määratakse grupeerimisvahendite abil, siis sõltumata konfigureerimisfailis esinemise järjekorrast, loetakse neid sellises järjekorras: Directory, Files, Location&lt;br /&gt;
&lt;br /&gt;
Directory sees võivad olla kirjeldatud omakorda Files sektsioonid.&lt;br /&gt;
&lt;br /&gt;
Directory sees on lubatud kasutada järgmisi direktiive:&lt;br /&gt;
&lt;br /&gt;
    * DirectoryIndex&lt;br /&gt;
    * Options&lt;br /&gt;
    * Order, Allow, Deny&lt;br /&gt;
    * AllowOverride&lt;br /&gt;
    * AddHandler&lt;br /&gt;
    * AddType &lt;br /&gt;
&lt;br /&gt;
Files sektsioonis on lubatud kasutada praktiliselt samasid direktiive, mida sektsioonis Directory eeldusel, et neid on mõistlik rakendada failidele. Ilmselt ei saa kasutada näiteks direktiivi DirectoryIndex, küll aga näiteks Allow ja Deny.&lt;br /&gt;
&lt;br /&gt;
Location sektsioonis on lubatud kasutada praktiliselt samasid direktiive, mida sektsioonis Directory. Kuna Locationit rakedatakse kõige viimasena, siis ei saa seal näiteks kasutada Options direktiivi, küll aga näiteks Allow ja Deny&#039;id.&lt;br /&gt;
&lt;br /&gt;
===Veebiserveri turvalisus===&lt;br /&gt;
&lt;br /&gt;
Veebiserveri kasutamisel arvestage, et iseenesest on veebiserver programm, mis teeb teie arvuti failid kättesaadavaks HTTP protokolli kasutavaile klientidele, so brauseritele.&lt;br /&gt;
&lt;br /&gt;
Kuigi veebiserver tuleb käivitada juurkasutaja õigustes, toimetab ta edasi konfiguratsioonifailis näidatud kasutajana (User, Group direktiivid).&lt;br /&gt;
&lt;br /&gt;
Siiski, kui te kasutate konfiguratsioonifailis teatud kohtades IO ümbersuunamist, näiteks logimise juures, siis seda teeb Apache juurkasutajana.&lt;br /&gt;
&lt;br /&gt;
Vältimaks ebameeldivaid üllatusi, veenduge, et veebiserveri juurikas ning selle alla jäävad kataloogid on piisavalt kaitstud, so kasutajatel pole neisse kirjutamisõigust. Veebiserver (/usr/local/apache/bin/httpd) ja muud temaga seotud failid, näiteks rotatelogs, kuuluvad juurkasutajale ning on tavakasutajaile ning grupile others vaid käivitatavad. Tavaliselt piisab nende tingimuste täitmiseks anda käsud&lt;br /&gt;
&lt;br /&gt;
 bash# cd /usr/local/apache&lt;br /&gt;
 bash# chown 0 bin conf logs&lt;br /&gt;
 bash# chgrp 0  bin conf logs&lt;br /&gt;
 bash# chmod 755 bin conf logs&lt;br /&gt;
 &lt;br /&gt;
 bash# chown 0 /usr/local/apache/bin/httpd&lt;br /&gt;
 bash# chgrp 0 /usr/local/apache/bin/httpd&lt;br /&gt;
 bash# chmod 511 /usr/local/apache/bin/httpd&lt;br /&gt;
&lt;br /&gt;
Lisaks, mõelge järele, kas te peate kasutajaile lubama käivitada CGI skripte ja andmebaase ning otsustage millistel tingimustel. Samuti kataloogipõhine veebiserveri konfigureerimisvõimalus. Näiteks lubage kasutajatel CGI skripte tarvida ainult kataloogist    ~/public_html/cgi-bin&lt;br /&gt;
&lt;br /&gt;
 &amp;lt;Directory /usr/home/*/public_html/cgi-bin&amp;gt;&lt;br /&gt;
 AddHandler cgi-script .cgi&lt;br /&gt;
 Options +ExecCGI&lt;br /&gt;
 &amp;lt;/Directory&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Heal juhul saab veebiserveri tööleseadmise eel otsustada, milliste omadustega peab ta olema. Reeglina ei soovitata lihtsalt sisse kompileerida toetust, mida praktiliselt ei tarvitata. Näiteks, kui te olete kindel, et pole vajadust server-info ja server-status järele, siis jätke vastavad moodulid välja. Näidake seda Apache ./configure skripti juures vastavate võtmetega --disable-module=info --disable-module=status.&lt;br /&gt;
&lt;br /&gt;
===Virtuaalveebiserverid===&lt;br /&gt;
&lt;br /&gt;
Ühte ja sama Apache veebiserverit saab tööle seada nii, et ta serveerib erinevaid andmeid sõltuvalt sellest, millise nimega tema poole pöörduti. Asjakorraldust nimetatakse virtuaalseteks veebiserveriteks, kuna füüsiliselt on tegu ühe arvutiga, kuid külastajaile jäetakse mulje, et neid on mitu.&lt;br /&gt;
&lt;br /&gt;
Virtuaalseid veebiservereid on kolme sorti:&lt;br /&gt;
&lt;br /&gt;
    * pordipõhised - sõltuvalt külastaja poolt kastatud pordist serveeritakse erinevat veebi&lt;br /&gt;
    * IP-põhised - sõltuvalt külastaja poolt kasutatud IP-aadressist serveeritakse erinevat veebi&lt;br /&gt;
    * nimepõhised - sõltuvalt külastaja poolt kasutatud DNSi nimest serveeritakse erinevat veebi; reeglina vastavad erinevad nimed samale IP-aadressile,&lt;br /&gt;
      so on kirjeldatud CNAMEdena. &lt;br /&gt;
&lt;br /&gt;
Põhimõtteliselt on võimalik kasutada neid virtuaalservereid ka kombineeritult korraga.&lt;br /&gt;
&lt;br /&gt;
Erijuht virtuaalveebi serveerida, on käivitada mitu eksemplari httpd servereid, iga oma konfiguratsiooniga. Kuna see võimalus on suhteliselt ebaefektiivne ning ei paku olulisi täiendavaid võimalusi, siis seda me ei käsitle.&lt;br /&gt;
&lt;br /&gt;
Virtuaalserveri sektsioonis (VirtualHost) saab kasutada paljusid direktiive, mida peaserveri puhul, sh direktiive Options, Alias, Directory, Location, Files. Samuti direktiive, mis reguleerivad SSI, CGI, PHP, Emperli, ümberkirjutamise ja logi kasutamist. Kui direktiivi ei näidata, kasutatakse põhikonfiguratsiooni väärtust, kui seal seda samuti pole, siis vaikeväärtust.&lt;br /&gt;
&lt;br /&gt;
===Pordipõhised virtuaalveebiserverid===&lt;br /&gt;
&lt;br /&gt;
Kasutamaks erinevaid veebiseveri konfiguratsioone sõltuvalt sellest, millisele pordile päring tuli, kasutage direktiive Listen ja VirtualHost. Näiteks teenindab veebiserveri konfiguratsioonifaili põhiosale vastav server kõiki päringuid, va neid, mis on suunatud aadressi 193.40.50.1 (www.zoo.edu.ee) pordile 8080 või pordile 8081. Viimast kahte teenindatakse vastavalt VirtualHosti sektsioonile. Näiteks seame lisaks põhiosale tööle kaks alternatiivset dokumendijuurikat ja logi&lt;br /&gt;
&lt;br /&gt;
...&lt;br /&gt;
 Listen 80&lt;br /&gt;
 Listen 193.40.50.1:8080&lt;br /&gt;
 Listen 193.40.50.1:8081&lt;br /&gt;
 &amp;lt;VirtualHost 193.40.50.1:8080&amp;gt;&lt;br /&gt;
    ServerAdmin mart@zoo.edu.ee&lt;br /&gt;
    DocumentRoot /www/mardizoo&lt;br /&gt;
    ErrorLog /var/logs/mardizoo.error.log&lt;br /&gt;
    CustomLog /var/logs/mardizoo.log common&lt;br /&gt;
  &amp;lt;/VirtualHost&amp;gt;&lt;br /&gt;
 &lt;br /&gt;
 &amp;lt;VirtualHost 193.40.50.1:8081&amp;gt;&lt;br /&gt;
    ServerAdmin priit@zoo.edu.ee&lt;br /&gt;
    DocumentRoot /www/priiduzoo&lt;br /&gt;
    ErrorLog /var/logs/priituzoo.error.log&lt;br /&gt;
    CustomLog /var/logs/priiduzoo.log common&lt;br /&gt;
 &amp;lt;/VirtualHost&amp;gt;&lt;br /&gt;
&lt;br /&gt;
kusjuures peakonfiguratsiooni on lisatud vastavad Listen direktiivid.&lt;br /&gt;
&lt;br /&gt;
Brauseris tuleb päringud esitada vastavalt http://www.zoo.edu.ee:8080 või http://www.zoo.edu.ee:8081.&lt;br /&gt;
&lt;br /&gt;
===IP-põhised virtuaalveebiserverid===&lt;br /&gt;
&lt;br /&gt;
IP-põhiste virtuaalveebiserverite kasutamisel on veebiserveril mitu IP-aadressi, st masinal on mitu võrgukaarti või on kasutatud IP-aliasingut.&lt;br /&gt;
&lt;br /&gt;
IP-põhiste virtuaalveebiserverite kasutamisel näidake direktiivi VirtualHost juures ära IP-aadress ning samas sektsioonis kirjeldage kõnealuse veebiserveri omadused. Näiteks kui masinal on kaks võrgukaarti IP-aadressidega 193.40.10.1 ning 193.40.50.1, kasutage sektsioone&lt;br /&gt;
&lt;br /&gt;
 &amp;lt;VirtualHost 193.40.50.1&amp;gt;&lt;br /&gt;
    ServerName www.zoo.tartu.ee&lt;br /&gt;
    ServerAdmin priit@zoo.tartu.ee&lt;br /&gt;
    DocumentRoot /www/tartuzoo&lt;br /&gt;
    ErrorLog /var/logs/tartuzoo.error.log&lt;br /&gt;
    CustomLog /var/logs/tartuzoo.log common&lt;br /&gt;
 &amp;lt;/VirtualHost&amp;gt;&lt;br /&gt;
 &lt;br /&gt;
 &amp;lt;VirtualHost 193.40.10.1&amp;gt;&lt;br /&gt;
    ServerName www.zoo.edu.ee&lt;br /&gt;
    ServerAdmin mart@zoo.edu.ee&lt;br /&gt;
     DocumentRoot /www/eduzoo&lt;br /&gt;
     ErrorLog /var/logs/eduzoo.error.log&lt;br /&gt;
     CustomLog /var/logs/eduzoo.log common&lt;br /&gt;
 &amp;lt;/VirtualHost&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Peakonfiguratsiooni osa järgi teenindatakse neid päringuid, millel ei leidu sobivat virtuaalserverit. Näiteks kui masinal on veel kolmas võrguseade ning päring siseneb selle aadressile.&lt;br /&gt;
&lt;br /&gt;
Virtuaalserveri direktiivi juurde võib kirjutada ka mitu IP-aadressi, mispuhul kasutatakse kõnealust serverit neile kõigile tulnud päringutele vastamisel.&lt;br /&gt;
&lt;br /&gt;
===Nimepõhised virtuaalveebiserverid===&lt;br /&gt;
&lt;br /&gt;
Nimepõhiste virtuaalveebiserverite kasutamine eeldab, et ühele IP-aadressile (193.40.50.1) on nimesüsteemis (DNS) seatud näiteks CNAMEiga vastavusse mitu domeeninime (www.zoo.tartu.ee, post.zoo.tartu.ee).&lt;br /&gt;
&lt;br /&gt;
Kui soovite kasutada enam kui ühte veebiserverit, siis on soovitav kõik veebiserverid konfigureerida virtuaalseteks, kusjuures põhiserverile ei vastagi DocumentRoot&#039;i.&lt;br /&gt;
&lt;br /&gt;
Nimepõhiste virtuaalveebiserverite kasutamine deklareeritakse peakonfiguratsiooni osas direktiiviga NameVirtualHost. Direktiivi järel näidatakse IP-aadress, millele tulnud päringute teenindamisel kasutatakse sobivat VirtualHosti sektsiooni. Näiteks&lt;br /&gt;
&lt;br /&gt;
 NameVirtualHost 193.40.50.1&lt;br /&gt;
&lt;br /&gt;
puhul kasutatakse aadressile 193.40.50.1 saabunud päringute töötlemiseks sobiva domeeninimega (ServerName) VirtualHost sektsiooni.&lt;br /&gt;
&lt;br /&gt;
Erinevad virtuaalserverid kirjeldatakse direktiiviga VirtualHost, näiteks sarnase sektsiooniga&lt;br /&gt;
&lt;br /&gt;
 &amp;lt;VirtualHost 193.40.50.1&amp;gt;&lt;br /&gt;
     ServerName www.zoo.tartu.ee&lt;br /&gt;
     ServerAdmin priit@zoo.tartu.ee&lt;br /&gt;
     DocumentRoot /www&lt;br /&gt;
     ErrorLog /var/logs/www.error.log&lt;br /&gt;
     CustomLog /var/logs/www.log common&lt;br /&gt;
 &amp;lt;/VirtualHost&amp;gt;&lt;br /&gt;
 &lt;br /&gt;
 &amp;lt;VirtualHost 193.40.50.1&amp;gt;&lt;br /&gt;
     ServerName post.zoo.tartu.ee&lt;br /&gt;
     ServerAdmin post@zoo.tartu.ee&lt;br /&gt;
     DocumentRoot /post&lt;br /&gt;
     ErrorLog /var/logs/post.error.log&lt;br /&gt;
     CustomLog /var/logs/post.log common&lt;br /&gt;
 &amp;lt;/VirtualHost&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Kui serveril on mitu võrguaadressi, siis võib kasutada direktiivi NameVirtualHost mitu korda ning lisada vastavad sektsioonid, kuid lühem on asendada IP-aadress tärniga (*)&lt;br /&gt;
&lt;br /&gt;
 NameVirtualHost *&lt;br /&gt;
 &lt;br /&gt;
 &amp;lt;VirtualHost *&amp;gt;&lt;br /&gt;
     ServerName www.zoo.tartu.ee&lt;br /&gt;
     ServerAdmin priit@zoo.tartu.ee&lt;br /&gt;
     DocumentRoot /www&lt;br /&gt;
     ErrorLog /var/logs/www.error.log&lt;br /&gt;
     CustomLog /var/logs/www.log common&lt;br /&gt;
 &amp;lt;/VirtualHost&amp;gt;&lt;br /&gt;
 &lt;br /&gt;
 &amp;lt;VirtualHost *&amp;gt;&lt;br /&gt;
     ServerName post.zoo.tartu.ee&lt;br /&gt;
     ServerAdmin post@zoo.tartu.ee&lt;br /&gt;
     DocumentRoot /post&lt;br /&gt;
     ErrorLog /var/logs/post.error.log&lt;br /&gt;
     CustomLog /var/logs/post.log common&lt;br /&gt;
 &amp;lt;/VirtualHost&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Päringuid, mis saabuvad direktiiviga NameVirtualHost näidatud aadressile, ei teenindata IP-põhiste sektsioonide ega peaserveri konfiguratsiooni alusel.&lt;br /&gt;
&lt;br /&gt;
===Kasulikud lisamaterjalid===&lt;/div&gt;</summary>
		<author><name>Triinu</name></author>
	</entry>
	<entry>
		<id>https://kuutorvaja.eenet.ee/w/index.php?title=Apache%27i_veebiserver&amp;diff=2845</id>
		<title>Apache&#039;i veebiserver</title>
		<link rel="alternate" type="text/html" href="https://kuutorvaja.eenet.ee/w/index.php?title=Apache%27i_veebiserver&amp;diff=2845"/>
		<updated>2007-01-26T14:13:43Z</updated>

		<summary type="html">&lt;p&gt;Triinu: /* IP-põhised virtuaalveebiseverid */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;===Veebiserveri konfigureerimine ja käivitamine===&lt;br /&gt;
&lt;br /&gt;
Veebiserveri tööd juhib üks konfiguratsioonifail httpd.conf. Sellesse kirjutatake parameetrid üks reale, kusjuures # märgiga algavaid ridu ignoreeritakse. Ridu saab jätkata sisestades kurakallu (\) viimase sümbolina eelmisele reale, tegelikult eelviimasena, viimane on reavahetus :)&lt;br /&gt;
&lt;br /&gt;
Lihtsal juhul võiks olla konfiguratsioonifail selline&lt;br /&gt;
&lt;br /&gt;
 User nobody&lt;br /&gt;
 Group nobody&lt;br /&gt;
 ServerType standalone&lt;br /&gt;
 ServerName www.zoo.tartu.ee&lt;br /&gt;
 ServerRoot &amp;quot;/usr/local/apache&amp;quot;&lt;br /&gt;
 DocumentRoot &amp;quot;/html&amp;quot;&lt;br /&gt;
 DirectoryIndex index.html&lt;br /&gt;
 ErrorLog /var/log/apache/error.log&lt;br /&gt;
 Listen 80&lt;br /&gt;
 Options None&lt;br /&gt;
 &amp;lt;Directory /&amp;gt;&lt;br /&gt;
 AllowOverride None&lt;br /&gt;
 &amp;lt;/Directory&amp;gt;&lt;br /&gt;
&lt;br /&gt;
kus on kasutatud järgmisi direktiive&lt;br /&gt;
&lt;br /&gt;
    * User - kasutaja, kelle õigustes veebiserver töötab&lt;br /&gt;
    * Group - grupp, kelle õigustes veebiserver töötab&lt;br /&gt;
    * ServerType - serveri tüüp, tavaliselt standalone, so mitte inetd abil käivitatav&lt;br /&gt;
    * ServerName - millise nime server arvab endal olevat&lt;br /&gt;
    * ServerRoot - kataloog, mille all serveri programmid asuvad&lt;br /&gt;
    * DocumentRoot - veebifailid, mida külastajaile serveeritakse&lt;br /&gt;
    * DirectoryIndex - faili nimi, mis brauserisse saadetakse, kui ta küsib kataloogi eeldusel, et sellenimeline fail kataloogis leidub&lt;br /&gt;
    * ErrorLog - fail, kuhu saadetakse veateated; kataloog, kus see fail asub peab olema kindlasti olemas!&lt;br /&gt;
    * Listen - port, millel veebiserver ootab päringuid, kõigil võrguseadmetel&lt;br /&gt;
    * Options - väärtus None tagab, et külastajale näidatakse vaid neid veebilehti, mida ta nimeliselt küsib. &lt;br /&gt;
&lt;br /&gt;
Reeglina on veebiserverina töötaval arvutil nö tavaline nimi, näiteks kalake.zoo.tartu.ee ning nimeserveris on talle defineeritud lisaks ka mõned hüüdnimed (CNAMEga). Tavaliselt kasutatakse veebiserveri nime alguses kombinatsiooni www, kokku saab antud juhul www.zoo.tartu.ee, kuid veebiserveri nimi ei pea sugugi algama www-ga olles näiteks see sama kalake.zoo.tartu.ee.&lt;br /&gt;
&lt;br /&gt;
Konfiguratsioonifailis kasutatud kataloogid peavad süsteemis leiduma, toodud näites peavad nad kuuluma lähtudes turvakaalutlustest juurkasutajale; samuti nendest kataloogidest ülevalpool asuvad kataloogid.&lt;br /&gt;
&lt;br /&gt;
Reeglina on süsteemis vaikimisi olemas mitteprivilegeeritud kasutaja nobody grupiga nobody. Võib kasutada seda või luua spetsiaalne kasutaja, näiteks apache grupiga veeb. Veebiserveri mittekäivitumise põhjuseks on tihtipeale vastavate kasutajate puudumine süsteemis.&lt;br /&gt;
&lt;br /&gt;
Näidates võrguseadme nime, vastatakse ainult sellelt seadmelt tulevaile päringutele, näiteks &#039;Listen 193.40.10.1 80&#039;.&lt;br /&gt;
&lt;br /&gt;
===Sektsioon===&lt;br /&gt;
&lt;br /&gt;
 &amp;lt;Directory /&amp;gt;&lt;br /&gt;
 AllowOverride None&lt;br /&gt;
 &amp;lt;/Directory&amp;gt;&lt;br /&gt;
&lt;br /&gt;
tähendab, et kataloogides pole täiendavate vahenditega õigust veebiserveri konfiguratsiooni täpsustada.&lt;br /&gt;
&lt;br /&gt;
Kuigi teatud parameetrite järjekord konfiguratsioonifailis ei ole tähtis, jääb kehtima parameetrile viimasena omistatud väärtus.&lt;br /&gt;
Käivitamine&lt;br /&gt;
&lt;br /&gt;
Veebiserver käivitatakse ja peatatakse käsuga apachectl&lt;br /&gt;
&lt;br /&gt;
 bash# apachectl start&lt;br /&gt;
&lt;br /&gt;
Peatamine toimub käsuga stop&lt;br /&gt;
&lt;br /&gt;
 bash# apachectl stop&lt;br /&gt;
&lt;br /&gt;
Peale konfiguratsioonifaili muutmist kehtestuvad muutused serveri taaskäivitamisel soovitavalt käsuga graceful, või restart&lt;br /&gt;
&lt;br /&gt;
 bash# apachectl graceful&lt;br /&gt;
&lt;br /&gt;
Veebiserver tuleb käivitada juurkasutajaõigustes, kuid ta töötab konfiguratsioonifailis näidatud User ja Group kasutajana. See tähendab, et failisüsteemi osad, mida soovitakse veebi näidata peavad olema vastavatele UNIXi kasutajatele nähtavad. Tavaliselt on nende failide kasutajagrupile other antud lugemisõigus.&lt;br /&gt;
&lt;br /&gt;
Töötavast veebiserverist annab tunnistust see, kui süsteemi protsessitabelis on httpd deemoni nimi, isegi mitu&lt;br /&gt;
&lt;br /&gt;
 bash# ps auxw | grep httpd&lt;br /&gt;
 root   30692  0.0  5.4  4236 3288  ??  Ss    4:39PM   0:00.16 /usr/local/apache/bin/httpd&lt;br /&gt;
 nobody 30840  0.0  5.5  4272 3324  ??  I     5:52PM   0:00.00 /usr/local/apache/bin/httpd&lt;br /&gt;
 nobody 30841  0.0  5.5  4272 3324  ??  I     5:52PM   0:00.00 /usr/local/apache/bin/httpd&lt;br /&gt;
 nobody 30842  0.0  5.5  4272 3324  ??  I     5:52PM   0:00.00 /usr/local/apache/bin/httpd&lt;br /&gt;
 nobody 30843  0.0  5.4  4248 3296  ??  I     5:52PM   0:00.00 /usr/local/apache/bin/httpd&lt;br /&gt;
 nobody 30844  0.0  5.4  4248 3296  ??  I     5:52PM   0:00.00 /usr/local/apache/bin/httpd&lt;br /&gt;
 nobody 30845  0.0  5.4  4256 3300  ??  I     5:52PM   0:00.00 /usr/local/apache/bin/httpd&lt;br /&gt;
&lt;br /&gt;
Aga veel parem kinnitus on, kui olemaks näitega kooskõlas päring http://www.zoo.edu.ee näitab veebilehte, so faili /html/index.html. Samuti saab antud näite rakendamisel näha kasutajate kodulehti eeldusel, et nad asuvad kataloogide ~/public_html all.&lt;br /&gt;
&lt;br /&gt;
Kui veebiserveri käivitamisel ilmneb raskusi, siis tasub uurida vealogi (/var/log/apache/error.log) sisu.&lt;br /&gt;
Automaatne käivitamine&lt;br /&gt;
&lt;br /&gt;
===Veebiressursside kasutusõigus===&lt;br /&gt;
&lt;br /&gt;
Veebiserveri konfigureerimisel on väga oluline näidata, mida vastuseks külastaja päringule tohib teha või saata või kas üldse külastajat teenindada.&lt;br /&gt;
&lt;br /&gt;
===Direktiiv Option===&lt;br /&gt;
&lt;br /&gt;
Direktiivi Options abil saab määratleda, mida kataloogis leiduvate failidega lubatakse teha. Näiteks määrates minimaalsed õigused parameetriga None, saab kataloogis sisalduvate failide poole pöörduda vaid nimeliselt; failide nimekirja ei näidata.&lt;br /&gt;
&lt;br /&gt;
 Options None&lt;br /&gt;
&lt;br /&gt;
===Muud võimalused:===&lt;br /&gt;
&lt;br /&gt;
    * FollowSymLinks - kui brauser esitatud päringus on failinimi viide, siis seda järgitakse vaatamata, kas viidatav fail kuulub samale kasutajale kui&lt;br /&gt;
      viide&lt;br /&gt;
    * SymLinksIfOwnerMatch - kui brauser esitatud päringus on failinimi viide, siis seda järgitakse juhul, kas viidatav fail kuulub samale kasutajale &lt;br /&gt;
      kellele viide&lt;br /&gt;
    * Indexes - näidatakse serveri kataloogi failide nimekirja kui DirectoryIndexis näidatud faile ei leitud&lt;br /&gt;
    * ExecCGI - CGI skriptide kasutamiseks&lt;br /&gt;
    * Includes - SSI failide kasutamiseks&lt;br /&gt;
    * IncludesNOEXEC - SSI failide kasutamiseks, va #exec ja CGI skriptide #include&lt;br /&gt;
    * All - kõik eelnimetatu on lubatud &lt;br /&gt;
&lt;br /&gt;
Korraga võib määratleda ka mitu parameetrit, eraldades nad üksteisest tühikuga.&lt;br /&gt;
&lt;br /&gt;
Kui konfiguratsioonifailis kasutada mitmel Options direktiivi, jääb kehtima viimane. Lisades parameetri algusesse + või - märgi, lisatakse või eemaldatakse vastav toime. Näiteks kasutades direktiive&lt;br /&gt;
&lt;br /&gt;
 Options Indexes Includes FollowSymLinks&lt;br /&gt;
 Options -FollowSymLinks&lt;br /&gt;
&lt;br /&gt;
on toime samaväärne avaldisega&lt;br /&gt;
&lt;br /&gt;
 Options Indexes Includes&lt;br /&gt;
&lt;br /&gt;
Direktiivi Options vaikeväärtus on All.&lt;br /&gt;
&lt;br /&gt;
===Direktiivid Allow, Deny ja Order===&lt;br /&gt;
&lt;br /&gt;
Direktiividega Allow, Deny ning Order abil saab kehtestada, millistelt domeenidelt tulevaid päringuid teenidatakse. Orderi abil seatakse, millises järjekorras kontroll toimub, kusjuures rakendatakse viimast reeglit, millega külastaja domeeninimi klapib. Kui ükski reegel ei klapi, toimitakse vaikimisi nagu viimane Orderi parameeter näitab. Näiteks sellise sektsiooni puhul&lt;br /&gt;
&lt;br /&gt;
 Order Deny,Allow&lt;br /&gt;
 Deny from all&lt;br /&gt;
 Allow from zoo.tartu.ee&lt;br /&gt;
&lt;br /&gt;
Päringut domeenist zoo.tartu.ee teenindatakse, esimene reegel (Deny) keelab kõik, kuid teine (Allow) lubab domeeni zoo.tartu.ee. Kui Order oleks vastupidi, siis lubaks esimene reegel (Allow) zoo.tartu.ee, kuid kehtima jääks viimane reegel (Deny). Reeglite järjekord failis ei loe, kuna selle määrab Order.&lt;br /&gt;
&lt;br /&gt;
Järgmises näites on lubatud päringud vaid tartu.ee domeenist, va alamdomeen zoo.tartu.ee&lt;br /&gt;
&lt;br /&gt;
 Order Allow,Deny&lt;br /&gt;
 Allow from tartu.ee&lt;br /&gt;
 Deny from zoo.tartu.ee&lt;br /&gt;
&lt;br /&gt;
Tõepoolest, päringut foo.tartu.ee domeenist teenindatakse kuna ta klapib esimese (Allow) reegliga, mis lubab ning teisega, mis keelab mitte. Päringuid muudest domeenidest keelatakse, kuna nad ei klapi kummagi reegliga ning vaikimisi rakendatakse viimast Orderi parameetrit - Deny.&lt;br /&gt;
&lt;br /&gt;
Order, Deny ja Allow direktiive saab kasutada vaid direktiivi Directory sees ning Deny ja Allow tuleb eraldada ainult täpselt ühe komaga!&lt;br /&gt;
&lt;br /&gt;
===Veebiressursside grupeerimisvahendid===&lt;br /&gt;
&lt;br /&gt;
Veebiserveri kasutusõigust ning teisi omadusi reguleerivaid parameetreid saab grupeerida järgmiste direktiividega&lt;br /&gt;
&lt;br /&gt;
    * Directory - kataloogis ning selle alla jäävate alamkataloogides sisalduvate failide grupeerimiseks&lt;br /&gt;
    * Files - faili nimede järgi failide grupeerimiseks&lt;br /&gt;
    * Location - URLi ning selle alla jäävate URLide grupeerimiseks &lt;br /&gt;
&lt;br /&gt;
Sellistele gruppidele saab rakendada korraga samu määratlusi, näiteks Option parameetriga.&lt;br /&gt;
&lt;br /&gt;
===Directory direktiiv===&lt;br /&gt;
&lt;br /&gt;
Directory abil saab määrata näidatud kataloogi alla jäävatele failidele ühesuguseid omadusi. Näiteks kehtestame, et kataloogi /html/veeb/kalamaja alla jäävates kataloogides käsitletakse DirectoryIndexina faile index.html ja index.htm&lt;br /&gt;
&lt;br /&gt;
 &amp;lt;Directory /html/veeb/kalamaja&amp;gt;&lt;br /&gt;
 DirectoryIndex index.html index.htm&lt;br /&gt;
 &amp;lt;/Directory&amp;gt;&lt;br /&gt;
&lt;br /&gt;
===Files direktiiv===&lt;br /&gt;
&lt;br /&gt;
Sarnaselt Directory&#039;le saab kehtestada näidatud regulaaravaldisega klappivate failinimedega failidele ühesuguseid omadusi. Näiteks kehtestame, et failides, mille nimi algab tähtedega &amp;quot;e_&amp;quot; ja lõpeb .html-ga, tohivad sisaldada Embperli konstruktsioone&lt;br /&gt;
&lt;br /&gt;
 &amp;lt;Files ~ &amp;quot;^e_.*\.html$&amp;quot;&amp;gt;&lt;br /&gt;
 Options +ExecCGI&lt;br /&gt;
 SetHandler perl-script&lt;br /&gt;
 PerlHandler HTML::Embperl&lt;br /&gt;
 &amp;lt;/Files&amp;gt;&lt;br /&gt;
&lt;br /&gt;
===Location direktiiv===&lt;br /&gt;
&lt;br /&gt;
Sarnaselt Directory direktiivile saab Locationiga kehtestada osale veebikohale samasuguseid omadusi. Location mõjub mitte kataloogistruktuuri, vaid URLi mõttes hulgale elementidele. Näiteks kehtestame, et URL&#039;ist http://kalake.zoo.edu.ee/hobused edasi tohib näha kataloogide nimekirja&lt;br /&gt;
&lt;br /&gt;
 &amp;lt;Location /hobused&amp;gt;&lt;br /&gt;
 Options Indexes&lt;br /&gt;
 &amp;lt;/Location&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Tavaliselt piisab Directory kasutamisest, kuid kuna veebiserveri kataloogi-ja URLihierarhia ei pruugi alati kokku langeda, siis on sellest vahel abi.&lt;br /&gt;
&lt;br /&gt;
===Kataloogipõhine veebiserveri konfigureerimine===&lt;br /&gt;
&lt;br /&gt;
Veebiserveri põhikonfiguratsioonifailis näidatud väärtusi saab iga kataloogi jaoks täpsustavalt määrata kataloogis sisalduva konfiguratsiooni .htaccess faili abil. Selle faili nimi on määratud põhikonfiguratsioonifailis direktiiviga AccessFileName, mis peab esinema Directory sees. Faili süntaks on sama, mis põhikonfiguratsioonifailil. Seda, milliseid omadusi on ludatud .htaccess failiga täpsustada, näitab põhikonfiguratsioonifailis direktiiv AllowOverride; järgmistele parameeritele vastab voli muuta toodud parameetreid&lt;br /&gt;
&lt;br /&gt;
    * AuthConfig - AuthGroupFile, AuthName, AuthType, AuthUserFile, Require jne&lt;br /&gt;
    * FileInfo - AddEncoding, AddLanguage, AddType, DefaultType, ErrorDocument jne&lt;br /&gt;
    * Indexes - DirectoryIndex, AddDescription, AddIcon, AddIconByEncoding, AddIconByType, DefaultIcon, DirectoryIndex, FancyIndexing, HeaderName,&lt;br /&gt;
      IndexIgnore, IndexOptions, ReadmeName jne&lt;br /&gt;
    * Limit - Order, Allow, Deny&lt;br /&gt;
    * Options - Options, XBitHack&lt;br /&gt;
    * None - mitte midagi&lt;br /&gt;
    * All - kõik nimetatud &lt;br /&gt;
&lt;br /&gt;
Vaikimisi toimib parameeter All. Kui ei soovita lasta kasutajatel veebiserverit konfigureerida, siis kasutage peale veebiserveri põhiosa direktiivi&lt;br /&gt;
&lt;br /&gt;
 AllowOverride None&lt;br /&gt;
&lt;br /&gt;
.htaccess failis tohib kasutada direktiivi Files, aga ei saa kasutada Diectory või Location.&lt;br /&gt;
&lt;br /&gt;
Tavaliselt on ohutu ning kasutajaile piisav&lt;br /&gt;
&lt;br /&gt;
 AllowOverride Indexes AuthConfig&lt;br /&gt;
&lt;br /&gt;
===Alias===&lt;br /&gt;
&lt;br /&gt;
Direktiiv Alias võimaldab muuta veebi failile kataloogistruktuuri vastavust URLi struktuurile. Näiteks olgu kataloogis /html/veeb/hobused/2000/tyrinaitus/ehola_talu failid ning soovime neile ligi pääseda URLiga http://www.zoo.tartu.ee/ehola_talu. Kasutame sellist Aliast&lt;br /&gt;
&lt;br /&gt;
 Alias /ehola_talu/ /html/veeb/hobused/2000/tyrinaitus/ehola_talu/&lt;br /&gt;
&lt;br /&gt;
Antud juhul laheneb päring http://www.zoo.tartu.ee/ehola_talu/, kuid mitte http://www.zoo.tartu.ee/ehola_talu.&lt;br /&gt;
&lt;br /&gt;
Lisaks saab Aliasega kaasata veebi faile ning katalooge, mis asuvad failisüsteemi mõttes väljaspool DocumentRootu.&lt;br /&gt;
&lt;br /&gt;
 Alias /valdek/ /html/valdek/veeb/&lt;br /&gt;
&lt;br /&gt;
Aliase süntaks on järgmine&lt;br /&gt;
&lt;br /&gt;
 Alias URLi-tee kataloogi-tee&lt;br /&gt;
&lt;br /&gt;
kus&lt;br /&gt;
&lt;br /&gt;
    * URLi-tee on osa URList, mis jääb peale serverinimi osa, näiteks http://www.zoo.tartu.ee/ehola_talu/ puhul /ehola_talu/&lt;br /&gt;
    * kataloogi-tee on vastava kataloogi nimi &lt;br /&gt;
&lt;br /&gt;
Aliasi saab kasutada peakonfiguratsioonifailis või võrdväärsetes kohtades, näiteks VirtualHost sektsioonis. Aliaste kasutamisel tuleb tavaliselt kasutada kataloogi tee&#039;le vastavaid Directory direktiive, muutmaks sobivaks veebiosa kasutusõigused. Aliased loetakse läbi enne Directory sektsioone.&lt;br /&gt;
&lt;br /&gt;
Aliase kasutamisel tuleb tähele panna, et URLi tee asendatakse igal juhul kataloogiteega. Kas sel juhul, kui päring on pikem, kooskõlas kasutatud näitega päringu http://www.zoo.tartu.ee/ehola_talu/ratsahobused/piiker.html puhul esitatakse fail /html/veeb/hobused/2000/tyrinaitus/ehola_talu/ratsahobused/piiker.html.&lt;br /&gt;
&lt;br /&gt;
Soovides teha paindlikumaid nö ümberkirjutusi, kasutage mod_rewrite&#039;i võimalusi.&lt;br /&gt;
&lt;br /&gt;
===CGI===&lt;br /&gt;
&lt;br /&gt;
CGI kasutamiseks lisage konfiguratsioonifaili rida&lt;br /&gt;
&lt;br /&gt;
 AddHandler cgi-script .cgi .pl&lt;br /&gt;
&lt;br /&gt;
Tulemusena püüab veebiserver käivitada kõiki serveeritavaid .cgi ja .pl lõpuliste nimedega faile, eeldusel, et failile rakendub Optioni parameeter ExecCGI. Käivitamisel tekkiv programmiväljund saadetakse brauserisse, kusjuures see peab algama tuntud Content-type&#039;iga, näiteks text/html. Seda võib teha näiteks Directory abil; kehtestame, et kõikjal veebi faile sisaldavas kataloogis /html/veeb/suhtleja ja selle all asuvad .cgi ja .pl lõpuliste nimedega failid on käivitatavad&lt;br /&gt;
&lt;br /&gt;
 &amp;lt;Directory /suhtleja&amp;gt;&lt;br /&gt;
 Options ExecCGI&lt;br /&gt;
 &amp;lt;/Directory&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Soovides näidata, et vaatamata failinimele tuleb käsitleda faili CGI skriptina, kasutage ScriptAlias direktiivi. Tüüpiliselt määratletakse URLi http://kalake.zoo.tartu.ee/cgi-bin/&#039;le vastavad failid skriptideks&lt;br /&gt;
&lt;br /&gt;
 ScriptAlias /cgi-bin/ /html/veeb/cgi-bin/&lt;br /&gt;
&lt;br /&gt;
Tulemusena, näiteks päringu http://kalake.zoo.tartu.ee/cgi-bin/kasutajatenimikiri.sh puhul käivitatakse fail /html/veeb/cgi-bin/kasutajatenimekiri.sh.&lt;br /&gt;
&lt;br /&gt;
===SSI===&lt;br /&gt;
&lt;br /&gt;
SSI (Server Sides Includes) tehnika võimaldab sisestada brauseri päringus nõutud faili koosseisu muude failide sisu.&lt;br /&gt;
&lt;br /&gt;
SSI kasutamiseks lisage konfiguratsioonifaili rida&lt;br /&gt;
&lt;br /&gt;
 AddType text/html .shtml&lt;br /&gt;
 AddHandler server-parsed .shtml&lt;br /&gt;
&lt;br /&gt;
ning näidake näiteks direktiivide Directory ja Options parameetri Includes abil, milliseid faile tohib server käsitleda SSIdena. Näiteks kehtestame, et kataloogi /html/veeb/uudised all kasutatakse SSId&lt;br /&gt;
&lt;br /&gt;
 &amp;lt;Directory /html/veeb/uudised&amp;lt;&amp;gt;&lt;br /&gt;
 Options IncludesNOEXEC&lt;br /&gt;
 &amp;lt;/Directory&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Tulemusena saab failides, mille nime lõpus on .shtml, kasutada SSI konstruktsioone, va #exec ja CGI skriptide #include.&lt;br /&gt;
&lt;br /&gt;
===Embperl===&lt;br /&gt;
&lt;br /&gt;
Embperl on tehnika, mis võimaldab sisestada HTML koodi sisse Perli konstruktsioone. Selle võimaluse kasutamiseks lisage konfiguratsioonifaili&lt;br /&gt;
&lt;br /&gt;
 &amp;lt;Files ~ &amp;quot;\.html$&amp;quot;&amp;gt;&lt;br /&gt;
 Options ExecCGI&lt;br /&gt;
 SetHandler perl-script&lt;br /&gt;
 PerlHandler HTML::Embperl&lt;br /&gt;
 &amp;lt;/Files&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Tulmusena lahendab veebiserver failides, mille nime lõpetab .html sisalduva Perli koodi.&lt;br /&gt;
&lt;br /&gt;
Muuseas, Embperli rakendamisel on veebiserver ka tavalise HTML süntaksi osas oluliselt rangem. Tüüpiliselt ei meeldi talle [# jne järgnevused, mida kasutatakse Embperli skriptide tähistamiseks. Et neid sümboleid siiski kasutada saada, esitage neid a la &amp;amp;#kood;, näiteks &amp;amp;#60;.&lt;br /&gt;
&lt;br /&gt;
===PHP===&lt;br /&gt;
&lt;br /&gt;
PHP on tehnika, mis võimaldab lisada HTML koodi sisse PHP keele konstruktsioone. Selle võimaluse kasutamiseks lisage konfiguratsioonifaili&lt;br /&gt;
&lt;br /&gt;
 AddType application/x-httpd-php .php&lt;br /&gt;
&lt;br /&gt;
Veebiserverisse konfigureeritud PHP omadusi saab näha PHP skriptiga&lt;br /&gt;
&lt;br /&gt;
 &amp;lt;?&lt;br /&gt;
 phpinfo();&lt;br /&gt;
 ?&amp;gt;&lt;br /&gt;
&lt;br /&gt;
===Serveri kasutajate kodulehed===&lt;br /&gt;
&lt;br /&gt;
Vaikimisi eeldab veebiserver, et näiteks URLile http://www.zoo.tartu.ee/~priit vastab süsteemi kasutaja priit kodukataloogis olev kataloog public_html. Selle kataloogi nime määrab direktiiv UserDir.&lt;br /&gt;
&lt;br /&gt;
===Veebi kaitsmine parooliga===&lt;br /&gt;
&lt;br /&gt;
Apache pakub vahendid veebistruktuuri kaitsmiseks parooliga. Konfiguratsioonifailis näidatakse ära, millist ressurssi kaitsta ning millist autentimissüsteemi kasutada.&lt;br /&gt;
&lt;br /&gt;
Kõige lihtsamal juhul tuleb programmiga htpasswd genereerida lubatud külastajate paroolifail, milles on kirjas kasutajanimed ning vastavad paroolid. See fail on reeglina erinev süsteemi paroolifailist, kus veebiserver töötab. Kui külastaja püüab siseneda kaitstud veebi, avaneb dialoog ning küsitakse tema kasutajanime ning parooli. Sobiva paari sisestamisel lubatakse külastaja veebile ligi, kusjuures kõnealust veebi saab kasutada kuni brauseri sulgemiseni.&lt;br /&gt;
&lt;br /&gt;
Näiteks kaitseme kataloogistruktuuri /html/salajane kirjeldatud paroolikontrolliga&lt;br /&gt;
&lt;br /&gt;
 &amp;lt;Directory /html/salajane&amp;gt;&lt;br /&gt;
 AuthUserFile /usr/local/apache/conf/salajane.paroolifail&lt;br /&gt;
 AuthType Basic&lt;br /&gt;
 AuthName Salajane&lt;br /&gt;
 require valid-user&lt;br /&gt;
 &amp;lt;/Directory&amp;gt;&lt;br /&gt;
&lt;br /&gt;
kus on kasutatud direktiive:&lt;br /&gt;
&lt;br /&gt;
    * AuthUserFile - paroolifailinimi, /usr/local/apache/conf/salajane.paroolifail&lt;br /&gt;
    * AuthType - millist tüüpi autentimisega on tegemist, antud juhul Basic&lt;br /&gt;
    * AuthName - parameetri väärtust näidatakse aknas, kuhu kasutaja sisestab oma veebi kasutajanime ja parooli; sama veebi piires saab sama kasutajanimega&lt;br /&gt;
      seostada erinevaid paroole, mistõttu peab külastaja saama teada, millist parooli konkreetsel juhul tarvitada&lt;br /&gt;
    * require valid-user - sellele ressursile lastakse ligi vaid peale edukat autentimist &lt;br /&gt;
&lt;br /&gt;
Sobiv paroolifail moodustatakse programmiga htpasswd&lt;br /&gt;
&lt;br /&gt;
 bash$ htpasswd -b -c -m salajane.paroolifail priit priiduparool&lt;br /&gt;
&lt;br /&gt;
kus&lt;br /&gt;
&lt;br /&gt;
   1. -b kasutaja parooliks loetakse käsurea viimane sõna (priiduparool)&lt;br /&gt;
   2. -c seda võtit tuleb kasutada vaid siis, kui paroolifaili veel ei eksisteeri; edaspidi peab selle võtme ära jätma, sest muidu kustutatakse olemasoleva&lt;br /&gt;
      paroolifaili sisu&lt;br /&gt;
   3. -m kasutada MD5 krüptimist; jättes selle võtme kirjutamata tekitatakse CRYPT proolid&lt;br /&gt;
   4. järgnevad paroolifaili nimi (salajane.paroolifail) ja kasutajanimi (priit) &lt;br /&gt;
&lt;br /&gt;
Tundub, et peale Directory, saab autentimist kasutada ka Location sektsioonis, mis on veebi suhtes veel asjakohasem.&lt;br /&gt;
&lt;br /&gt;
Paroolifail peab olema loetav sellele kasutajale, kelle õigustes veebiserver töötab (näiteks nobody) ning soovitavalt mitte olema veebiga samas kataloogistruktuuris.&lt;br /&gt;
&lt;br /&gt;
===Logi===&lt;br /&gt;
&lt;br /&gt;
Apache veebiserveriga saab logida tekstifaili erinevatel tingimustel toimunud päringuid ning neid logifaile automaatselt roteerida. Logida saab paraleelselt ka näidatud tingimustele erinevates formaatides erinevatesse failidesse.&lt;br /&gt;
&lt;br /&gt;
Direktiiviga LogFormat kirjeldatakse mida logitakse. Tüüpiliselt defineeritakse formaat nimega tavaline&lt;br /&gt;
&lt;br /&gt;
 LogFormat &amp;quot;%h %l %u %t \&amp;quot;%r\&amp;quot; %&amp;gt;s %b&amp;quot; tavaline&lt;br /&gt;
&lt;br /&gt;
kus&lt;br /&gt;
&lt;br /&gt;
    * %h - maisinanimi, kust päring esitati&lt;br /&gt;
    * %l - kasutajanimi, kes päringu esitas eeldusel, et IdentityCheck tomib; tavaliselt see väli jääb tühjaks, kuna IdentityCheck&#039;i kasutamine võtab&lt;br /&gt;
      tublisti veebi kiirust alla&lt;br /&gt;
    * %u - kui veebiserveri ressurss nõudis autentimist, siis kasutatud kasutajanimi&lt;br /&gt;
    * %t - päringu esitamise aeg&lt;br /&gt;
    * \&amp;quot;%r\&amp;quot; - jutumärkides esitatud päringu esimene rida&lt;br /&gt;
    * %&amp;gt;s - päringule vastuse olek (ingl. k. status)&lt;br /&gt;
    * %b - päringu vastuse maht baitides&lt;br /&gt;
    * tavaline - logiformaadi nimi &lt;br /&gt;
&lt;br /&gt;
Logimine ise toimub direktiiviga CustomLog, näiteks logime, kasutades logiformaati tavaline, faili /var/log/apache/tavaline.log&lt;br /&gt;
&lt;br /&gt;
 CustomLog /var/log/apache/tavaline.log tavaline&lt;br /&gt;
&lt;br /&gt;
Soovides logifaili automaatselt roteerida, kasutage veebiserveriga kaasas olevat programmi rotatelogs. Näiteks moodustame iga nädal uue logi&lt;br /&gt;
&lt;br /&gt;
 CustomLog &amp;quot;|/usr/local/apache/bin/rotatelogs /var/log/apache/tavaline.log 604800&amp;quot; common&lt;br /&gt;
&lt;br /&gt;
Logi faili nimi moodustatakse lisades failinime lõppu aja sekundites, mis on möödunud UNIXi ajastu algusest, so 1970. 1. jaanuar kell 00:00 hommikul.&lt;br /&gt;
&lt;br /&gt;
===Vealogi===&lt;br /&gt;
&lt;br /&gt;
Vealogisse salvestatakse serveri töös toimunud vead, sh näiteks päringud puuduvatele failidele. Logitaset saab reguleerida direktiiviga LogLevel, soovitatakse taset warn&lt;br /&gt;
&lt;br /&gt;
 LogLevel warn&lt;br /&gt;
&lt;br /&gt;
Direktiiviga ErrorLog näidatakse, kuhu logi salvestada&lt;br /&gt;
&lt;br /&gt;
 ErrorLog /var/log/apache/error.log&lt;br /&gt;
&lt;br /&gt;
Logianalüsaatorid&lt;br /&gt;
&lt;br /&gt;
Apache veebiserveri logi analüüsiks sobib kasutada näiteks programmi Webalizer.&lt;br /&gt;
&lt;br /&gt;
===Veebiserveri staatus ja info===&lt;br /&gt;
&lt;br /&gt;
Eeldusel, et veebiserverisse on sissekompilleeritud vastavad moodulid võtmetega --enable-module=status ja --enable-moudule=info, saab näha veebiserveri konfiguratsiooni (info) ning parasjagu olevat seisu (status).&lt;br /&gt;
&lt;br /&gt;
Näidates konfiguratsioonifailis direktiivi ExtendedStatus parameetriks &amp;quot;On&amp;quot;, esitatakse staatus põhjalikumalt.&lt;br /&gt;
&lt;br /&gt;
Nende veebiserveri omaduste nägemiseks peab sisalduma konfiguratsioonifailis kaks sektsiooni&lt;br /&gt;
&lt;br /&gt;
URLi http://www.zoo.tartu.ee/status-info jaoks&lt;br /&gt;
&lt;br /&gt;
 &amp;lt;Location /server-info&amp;gt;&lt;br /&gt;
     SetHandler server-info&lt;br /&gt;
     Order deny,allow&lt;br /&gt;
     Deny from all&lt;br /&gt;
     Allow from .zoo.tartu.ee&lt;br /&gt;
 &amp;lt;/Location&amp;gt;&lt;br /&gt;
&lt;br /&gt;
URLi http://www.zoo.tartu.ee/server-info jaoks&lt;br /&gt;
&lt;br /&gt;
 &amp;lt;Location /server-status&amp;gt;&lt;br /&gt;
     SetHandler server-status&lt;br /&gt;
     Order deny,allow&lt;br /&gt;
     Deny from all&lt;br /&gt;
     Allow from .zoo.tartu.ee&lt;br /&gt;
 &amp;lt;/Location&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Mõlemas sektsioonis on kasutatud Deny ja Allow direktiive, piiramaks nende URLide külastamise õigust. Kuigi sealt midagi väga salajast ei paista, on külastama lubatud vaid zoo.tart.ee domeeni masinastest.&lt;br /&gt;
Veebi-indekseerijad&lt;br /&gt;
&lt;br /&gt;
Apache veebiserver ei sisalda indekseerimisvahendeid, so võimalusi luua serveeritavale veebile otsingumootorit. Küll aga sobib kasutada mõnda olemasolevat veebiindeksaatorit, näiteks Glimpse või HtDig.&lt;br /&gt;
&lt;br /&gt;
Hoopis teine probleem on kuidas kontrollida, mida tohivad teha teised otsingumootorid (tuntud kui robotid või nuhid) teie veebi külastades. Tüüpiliselt tuleb neid kontrollida, kuna nad võivad täita avalikke andmebaase kiiresti vananeva infoga või ebasoovitavalt teie serverit koormata.&lt;br /&gt;
&lt;br /&gt;
===URLi ümberkirjutamine===&lt;br /&gt;
&lt;br /&gt;
Ümberkirjutamise kasutamiseks on vaja mod_rewrite&#039;i toetus serverisse kompilleerida võtmega --enable-module=rewrite.&lt;br /&gt;
&lt;br /&gt;
See tehnika võimaldab suunata serverisse tulevad päringud ümber, jäädes sama serveri piiridesse või välja. Ümbersuunamisi saab konfigureerida peakonfiguratsioonifailist või .htaccess failist.&lt;br /&gt;
&lt;br /&gt;
Ümbersuunamisel saab kasutada tingimusi või teha seda juhuslikult.&lt;br /&gt;
&lt;br /&gt;
Tõenäoliselt on võimalik järgnevalt näidetena toodud tegevusi korraldada ka muude vahenditega, URLi ümberkirjutamine mod_rewrite&#039;ga on selleks üks käepärane vahend.&lt;br /&gt;
&lt;br /&gt;
Ümberkirjutuste tegemiseks tuleb esmalt aktiviseerida ümberkirjutusmehhanism&lt;br /&gt;
&lt;br /&gt;
 RewriteEngine On&lt;br /&gt;
&lt;br /&gt;
Ümberkirjutust ennast teostab direktiiv RewriteRule. Näiteks suuname kõik veebiserverisse kasutajale priit tulevad päringud (http://www.zoo.tartu.ee/~priit) aadressile http://www.priit.ee&lt;br /&gt;
&lt;br /&gt;
 RewriteRule ^/~priit.+ http://www.priit.ee &lt;br /&gt;
&lt;br /&gt;
Direktiivi RewriteRule esimene argument on regulaaravaldis (^/~priit.+) ning kui sellega päring klapib, siis suunatakse brauser teise parameetriga näidatud URLile (http://www.priit.ee). Kasutaja brauseri Location real kirjutatakse URL paratamatult ümber.&lt;br /&gt;
&lt;br /&gt;
Direktiivi süntaks on järmine&lt;br /&gt;
&lt;br /&gt;
 RewriteRule regulaaravaldis asendus [võtmed]&lt;br /&gt;
&lt;br /&gt;
kus&lt;br /&gt;
&lt;br /&gt;
    * regulaararvaldisega kontrollitakse, kas URL klapib ümberkirjutamisreegliga, kusjuures URL on antud juhul see osa päringust, mis jääb paremale&lt;br /&gt;
      http://www.zoo.tartu.ee&#039;st, näite puhul /~priit.&lt;br /&gt;
    * kui URL klappis, siis asendatakse URL asendusega &#039;asendus&#039;&lt;br /&gt;
    * lisaks on mõnel juhul oluline kasutada võtmeid, mis kontrollivad ümberkirjutamise peensusi &lt;br /&gt;
&lt;br /&gt;
^ tähistab, et / peab olema URLi esimene sümbol ning peale priit &#039;t&#039; tähte võib tulla kuitahes palju mistahes sümboleid (.+). Muuseas, antud juhul suunatakse ümber näiteks päring http://www.zoo.tartu.ee/~priit-onvastmees.&lt;br /&gt;
&lt;br /&gt;
Lubatud on kasutada järjest mitmeid asendusi, mil neid rakendatakse järjest, tulemuseks on viimane tehtud ümberkirjutus. Järgmise asenduse regulaaravaldist klapitatakse eelmise ümberkirjutamisel tehtud tulemusega.&lt;br /&gt;
&lt;br /&gt;
Esitame näite sisemise ning välimise ümberkirjutamise kohta. Soovides vastuseks päringule http://www.zoo.tartu.ee/vana.html brauserisse saata lehe uus.html, kusjuures jättes brauseri Location reale esialgse teksti, so http://www.zoo.tartu.ee/vana.html, kasutage ümberkirjutamisreeglit&lt;br /&gt;
&lt;br /&gt;
 RewriteRule    ^vana\.html$  uus.html&lt;br /&gt;
&lt;br /&gt;
Sama, kuid brauseri Location real kajastub ümberkirjutus&lt;br /&gt;
&lt;br /&gt;
 RewriteRule    ^vana\.html$  uus.html [R]&lt;br /&gt;
&lt;br /&gt;
^vana\.html$ tähendab, et asendus toimub, kui päring oli täpselt vana.html, so algas v-ga (^) ja lõppes l-ga ($); punkt on regulaaravaldise erisümbol ja tuleb põgeda (\).&lt;br /&gt;
&lt;br /&gt;
Kirjutades järjest mitu ümberkirjutusreeglit ning soovides, et ümberkirjutamine lõppeks antud reegliga, tuleb reegli lõppu lisada võti L (last).&lt;br /&gt;
&lt;br /&gt;
 RewriteRule ^/~priit.+ http://www.priit.ee [R,L]&lt;br /&gt;
 RewriteRule ^/~nea.+   http://www.nea.ee   [R,L]&lt;br /&gt;
 RewriteRule ^/~inna.+  http://www.inna.ee  [R,L]&lt;br /&gt;
 RewriteRule ^/~mart.+  http://www.mart.ee  [R,L]&lt;br /&gt;
&lt;br /&gt;
Kui aga veebiserverit tõstetakse ühest masinast teise, oletame, et uus töötab, kuid kasutajate kodud on vanas, siis lisage uue konfi selline rida&lt;br /&gt;
&lt;br /&gt;
 RewriteRule   ^/~(.+)  http://vana.zoo.edu.ee/~$1  [R,L]&lt;br /&gt;
&lt;br /&gt;
Siin on kasutatud regulaaravaldist koos asendamisega. $1 asendatakse tekstiga, mis klappis kasutatud regulaaravaldises avaldisega (.+). Praktiliselt näiteks&lt;br /&gt;
&lt;br /&gt;
===Lisatingimuste kasutamine===&lt;br /&gt;
&lt;br /&gt;
Direktiiv RewriteRule teostab ümberkirjutusi niikuinii tingimusi kasutades regulaaravaldise abil. Peale selle saab seada direktiiviga RewriteCond lisatingimusi. Näiteks sõltuvalt serveri kellaajast, saadetakse brauserile üks või teine veeb&lt;br /&gt;
&lt;br /&gt;
 RewriteEngine on&lt;br /&gt;
 RewriteCond   %{TIME_HOUR}%{TIME_MIN} &amp;gt;0700&lt;br /&gt;
 RewriteCond   %{TIME_HOUR}%{TIME_MIN} &amp;lt;1900&lt;br /&gt;
 RewriteRule   ^index\.html$             paev.html&lt;br /&gt;
 &lt;br /&gt;
 RewriteRule   ^index\.html$             oo.html&lt;br /&gt;
&lt;br /&gt;
%{TIME_HOUR} asendatakse päringu sooritamise kellaaja tunniväärtusega. Oluline on kirjutada &amp;lt; ja 0700 järjest, kusjuues toimub leksikograafiline stringide, mitte arvude võrdlus.&lt;br /&gt;
&lt;br /&gt;
Kui brauser esitab veebiserverile päringu päeval, siis toimub ümberkirjutus index.html -&amp;gt; paev, kuna esimese direktiivi RewriteRule regulaaravaldis klappis URLiga ning kõik eelnenud lisatingimused olid täidetud. Seejärel klapitatakse teist RewriteRule&#039;i eelmise väljundiga, so paev.html - ei klapi ning midagi ei kirjutata ümber.&lt;br /&gt;
&lt;br /&gt;
Lisatingimusi on sobiv kasutada ka brauserite eristamiseks.&lt;br /&gt;
&lt;br /&gt;
 RewriteCond  %{HTTP_USER_AGENT} Mozilla/4*&lt;br /&gt;
 RewriteRule  ^leht.html$                leht.moz.html [L]&lt;br /&gt;
 &lt;br /&gt;
 RewriteCond  %{HTTP_USER_AGENT} Lynx.*&lt;br /&gt;
 RewriteRule  ^leht.html$                leht.lynx.html [L]&lt;br /&gt;
&lt;br /&gt;
Sõltuvalt päringu tegija aadressist, saab esitada erinevat veebi.&lt;br /&gt;
&lt;br /&gt;
 RewriteCond  %{REMOTE_ADDR}  ^192.168.1.3$ &lt;br /&gt;
 RewriteRule  ^leht.html$      192.168.1.3.html [L]&lt;br /&gt;
&lt;br /&gt;
===Ümberkirjutusalus===&lt;br /&gt;
&lt;br /&gt;
Kui te tegutsete sügavamal URLi-struktuuri sees, kasutage RewriteRule&#039;i juurika ümbernimetamiseks direktiivi RewriteBase. Näiteks kirjutatakse URL http://www.zoo.tartu.ee/~priit/lemmikud/hobused.html ümber URLiks http://www.zoo.tartu.ee/~priit/lemmikud/kabjaksed.html&lt;br /&gt;
&lt;br /&gt;
 RewriteBase   /~priit/lemmikud&lt;br /&gt;
 RewriteRule   ^hobused.html$  kabjaksed.html &lt;br /&gt;
&lt;br /&gt;
===Ümberkirjutustabel===&lt;br /&gt;
&lt;br /&gt;
Esitatud päringu juhuslikult valitud URLile ümbersuunamiseks on sobiv kasutada direktiivi RewriteMap. RewriteMap pakub võimaluse salvestada tekstifaili hulga URLe, mille poole saab ümberkirjutusreeglist pöörduda. Näiteks loome olukorra, kus päringule http://www.zoo.tartu.ee/juhuslik vastatakse juhuslikult valitud veebilehega.&lt;br /&gt;
&lt;br /&gt;
Kirjeldame tabelikirjeldusfailis vl.txt juhuslike veebilehtede nimed&lt;br /&gt;
&lt;br /&gt;
 bash# cat /usr/local/apache/vl.txt&lt;br /&gt;
 veebilehed 1.html|2.html|3.html|4.html|5.html|6.html|7.html&lt;br /&gt;
&lt;br /&gt;
ning lisame veebiserveri konfiguratsioonifaili read&lt;br /&gt;
&lt;br /&gt;
 RewriteMap vl rnd:/usr/local/apache/vl.txt&lt;br /&gt;
 RewriteRule   ^/juhus$   /home/html/juhus/${vl:veebilehed|html.html}&lt;br /&gt;
&lt;br /&gt;
Ümberkirjutustabeli süntaks on selline&lt;br /&gt;
&lt;br /&gt;
RewriteMap tablelinimi tabelitüüp:tabelikirjeldusfail&lt;br /&gt;
&lt;br /&gt;
kus&lt;br /&gt;
&lt;br /&gt;
    * tabelinimi - on kooskõlas ümberkirjutusreeglis kasutatud nimega&lt;br /&gt;
    * tabelitüüp - rnd (random) näitab et&lt;br /&gt;
    * tabelikirjeldusfail - failis kirjeldatakse tabeli sisu, näiteks juhusliku puhul peab eraldama andmed |-ga (loogiline OR) &lt;br /&gt;
&lt;br /&gt;
Ümberkirjutusreegli asenduses kasutatud muutujat ${vl:veebilehed|html.html} väärtustatakse ümberkirjutustabeli vl võtme veeblilehed abil. Kui sellist ümberkirjutustabelit mingil põhjusel pole, on muutuja väärtus html.html.&lt;br /&gt;
&lt;br /&gt;
===Ümberkirjutuslogi===&lt;br /&gt;
&lt;br /&gt;
Ümberkirjutamise tööleseadmisel ning toimuvate ümberkirjutuste jälgimiseks saab kasutada direktiive RewriteLog ja RewriteLogLevel&lt;br /&gt;
&lt;br /&gt;
 RewriteLogLevel 3&lt;br /&gt;
 RewriteLog /var/log/apache/rewrite.log&lt;br /&gt;
&lt;br /&gt;
===Veebiserveri konfiguratsioonifaili lugemine===&lt;br /&gt;
&lt;br /&gt;
Lihtsamatel juhtudel pole see oluline, millises järjekorras veebiserver direktiivides esitatud reegleid kehtestab. Näiteks, kui konfiguratsioonifailis ei sisaldugi Location ja Files sektsioone, kuid soovides kasutada veebiseverit paindlikumalt, tuleb järjekorraga arvestada.&lt;br /&gt;
&lt;br /&gt;
Direktiivide puhul ei hooli Apache suurtest ja väikestest tähtedest, kuid parameetrite puhul on see tihti oluline.&lt;br /&gt;
&lt;br /&gt;
Eeldusel, et te paigutate kogu konfiguratsiooni ühte faili, sisalduvad seal kaks osa&lt;br /&gt;
&lt;br /&gt;
    * põhiosa - kirjeldatakse veebiserveri üldisi omadusi, näiteks millise kasutaja õigustes ta töötab&lt;br /&gt;
    * ressursside määrangud - kehtestatakse reeglid, kuidas veebiserver faile serveerib, näiteks käsitleb .php lõpulisi faile PHP skriptidena &lt;br /&gt;
&lt;br /&gt;
Üldosa direktiivide järjekord pole oluline, kui sama direktiiv on väärtustatud mitu korda, jääb kehtima viimane väärtus.&lt;br /&gt;
&lt;br /&gt;
Kui ressursside omadusi määratakse grupeerimisvahendite abil, siis sõltumata konfigureerimisfailis esinemise järjekorrast, loetakse neid sellises järjekorras: Directory, Files, Location&lt;br /&gt;
&lt;br /&gt;
Directory sees võivad olla kirjeldatud omakorda Files sektsioonid.&lt;br /&gt;
&lt;br /&gt;
Directory sees on lubatud kasutada järgmisi direktiive:&lt;br /&gt;
&lt;br /&gt;
    * DirectoryIndex&lt;br /&gt;
    * Options&lt;br /&gt;
    * Order, Allow, Deny&lt;br /&gt;
    * AllowOverride&lt;br /&gt;
    * AddHandler&lt;br /&gt;
    * AddType &lt;br /&gt;
&lt;br /&gt;
Files sektsioonis on lubatud kasutada praktiliselt samasid direktiive, mida sektsioonis Directory eeldusel, et neid on mõistlik rakendada failidele. Ilmselt ei saa kasutada näiteks direktiivi DirectoryIndex, küll aga näiteks Allow ja Deny.&lt;br /&gt;
&lt;br /&gt;
Location sektsioonis on lubatud kasutada praktiliselt samasid direktiive, mida sektsioonis Directory. Kuna Locationit rakedatakse kõige viimasena, siis ei saa seal näiteks kasutada Options direktiivi, küll aga näiteks Allow ja Deny&#039;id.&lt;br /&gt;
&lt;br /&gt;
===Veebiserveri turvalisus===&lt;br /&gt;
&lt;br /&gt;
Veebiserveri kasutamisel arvestage, et iseenesest on veebiserver programm, mis teeb teie arvuti failid kättesaadavaks HTTP protokolli kasutavaile klientidele, so brauseritele.&lt;br /&gt;
&lt;br /&gt;
Kuigi veebiserver tuleb käivitada juurkasutaja õigustes, toimetab ta edasi konfiguratsioonifailis näidatud kasutajana (User, Group direktiivid).&lt;br /&gt;
&lt;br /&gt;
Siiski, kui te kasutate konfiguratsioonifailis teatud kohtades IO ümbersuunamist, näiteks logimise juures, siis seda teeb Apache juurkasutajana.&lt;br /&gt;
&lt;br /&gt;
Vältimaks ebameeldivaid üllatusi, veenduge, et veebiserveri juurikas ning selle alla jäävad kataloogid on piisavalt kaitstud, so kasutajatel pole neisse kirjutamisõigust. Veebiserver (/usr/local/apache/bin/httpd) ja muud temaga seotud failid, näiteks rotatelogs, kuuluvad juurkasutajale ning on tavakasutajaile ning grupile others vaid käivitatavad. Tavaliselt piisab nende tingimuste täitmiseks anda käsud&lt;br /&gt;
&lt;br /&gt;
 bash# cd /usr/local/apache&lt;br /&gt;
 bash# chown 0 bin conf logs&lt;br /&gt;
 bash# chgrp 0  bin conf logs&lt;br /&gt;
 bash# chmod 755 bin conf logs&lt;br /&gt;
 &lt;br /&gt;
 bash# chown 0 /usr/local/apache/bin/httpd&lt;br /&gt;
 bash# chgrp 0 /usr/local/apache/bin/httpd&lt;br /&gt;
 bash# chmod 511 /usr/local/apache/bin/httpd&lt;br /&gt;
&lt;br /&gt;
Lisaks, mõelge järele, kas te peate kasutajaile lubama käivitada CGI skripte ja andmebaase ning otsustage millistel tingimustel. Samuti kataloogipõhine veebiserveri konfigureerimisvõimalus. Näiteks lubage kasutajatel CGI skripte tarvida ainult kataloogist    ~/public_html/cgi-bin&lt;br /&gt;
&lt;br /&gt;
 &amp;lt;Directory /usr/home/*/public_html/cgi-bin&amp;gt;&lt;br /&gt;
 AddHandler cgi-script .cgi&lt;br /&gt;
 Options +ExecCGI&lt;br /&gt;
 &amp;lt;/Directory&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Heal juhul saab veebiserveri tööleseadmise eel otsustada, milliste omadustega peab ta olema. Reeglina ei soovitata lihtsalt sisse kompileerida toetust, mida praktiliselt ei tarvitata. Näiteks, kui te olete kindel, et pole vajadust server-info ja server-status järele, siis jätke vastavad moodulid välja. Näidake seda Apache ./configure skripti juures vastavate võtmetega --disable-module=info --disable-module=status.&lt;br /&gt;
&lt;br /&gt;
===Virtuaalveebiserverid===&lt;br /&gt;
&lt;br /&gt;
Ühte ja sama Apache veebiserverit saab tööle seada nii, et ta serveerib erinevaid andmeid sõltuvalt sellest, millise nimega tema poole pöörduti. Asjakorraldust nimetatakse virtuaalseteks veebiserveriteks, kuna füüsiliselt on tegu ühe arvutiga, kuid külastajaile jäetakse mulje, et neid on mitu.&lt;br /&gt;
&lt;br /&gt;
Virtuaalseid veebiservereid on kolme sorti:&lt;br /&gt;
&lt;br /&gt;
    * pordipõhised - sõltuvalt külastaja poolt kastatud pordist serveeritakse erinevat veebi&lt;br /&gt;
    * IP-põhised - sõltuvalt külastaja poolt kasutatud IP-aadressist serveeritakse erinevat veebi&lt;br /&gt;
    * nimepõhised - sõltuvalt külastaja poolt kasutatud DNSi nimest serveeritakse erinevat veebi; reeglina vastavad erinevad nimed samale IP-aadressile,&lt;br /&gt;
      so on kirjeldatud CNAMEdena. &lt;br /&gt;
&lt;br /&gt;
Põhimõtteliselt on võimalik kasutada neid virtuaalservereid ka kombineeritult korraga.&lt;br /&gt;
&lt;br /&gt;
Erijuht virtuaalveebi serveerida, on käivitada mitu eksemplari httpd servereid, iga oma konfiguratsiooniga. Kuna see võimalus on suhteliselt ebaefektiivne ning ei paku olulisi täiendavaid võimalusi, siis seda me ei käsitle.&lt;br /&gt;
&lt;br /&gt;
Virtuaalserveri sektsioonis (VirtualHost) saab kasutada paljusid direktiive, mida peaserveri puhul, sh direktiive Options, Alias, Directory, Location, Files. Samuti direktiive, mis reguleerivad SSI, CGI, PHP, Emperli, ümberkirjutamise ja logi kasutamist. Kui direktiivi ei näidata, kasutatakse põhikonfiguratsiooni väärtust, kui seal seda samuti pole, siis vaikeväärtust.&lt;br /&gt;
&lt;br /&gt;
===Pordipõhised virtuaalveebiserverid===&lt;br /&gt;
&lt;br /&gt;
Kasutamaks erinevaid veebiseveri konfiguratsioone sõltuvalt sellest, millisele pordile päring tuli, kasutage direktiive Listen ja VirtualHost. Näiteks teenindab veebiserveri konfiguratsioonifaili põhiosale vastav server kõiki päringuid, va neid, mis on suunatud aadressi 193.40.50.1 (www.zoo.edu.ee) pordile 8080 või pordile 8081. Viimast kahte teenindatakse vastavalt VirtualHosti sektsioonile. Näiteks seame lisaks põhiosale tööle kaks alternatiivset dokumendijuurikat ja logi&lt;br /&gt;
&lt;br /&gt;
...&lt;br /&gt;
 Listen 80&lt;br /&gt;
 Listen 193.40.50.1:8080&lt;br /&gt;
 Listen 193.40.50.1:8081&lt;br /&gt;
 &amp;lt;VirtualHost 193.40.50.1:8080&amp;gt;&lt;br /&gt;
    ServerAdmin mart@zoo.edu.ee&lt;br /&gt;
    DocumentRoot /www/mardizoo&lt;br /&gt;
    ErrorLog /var/logs/mardizoo.error.log&lt;br /&gt;
    CustomLog /var/logs/mardizoo.log common&lt;br /&gt;
  &amp;lt;/VirtualHost&amp;gt;&lt;br /&gt;
 &lt;br /&gt;
 &amp;lt;VirtualHost 193.40.50.1:8081&amp;gt;&lt;br /&gt;
    ServerAdmin priit@zoo.edu.ee&lt;br /&gt;
    DocumentRoot /www/priiduzoo&lt;br /&gt;
    ErrorLog /var/logs/priituzoo.error.log&lt;br /&gt;
    CustomLog /var/logs/priiduzoo.log common&lt;br /&gt;
 &amp;lt;/VirtualHost&amp;gt;&lt;br /&gt;
&lt;br /&gt;
kusjuures peakonfiguratsiooni on lisatud vastavad Listen direktiivid.&lt;br /&gt;
&lt;br /&gt;
Brauseris tuleb päringud esitada vastavalt http://www.zoo.edu.ee:8080 või http://www.zoo.edu.ee:8081.&lt;br /&gt;
&lt;br /&gt;
===IP-põhised virtuaalveebiserverid===&lt;br /&gt;
&lt;br /&gt;
IP-põhiste virtuaalveebiserverite kasutamisel on veebiserveril mitu IP-aadressi, st masinal on mitu võrgukaarti või on kasutatud IP-aliasingut.&lt;br /&gt;
&lt;br /&gt;
IP-põhiste virtuaalveebiserverite kasutamisel näidake direktiivi VirtualHost juures ära IP-aadress ning samas sektsioonis kirjeldage kõnealuse veebiserveri omadused. Näiteks kui masinal on kaks võrgukaarti IP-aadressidega 193.40.10.1 ning 193.40.50.1, kasutage sektsioone&lt;br /&gt;
&lt;br /&gt;
 &amp;lt;VirtualHost 193.40.50.1&amp;gt;&lt;br /&gt;
    ServerName www.zoo.tartu.ee&lt;br /&gt;
    ServerAdmin priit@zoo.tartu.ee&lt;br /&gt;
    DocumentRoot /www/tartuzoo&lt;br /&gt;
    ErrorLog /var/logs/tartuzoo.error.log&lt;br /&gt;
    CustomLog /var/logs/tartuzoo.log common&lt;br /&gt;
 &amp;lt;/VirtualHost&amp;gt;&lt;br /&gt;
 &lt;br /&gt;
 &amp;lt;VirtualHost 193.40.10.1&amp;gt;&lt;br /&gt;
    ServerName www.zoo.edu.ee&lt;br /&gt;
    ServerAdmin mart@zoo.edu.ee&lt;br /&gt;
     DocumentRoot /www/eduzoo&lt;br /&gt;
     ErrorLog /var/logs/eduzoo.error.log&lt;br /&gt;
     CustomLog /var/logs/eduzoo.log common&lt;br /&gt;
 &amp;lt;/VirtualHost&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Peakonfiguratsiooni osa järgi teenindatakse neid päringuid, millel ei leidu sobivat virtuaalserverit. Näiteks kui masinal on veel kolmas võrguseade ning päring siseneb selle aadressile.&lt;br /&gt;
&lt;br /&gt;
Virtuaalserveri direktiivi juurde võib kirjutada ka mitu IP-aadressi, mispuhul kasutatakse kõnealust serverit neile kõigile tulnud päringutele vastamisel.&lt;br /&gt;
&lt;br /&gt;
===Nimepõhised virtuaalveebiserverid===&lt;br /&gt;
&lt;br /&gt;
Nimepõhisete virtuaalveebiserverite kasutamine eeldab, et ühele IP aadressile (193.40.50.1) on nimesüsteemis (DNS) seatud näiteks CNAMEiga vastavusse mitu domeenime (www.zoo.tartu.ee, post.zoo.tartu.ee).&lt;br /&gt;
&lt;br /&gt;
Kui soovite kasutada enam kui ühte veebiserverit, siis on soovitav kõik veebiserverid konfigureerida virtuaalseteks. Kusjuures põhiserverile ei vastagi DocumentRoot&#039;i.&lt;br /&gt;
&lt;br /&gt;
Nimepõhiste virtuaalveebiserverite kasutamine deklareeritakse peakonfiguratsiooni osas direktiiviga NameVirtualHost. Direktiivi järel näidatakse IP aadress, millele tulnud päringute teenindamisel kasutatakse sobivat VirtualHosti sektsiooni. Näiteks&lt;br /&gt;
&lt;br /&gt;
 NameVirtualHost 193.40.50.1&lt;br /&gt;
&lt;br /&gt;
puhul kasutatakse aadressile 193.40.50.1 saabunud päringute töötlemiseks sobiva domeeninimega (ServerName) VirtualHost sektsiooni.&lt;br /&gt;
&lt;br /&gt;
Erinevad virtuaalserverid kirjeldatakse direktiiviga VirtualHost, näiteks sarnase sektsiooniga&lt;br /&gt;
&lt;br /&gt;
 &amp;lt;VirtualHost 193.40.50.1&amp;gt;&lt;br /&gt;
     ServerName www.zoo.tartu.ee&lt;br /&gt;
     ServerAdmin priit@zoo.tartu.ee&lt;br /&gt;
     DocumentRoot /www&lt;br /&gt;
     ErrorLog /var/logs/www.error.log&lt;br /&gt;
     CustomLog /var/logs/www.log common&lt;br /&gt;
 &amp;lt;/VirtualHost&amp;gt;&lt;br /&gt;
 &lt;br /&gt;
 &amp;lt;VirtualHost 193.40.50.1&amp;gt;&lt;br /&gt;
     ServerName post.zoo.tartu.ee&lt;br /&gt;
     ServerAdmin post@zoo.tartu.ee&lt;br /&gt;
     DocumentRoot /post&lt;br /&gt;
     ErrorLog /var/logs/post.error.log&lt;br /&gt;
     CustomLog /var/logs/post.log common&lt;br /&gt;
 &amp;lt;/VirtualHost&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Kui serveril on mitu võrguaadressi, siis võib kasutada direktiivi NameVirtualHost mitu korda ning lisada vastavad sektsioonid, kuid lühem on asendada IP aadress täringa (*)&lt;br /&gt;
&lt;br /&gt;
 NameVirtualHost *&lt;br /&gt;
 &lt;br /&gt;
 &amp;lt;VirtualHost *&amp;gt;&lt;br /&gt;
     ServerName www.zoo.tartu.ee&lt;br /&gt;
     ServerAdmin priit@zoo.tartu.ee&lt;br /&gt;
     DocumentRoot /www&lt;br /&gt;
     ErrorLog /var/logs/www.error.log&lt;br /&gt;
     CustomLog /var/logs/www.log common&lt;br /&gt;
 &amp;lt;/VirtualHost&amp;gt;&lt;br /&gt;
 &lt;br /&gt;
 &amp;lt;VirtualHost *&amp;gt;&lt;br /&gt;
     ServerName post.zoo.tartu.ee&lt;br /&gt;
     ServerAdmin post@zoo.tartu.ee&lt;br /&gt;
     DocumentRoot /post&lt;br /&gt;
     ErrorLog /var/logs/post.error.log&lt;br /&gt;
     CustomLog /var/logs/post.log common&lt;br /&gt;
 &amp;lt;/VirtualHost&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Päringuid, mis saabuvad direktiiviga NameVirtualHost näidatud aadressile ei teenindata IP-põhiste sektsioonide ega peaserveri konfiguratsiooni alusel.&lt;br /&gt;
&lt;br /&gt;
===Kasulikud lisamaterjalid===&lt;/div&gt;</summary>
		<author><name>Triinu</name></author>
	</entry>
	<entry>
		<id>https://kuutorvaja.eenet.ee/w/index.php?title=Apache%27i_veebiserver&amp;diff=2844</id>
		<title>Apache&#039;i veebiserver</title>
		<link rel="alternate" type="text/html" href="https://kuutorvaja.eenet.ee/w/index.php?title=Apache%27i_veebiserver&amp;diff=2844"/>
		<updated>2007-01-26T14:11:24Z</updated>

		<summary type="html">&lt;p&gt;Triinu: /* Pordipõhised virtuaalveebiserverid */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;===Veebiserveri konfigureerimine ja käivitamine===&lt;br /&gt;
&lt;br /&gt;
Veebiserveri tööd juhib üks konfiguratsioonifail httpd.conf. Sellesse kirjutatake parameetrid üks reale, kusjuures # märgiga algavaid ridu ignoreeritakse. Ridu saab jätkata sisestades kurakallu (\) viimase sümbolina eelmisele reale, tegelikult eelviimasena, viimane on reavahetus :)&lt;br /&gt;
&lt;br /&gt;
Lihtsal juhul võiks olla konfiguratsioonifail selline&lt;br /&gt;
&lt;br /&gt;
 User nobody&lt;br /&gt;
 Group nobody&lt;br /&gt;
 ServerType standalone&lt;br /&gt;
 ServerName www.zoo.tartu.ee&lt;br /&gt;
 ServerRoot &amp;quot;/usr/local/apache&amp;quot;&lt;br /&gt;
 DocumentRoot &amp;quot;/html&amp;quot;&lt;br /&gt;
 DirectoryIndex index.html&lt;br /&gt;
 ErrorLog /var/log/apache/error.log&lt;br /&gt;
 Listen 80&lt;br /&gt;
 Options None&lt;br /&gt;
 &amp;lt;Directory /&amp;gt;&lt;br /&gt;
 AllowOverride None&lt;br /&gt;
 &amp;lt;/Directory&amp;gt;&lt;br /&gt;
&lt;br /&gt;
kus on kasutatud järgmisi direktiive&lt;br /&gt;
&lt;br /&gt;
    * User - kasutaja, kelle õigustes veebiserver töötab&lt;br /&gt;
    * Group - grupp, kelle õigustes veebiserver töötab&lt;br /&gt;
    * ServerType - serveri tüüp, tavaliselt standalone, so mitte inetd abil käivitatav&lt;br /&gt;
    * ServerName - millise nime server arvab endal olevat&lt;br /&gt;
    * ServerRoot - kataloog, mille all serveri programmid asuvad&lt;br /&gt;
    * DocumentRoot - veebifailid, mida külastajaile serveeritakse&lt;br /&gt;
    * DirectoryIndex - faili nimi, mis brauserisse saadetakse, kui ta küsib kataloogi eeldusel, et sellenimeline fail kataloogis leidub&lt;br /&gt;
    * ErrorLog - fail, kuhu saadetakse veateated; kataloog, kus see fail asub peab olema kindlasti olemas!&lt;br /&gt;
    * Listen - port, millel veebiserver ootab päringuid, kõigil võrguseadmetel&lt;br /&gt;
    * Options - väärtus None tagab, et külastajale näidatakse vaid neid veebilehti, mida ta nimeliselt küsib. &lt;br /&gt;
&lt;br /&gt;
Reeglina on veebiserverina töötaval arvutil nö tavaline nimi, näiteks kalake.zoo.tartu.ee ning nimeserveris on talle defineeritud lisaks ka mõned hüüdnimed (CNAMEga). Tavaliselt kasutatakse veebiserveri nime alguses kombinatsiooni www, kokku saab antud juhul www.zoo.tartu.ee, kuid veebiserveri nimi ei pea sugugi algama www-ga olles näiteks see sama kalake.zoo.tartu.ee.&lt;br /&gt;
&lt;br /&gt;
Konfiguratsioonifailis kasutatud kataloogid peavad süsteemis leiduma, toodud näites peavad nad kuuluma lähtudes turvakaalutlustest juurkasutajale; samuti nendest kataloogidest ülevalpool asuvad kataloogid.&lt;br /&gt;
&lt;br /&gt;
Reeglina on süsteemis vaikimisi olemas mitteprivilegeeritud kasutaja nobody grupiga nobody. Võib kasutada seda või luua spetsiaalne kasutaja, näiteks apache grupiga veeb. Veebiserveri mittekäivitumise põhjuseks on tihtipeale vastavate kasutajate puudumine süsteemis.&lt;br /&gt;
&lt;br /&gt;
Näidates võrguseadme nime, vastatakse ainult sellelt seadmelt tulevaile päringutele, näiteks &#039;Listen 193.40.10.1 80&#039;.&lt;br /&gt;
&lt;br /&gt;
===Sektsioon===&lt;br /&gt;
&lt;br /&gt;
 &amp;lt;Directory /&amp;gt;&lt;br /&gt;
 AllowOverride None&lt;br /&gt;
 &amp;lt;/Directory&amp;gt;&lt;br /&gt;
&lt;br /&gt;
tähendab, et kataloogides pole täiendavate vahenditega õigust veebiserveri konfiguratsiooni täpsustada.&lt;br /&gt;
&lt;br /&gt;
Kuigi teatud parameetrite järjekord konfiguratsioonifailis ei ole tähtis, jääb kehtima parameetrile viimasena omistatud väärtus.&lt;br /&gt;
Käivitamine&lt;br /&gt;
&lt;br /&gt;
Veebiserver käivitatakse ja peatatakse käsuga apachectl&lt;br /&gt;
&lt;br /&gt;
 bash# apachectl start&lt;br /&gt;
&lt;br /&gt;
Peatamine toimub käsuga stop&lt;br /&gt;
&lt;br /&gt;
 bash# apachectl stop&lt;br /&gt;
&lt;br /&gt;
Peale konfiguratsioonifaili muutmist kehtestuvad muutused serveri taaskäivitamisel soovitavalt käsuga graceful, või restart&lt;br /&gt;
&lt;br /&gt;
 bash# apachectl graceful&lt;br /&gt;
&lt;br /&gt;
Veebiserver tuleb käivitada juurkasutajaõigustes, kuid ta töötab konfiguratsioonifailis näidatud User ja Group kasutajana. See tähendab, et failisüsteemi osad, mida soovitakse veebi näidata peavad olema vastavatele UNIXi kasutajatele nähtavad. Tavaliselt on nende failide kasutajagrupile other antud lugemisõigus.&lt;br /&gt;
&lt;br /&gt;
Töötavast veebiserverist annab tunnistust see, kui süsteemi protsessitabelis on httpd deemoni nimi, isegi mitu&lt;br /&gt;
&lt;br /&gt;
 bash# ps auxw | grep httpd&lt;br /&gt;
 root   30692  0.0  5.4  4236 3288  ??  Ss    4:39PM   0:00.16 /usr/local/apache/bin/httpd&lt;br /&gt;
 nobody 30840  0.0  5.5  4272 3324  ??  I     5:52PM   0:00.00 /usr/local/apache/bin/httpd&lt;br /&gt;
 nobody 30841  0.0  5.5  4272 3324  ??  I     5:52PM   0:00.00 /usr/local/apache/bin/httpd&lt;br /&gt;
 nobody 30842  0.0  5.5  4272 3324  ??  I     5:52PM   0:00.00 /usr/local/apache/bin/httpd&lt;br /&gt;
 nobody 30843  0.0  5.4  4248 3296  ??  I     5:52PM   0:00.00 /usr/local/apache/bin/httpd&lt;br /&gt;
 nobody 30844  0.0  5.4  4248 3296  ??  I     5:52PM   0:00.00 /usr/local/apache/bin/httpd&lt;br /&gt;
 nobody 30845  0.0  5.4  4256 3300  ??  I     5:52PM   0:00.00 /usr/local/apache/bin/httpd&lt;br /&gt;
&lt;br /&gt;
Aga veel parem kinnitus on, kui olemaks näitega kooskõlas päring http://www.zoo.edu.ee näitab veebilehte, so faili /html/index.html. Samuti saab antud näite rakendamisel näha kasutajate kodulehti eeldusel, et nad asuvad kataloogide ~/public_html all.&lt;br /&gt;
&lt;br /&gt;
Kui veebiserveri käivitamisel ilmneb raskusi, siis tasub uurida vealogi (/var/log/apache/error.log) sisu.&lt;br /&gt;
Automaatne käivitamine&lt;br /&gt;
&lt;br /&gt;
===Veebiressursside kasutusõigus===&lt;br /&gt;
&lt;br /&gt;
Veebiserveri konfigureerimisel on väga oluline näidata, mida vastuseks külastaja päringule tohib teha või saata või kas üldse külastajat teenindada.&lt;br /&gt;
&lt;br /&gt;
===Direktiiv Option===&lt;br /&gt;
&lt;br /&gt;
Direktiivi Options abil saab määratleda, mida kataloogis leiduvate failidega lubatakse teha. Näiteks määrates minimaalsed õigused parameetriga None, saab kataloogis sisalduvate failide poole pöörduda vaid nimeliselt; failide nimekirja ei näidata.&lt;br /&gt;
&lt;br /&gt;
 Options None&lt;br /&gt;
&lt;br /&gt;
===Muud võimalused:===&lt;br /&gt;
&lt;br /&gt;
    * FollowSymLinks - kui brauser esitatud päringus on failinimi viide, siis seda järgitakse vaatamata, kas viidatav fail kuulub samale kasutajale kui&lt;br /&gt;
      viide&lt;br /&gt;
    * SymLinksIfOwnerMatch - kui brauser esitatud päringus on failinimi viide, siis seda järgitakse juhul, kas viidatav fail kuulub samale kasutajale &lt;br /&gt;
      kellele viide&lt;br /&gt;
    * Indexes - näidatakse serveri kataloogi failide nimekirja kui DirectoryIndexis näidatud faile ei leitud&lt;br /&gt;
    * ExecCGI - CGI skriptide kasutamiseks&lt;br /&gt;
    * Includes - SSI failide kasutamiseks&lt;br /&gt;
    * IncludesNOEXEC - SSI failide kasutamiseks, va #exec ja CGI skriptide #include&lt;br /&gt;
    * All - kõik eelnimetatu on lubatud &lt;br /&gt;
&lt;br /&gt;
Korraga võib määratleda ka mitu parameetrit, eraldades nad üksteisest tühikuga.&lt;br /&gt;
&lt;br /&gt;
Kui konfiguratsioonifailis kasutada mitmel Options direktiivi, jääb kehtima viimane. Lisades parameetri algusesse + või - märgi, lisatakse või eemaldatakse vastav toime. Näiteks kasutades direktiive&lt;br /&gt;
&lt;br /&gt;
 Options Indexes Includes FollowSymLinks&lt;br /&gt;
 Options -FollowSymLinks&lt;br /&gt;
&lt;br /&gt;
on toime samaväärne avaldisega&lt;br /&gt;
&lt;br /&gt;
 Options Indexes Includes&lt;br /&gt;
&lt;br /&gt;
Direktiivi Options vaikeväärtus on All.&lt;br /&gt;
&lt;br /&gt;
===Direktiivid Allow, Deny ja Order===&lt;br /&gt;
&lt;br /&gt;
Direktiividega Allow, Deny ning Order abil saab kehtestada, millistelt domeenidelt tulevaid päringuid teenidatakse. Orderi abil seatakse, millises järjekorras kontroll toimub, kusjuures rakendatakse viimast reeglit, millega külastaja domeeninimi klapib. Kui ükski reegel ei klapi, toimitakse vaikimisi nagu viimane Orderi parameeter näitab. Näiteks sellise sektsiooni puhul&lt;br /&gt;
&lt;br /&gt;
 Order Deny,Allow&lt;br /&gt;
 Deny from all&lt;br /&gt;
 Allow from zoo.tartu.ee&lt;br /&gt;
&lt;br /&gt;
Päringut domeenist zoo.tartu.ee teenindatakse, esimene reegel (Deny) keelab kõik, kuid teine (Allow) lubab domeeni zoo.tartu.ee. Kui Order oleks vastupidi, siis lubaks esimene reegel (Allow) zoo.tartu.ee, kuid kehtima jääks viimane reegel (Deny). Reeglite järjekord failis ei loe, kuna selle määrab Order.&lt;br /&gt;
&lt;br /&gt;
Järgmises näites on lubatud päringud vaid tartu.ee domeenist, va alamdomeen zoo.tartu.ee&lt;br /&gt;
&lt;br /&gt;
 Order Allow,Deny&lt;br /&gt;
 Allow from tartu.ee&lt;br /&gt;
 Deny from zoo.tartu.ee&lt;br /&gt;
&lt;br /&gt;
Tõepoolest, päringut foo.tartu.ee domeenist teenindatakse kuna ta klapib esimese (Allow) reegliga, mis lubab ning teisega, mis keelab mitte. Päringuid muudest domeenidest keelatakse, kuna nad ei klapi kummagi reegliga ning vaikimisi rakendatakse viimast Orderi parameetrit - Deny.&lt;br /&gt;
&lt;br /&gt;
Order, Deny ja Allow direktiive saab kasutada vaid direktiivi Directory sees ning Deny ja Allow tuleb eraldada ainult täpselt ühe komaga!&lt;br /&gt;
&lt;br /&gt;
===Veebiressursside grupeerimisvahendid===&lt;br /&gt;
&lt;br /&gt;
Veebiserveri kasutusõigust ning teisi omadusi reguleerivaid parameetreid saab grupeerida järgmiste direktiividega&lt;br /&gt;
&lt;br /&gt;
    * Directory - kataloogis ning selle alla jäävate alamkataloogides sisalduvate failide grupeerimiseks&lt;br /&gt;
    * Files - faili nimede järgi failide grupeerimiseks&lt;br /&gt;
    * Location - URLi ning selle alla jäävate URLide grupeerimiseks &lt;br /&gt;
&lt;br /&gt;
Sellistele gruppidele saab rakendada korraga samu määratlusi, näiteks Option parameetriga.&lt;br /&gt;
&lt;br /&gt;
===Directory direktiiv===&lt;br /&gt;
&lt;br /&gt;
Directory abil saab määrata näidatud kataloogi alla jäävatele failidele ühesuguseid omadusi. Näiteks kehtestame, et kataloogi /html/veeb/kalamaja alla jäävates kataloogides käsitletakse DirectoryIndexina faile index.html ja index.htm&lt;br /&gt;
&lt;br /&gt;
 &amp;lt;Directory /html/veeb/kalamaja&amp;gt;&lt;br /&gt;
 DirectoryIndex index.html index.htm&lt;br /&gt;
 &amp;lt;/Directory&amp;gt;&lt;br /&gt;
&lt;br /&gt;
===Files direktiiv===&lt;br /&gt;
&lt;br /&gt;
Sarnaselt Directory&#039;le saab kehtestada näidatud regulaaravaldisega klappivate failinimedega failidele ühesuguseid omadusi. Näiteks kehtestame, et failides, mille nimi algab tähtedega &amp;quot;e_&amp;quot; ja lõpeb .html-ga, tohivad sisaldada Embperli konstruktsioone&lt;br /&gt;
&lt;br /&gt;
 &amp;lt;Files ~ &amp;quot;^e_.*\.html$&amp;quot;&amp;gt;&lt;br /&gt;
 Options +ExecCGI&lt;br /&gt;
 SetHandler perl-script&lt;br /&gt;
 PerlHandler HTML::Embperl&lt;br /&gt;
 &amp;lt;/Files&amp;gt;&lt;br /&gt;
&lt;br /&gt;
===Location direktiiv===&lt;br /&gt;
&lt;br /&gt;
Sarnaselt Directory direktiivile saab Locationiga kehtestada osale veebikohale samasuguseid omadusi. Location mõjub mitte kataloogistruktuuri, vaid URLi mõttes hulgale elementidele. Näiteks kehtestame, et URL&#039;ist http://kalake.zoo.edu.ee/hobused edasi tohib näha kataloogide nimekirja&lt;br /&gt;
&lt;br /&gt;
 &amp;lt;Location /hobused&amp;gt;&lt;br /&gt;
 Options Indexes&lt;br /&gt;
 &amp;lt;/Location&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Tavaliselt piisab Directory kasutamisest, kuid kuna veebiserveri kataloogi-ja URLihierarhia ei pruugi alati kokku langeda, siis on sellest vahel abi.&lt;br /&gt;
&lt;br /&gt;
===Kataloogipõhine veebiserveri konfigureerimine===&lt;br /&gt;
&lt;br /&gt;
Veebiserveri põhikonfiguratsioonifailis näidatud väärtusi saab iga kataloogi jaoks täpsustavalt määrata kataloogis sisalduva konfiguratsiooni .htaccess faili abil. Selle faili nimi on määratud põhikonfiguratsioonifailis direktiiviga AccessFileName, mis peab esinema Directory sees. Faili süntaks on sama, mis põhikonfiguratsioonifailil. Seda, milliseid omadusi on ludatud .htaccess failiga täpsustada, näitab põhikonfiguratsioonifailis direktiiv AllowOverride; järgmistele parameeritele vastab voli muuta toodud parameetreid&lt;br /&gt;
&lt;br /&gt;
    * AuthConfig - AuthGroupFile, AuthName, AuthType, AuthUserFile, Require jne&lt;br /&gt;
    * FileInfo - AddEncoding, AddLanguage, AddType, DefaultType, ErrorDocument jne&lt;br /&gt;
    * Indexes - DirectoryIndex, AddDescription, AddIcon, AddIconByEncoding, AddIconByType, DefaultIcon, DirectoryIndex, FancyIndexing, HeaderName,&lt;br /&gt;
      IndexIgnore, IndexOptions, ReadmeName jne&lt;br /&gt;
    * Limit - Order, Allow, Deny&lt;br /&gt;
    * Options - Options, XBitHack&lt;br /&gt;
    * None - mitte midagi&lt;br /&gt;
    * All - kõik nimetatud &lt;br /&gt;
&lt;br /&gt;
Vaikimisi toimib parameeter All. Kui ei soovita lasta kasutajatel veebiserverit konfigureerida, siis kasutage peale veebiserveri põhiosa direktiivi&lt;br /&gt;
&lt;br /&gt;
 AllowOverride None&lt;br /&gt;
&lt;br /&gt;
.htaccess failis tohib kasutada direktiivi Files, aga ei saa kasutada Diectory või Location.&lt;br /&gt;
&lt;br /&gt;
Tavaliselt on ohutu ning kasutajaile piisav&lt;br /&gt;
&lt;br /&gt;
 AllowOverride Indexes AuthConfig&lt;br /&gt;
&lt;br /&gt;
===Alias===&lt;br /&gt;
&lt;br /&gt;
Direktiiv Alias võimaldab muuta veebi failile kataloogistruktuuri vastavust URLi struktuurile. Näiteks olgu kataloogis /html/veeb/hobused/2000/tyrinaitus/ehola_talu failid ning soovime neile ligi pääseda URLiga http://www.zoo.tartu.ee/ehola_talu. Kasutame sellist Aliast&lt;br /&gt;
&lt;br /&gt;
 Alias /ehola_talu/ /html/veeb/hobused/2000/tyrinaitus/ehola_talu/&lt;br /&gt;
&lt;br /&gt;
Antud juhul laheneb päring http://www.zoo.tartu.ee/ehola_talu/, kuid mitte http://www.zoo.tartu.ee/ehola_talu.&lt;br /&gt;
&lt;br /&gt;
Lisaks saab Aliasega kaasata veebi faile ning katalooge, mis asuvad failisüsteemi mõttes väljaspool DocumentRootu.&lt;br /&gt;
&lt;br /&gt;
 Alias /valdek/ /html/valdek/veeb/&lt;br /&gt;
&lt;br /&gt;
Aliase süntaks on järgmine&lt;br /&gt;
&lt;br /&gt;
 Alias URLi-tee kataloogi-tee&lt;br /&gt;
&lt;br /&gt;
kus&lt;br /&gt;
&lt;br /&gt;
    * URLi-tee on osa URList, mis jääb peale serverinimi osa, näiteks http://www.zoo.tartu.ee/ehola_talu/ puhul /ehola_talu/&lt;br /&gt;
    * kataloogi-tee on vastava kataloogi nimi &lt;br /&gt;
&lt;br /&gt;
Aliasi saab kasutada peakonfiguratsioonifailis või võrdväärsetes kohtades, näiteks VirtualHost sektsioonis. Aliaste kasutamisel tuleb tavaliselt kasutada kataloogi tee&#039;le vastavaid Directory direktiive, muutmaks sobivaks veebiosa kasutusõigused. Aliased loetakse läbi enne Directory sektsioone.&lt;br /&gt;
&lt;br /&gt;
Aliase kasutamisel tuleb tähele panna, et URLi tee asendatakse igal juhul kataloogiteega. Kas sel juhul, kui päring on pikem, kooskõlas kasutatud näitega päringu http://www.zoo.tartu.ee/ehola_talu/ratsahobused/piiker.html puhul esitatakse fail /html/veeb/hobused/2000/tyrinaitus/ehola_talu/ratsahobused/piiker.html.&lt;br /&gt;
&lt;br /&gt;
Soovides teha paindlikumaid nö ümberkirjutusi, kasutage mod_rewrite&#039;i võimalusi.&lt;br /&gt;
&lt;br /&gt;
===CGI===&lt;br /&gt;
&lt;br /&gt;
CGI kasutamiseks lisage konfiguratsioonifaili rida&lt;br /&gt;
&lt;br /&gt;
 AddHandler cgi-script .cgi .pl&lt;br /&gt;
&lt;br /&gt;
Tulemusena püüab veebiserver käivitada kõiki serveeritavaid .cgi ja .pl lõpuliste nimedega faile, eeldusel, et failile rakendub Optioni parameeter ExecCGI. Käivitamisel tekkiv programmiväljund saadetakse brauserisse, kusjuures see peab algama tuntud Content-type&#039;iga, näiteks text/html. Seda võib teha näiteks Directory abil; kehtestame, et kõikjal veebi faile sisaldavas kataloogis /html/veeb/suhtleja ja selle all asuvad .cgi ja .pl lõpuliste nimedega failid on käivitatavad&lt;br /&gt;
&lt;br /&gt;
 &amp;lt;Directory /suhtleja&amp;gt;&lt;br /&gt;
 Options ExecCGI&lt;br /&gt;
 &amp;lt;/Directory&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Soovides näidata, et vaatamata failinimele tuleb käsitleda faili CGI skriptina, kasutage ScriptAlias direktiivi. Tüüpiliselt määratletakse URLi http://kalake.zoo.tartu.ee/cgi-bin/&#039;le vastavad failid skriptideks&lt;br /&gt;
&lt;br /&gt;
 ScriptAlias /cgi-bin/ /html/veeb/cgi-bin/&lt;br /&gt;
&lt;br /&gt;
Tulemusena, näiteks päringu http://kalake.zoo.tartu.ee/cgi-bin/kasutajatenimikiri.sh puhul käivitatakse fail /html/veeb/cgi-bin/kasutajatenimekiri.sh.&lt;br /&gt;
&lt;br /&gt;
===SSI===&lt;br /&gt;
&lt;br /&gt;
SSI (Server Sides Includes) tehnika võimaldab sisestada brauseri päringus nõutud faili koosseisu muude failide sisu.&lt;br /&gt;
&lt;br /&gt;
SSI kasutamiseks lisage konfiguratsioonifaili rida&lt;br /&gt;
&lt;br /&gt;
 AddType text/html .shtml&lt;br /&gt;
 AddHandler server-parsed .shtml&lt;br /&gt;
&lt;br /&gt;
ning näidake näiteks direktiivide Directory ja Options parameetri Includes abil, milliseid faile tohib server käsitleda SSIdena. Näiteks kehtestame, et kataloogi /html/veeb/uudised all kasutatakse SSId&lt;br /&gt;
&lt;br /&gt;
 &amp;lt;Directory /html/veeb/uudised&amp;lt;&amp;gt;&lt;br /&gt;
 Options IncludesNOEXEC&lt;br /&gt;
 &amp;lt;/Directory&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Tulemusena saab failides, mille nime lõpus on .shtml, kasutada SSI konstruktsioone, va #exec ja CGI skriptide #include.&lt;br /&gt;
&lt;br /&gt;
===Embperl===&lt;br /&gt;
&lt;br /&gt;
Embperl on tehnika, mis võimaldab sisestada HTML koodi sisse Perli konstruktsioone. Selle võimaluse kasutamiseks lisage konfiguratsioonifaili&lt;br /&gt;
&lt;br /&gt;
 &amp;lt;Files ~ &amp;quot;\.html$&amp;quot;&amp;gt;&lt;br /&gt;
 Options ExecCGI&lt;br /&gt;
 SetHandler perl-script&lt;br /&gt;
 PerlHandler HTML::Embperl&lt;br /&gt;
 &amp;lt;/Files&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Tulmusena lahendab veebiserver failides, mille nime lõpetab .html sisalduva Perli koodi.&lt;br /&gt;
&lt;br /&gt;
Muuseas, Embperli rakendamisel on veebiserver ka tavalise HTML süntaksi osas oluliselt rangem. Tüüpiliselt ei meeldi talle [# jne järgnevused, mida kasutatakse Embperli skriptide tähistamiseks. Et neid sümboleid siiski kasutada saada, esitage neid a la &amp;amp;#kood;, näiteks &amp;amp;#60;.&lt;br /&gt;
&lt;br /&gt;
===PHP===&lt;br /&gt;
&lt;br /&gt;
PHP on tehnika, mis võimaldab lisada HTML koodi sisse PHP keele konstruktsioone. Selle võimaluse kasutamiseks lisage konfiguratsioonifaili&lt;br /&gt;
&lt;br /&gt;
 AddType application/x-httpd-php .php&lt;br /&gt;
&lt;br /&gt;
Veebiserverisse konfigureeritud PHP omadusi saab näha PHP skriptiga&lt;br /&gt;
&lt;br /&gt;
 &amp;lt;?&lt;br /&gt;
 phpinfo();&lt;br /&gt;
 ?&amp;gt;&lt;br /&gt;
&lt;br /&gt;
===Serveri kasutajate kodulehed===&lt;br /&gt;
&lt;br /&gt;
Vaikimisi eeldab veebiserver, et näiteks URLile http://www.zoo.tartu.ee/~priit vastab süsteemi kasutaja priit kodukataloogis olev kataloog public_html. Selle kataloogi nime määrab direktiiv UserDir.&lt;br /&gt;
&lt;br /&gt;
===Veebi kaitsmine parooliga===&lt;br /&gt;
&lt;br /&gt;
Apache pakub vahendid veebistruktuuri kaitsmiseks parooliga. Konfiguratsioonifailis näidatakse ära, millist ressurssi kaitsta ning millist autentimissüsteemi kasutada.&lt;br /&gt;
&lt;br /&gt;
Kõige lihtsamal juhul tuleb programmiga htpasswd genereerida lubatud külastajate paroolifail, milles on kirjas kasutajanimed ning vastavad paroolid. See fail on reeglina erinev süsteemi paroolifailist, kus veebiserver töötab. Kui külastaja püüab siseneda kaitstud veebi, avaneb dialoog ning küsitakse tema kasutajanime ning parooli. Sobiva paari sisestamisel lubatakse külastaja veebile ligi, kusjuures kõnealust veebi saab kasutada kuni brauseri sulgemiseni.&lt;br /&gt;
&lt;br /&gt;
Näiteks kaitseme kataloogistruktuuri /html/salajane kirjeldatud paroolikontrolliga&lt;br /&gt;
&lt;br /&gt;
 &amp;lt;Directory /html/salajane&amp;gt;&lt;br /&gt;
 AuthUserFile /usr/local/apache/conf/salajane.paroolifail&lt;br /&gt;
 AuthType Basic&lt;br /&gt;
 AuthName Salajane&lt;br /&gt;
 require valid-user&lt;br /&gt;
 &amp;lt;/Directory&amp;gt;&lt;br /&gt;
&lt;br /&gt;
kus on kasutatud direktiive:&lt;br /&gt;
&lt;br /&gt;
    * AuthUserFile - paroolifailinimi, /usr/local/apache/conf/salajane.paroolifail&lt;br /&gt;
    * AuthType - millist tüüpi autentimisega on tegemist, antud juhul Basic&lt;br /&gt;
    * AuthName - parameetri väärtust näidatakse aknas, kuhu kasutaja sisestab oma veebi kasutajanime ja parooli; sama veebi piires saab sama kasutajanimega&lt;br /&gt;
      seostada erinevaid paroole, mistõttu peab külastaja saama teada, millist parooli konkreetsel juhul tarvitada&lt;br /&gt;
    * require valid-user - sellele ressursile lastakse ligi vaid peale edukat autentimist &lt;br /&gt;
&lt;br /&gt;
Sobiv paroolifail moodustatakse programmiga htpasswd&lt;br /&gt;
&lt;br /&gt;
 bash$ htpasswd -b -c -m salajane.paroolifail priit priiduparool&lt;br /&gt;
&lt;br /&gt;
kus&lt;br /&gt;
&lt;br /&gt;
   1. -b kasutaja parooliks loetakse käsurea viimane sõna (priiduparool)&lt;br /&gt;
   2. -c seda võtit tuleb kasutada vaid siis, kui paroolifaili veel ei eksisteeri; edaspidi peab selle võtme ära jätma, sest muidu kustutatakse olemasoleva&lt;br /&gt;
      paroolifaili sisu&lt;br /&gt;
   3. -m kasutada MD5 krüptimist; jättes selle võtme kirjutamata tekitatakse CRYPT proolid&lt;br /&gt;
   4. järgnevad paroolifaili nimi (salajane.paroolifail) ja kasutajanimi (priit) &lt;br /&gt;
&lt;br /&gt;
Tundub, et peale Directory, saab autentimist kasutada ka Location sektsioonis, mis on veebi suhtes veel asjakohasem.&lt;br /&gt;
&lt;br /&gt;
Paroolifail peab olema loetav sellele kasutajale, kelle õigustes veebiserver töötab (näiteks nobody) ning soovitavalt mitte olema veebiga samas kataloogistruktuuris.&lt;br /&gt;
&lt;br /&gt;
===Logi===&lt;br /&gt;
&lt;br /&gt;
Apache veebiserveriga saab logida tekstifaili erinevatel tingimustel toimunud päringuid ning neid logifaile automaatselt roteerida. Logida saab paraleelselt ka näidatud tingimustele erinevates formaatides erinevatesse failidesse.&lt;br /&gt;
&lt;br /&gt;
Direktiiviga LogFormat kirjeldatakse mida logitakse. Tüüpiliselt defineeritakse formaat nimega tavaline&lt;br /&gt;
&lt;br /&gt;
 LogFormat &amp;quot;%h %l %u %t \&amp;quot;%r\&amp;quot; %&amp;gt;s %b&amp;quot; tavaline&lt;br /&gt;
&lt;br /&gt;
kus&lt;br /&gt;
&lt;br /&gt;
    * %h - maisinanimi, kust päring esitati&lt;br /&gt;
    * %l - kasutajanimi, kes päringu esitas eeldusel, et IdentityCheck tomib; tavaliselt see väli jääb tühjaks, kuna IdentityCheck&#039;i kasutamine võtab&lt;br /&gt;
      tublisti veebi kiirust alla&lt;br /&gt;
    * %u - kui veebiserveri ressurss nõudis autentimist, siis kasutatud kasutajanimi&lt;br /&gt;
    * %t - päringu esitamise aeg&lt;br /&gt;
    * \&amp;quot;%r\&amp;quot; - jutumärkides esitatud päringu esimene rida&lt;br /&gt;
    * %&amp;gt;s - päringule vastuse olek (ingl. k. status)&lt;br /&gt;
    * %b - päringu vastuse maht baitides&lt;br /&gt;
    * tavaline - logiformaadi nimi &lt;br /&gt;
&lt;br /&gt;
Logimine ise toimub direktiiviga CustomLog, näiteks logime, kasutades logiformaati tavaline, faili /var/log/apache/tavaline.log&lt;br /&gt;
&lt;br /&gt;
 CustomLog /var/log/apache/tavaline.log tavaline&lt;br /&gt;
&lt;br /&gt;
Soovides logifaili automaatselt roteerida, kasutage veebiserveriga kaasas olevat programmi rotatelogs. Näiteks moodustame iga nädal uue logi&lt;br /&gt;
&lt;br /&gt;
 CustomLog &amp;quot;|/usr/local/apache/bin/rotatelogs /var/log/apache/tavaline.log 604800&amp;quot; common&lt;br /&gt;
&lt;br /&gt;
Logi faili nimi moodustatakse lisades failinime lõppu aja sekundites, mis on möödunud UNIXi ajastu algusest, so 1970. 1. jaanuar kell 00:00 hommikul.&lt;br /&gt;
&lt;br /&gt;
===Vealogi===&lt;br /&gt;
&lt;br /&gt;
Vealogisse salvestatakse serveri töös toimunud vead, sh näiteks päringud puuduvatele failidele. Logitaset saab reguleerida direktiiviga LogLevel, soovitatakse taset warn&lt;br /&gt;
&lt;br /&gt;
 LogLevel warn&lt;br /&gt;
&lt;br /&gt;
Direktiiviga ErrorLog näidatakse, kuhu logi salvestada&lt;br /&gt;
&lt;br /&gt;
 ErrorLog /var/log/apache/error.log&lt;br /&gt;
&lt;br /&gt;
Logianalüsaatorid&lt;br /&gt;
&lt;br /&gt;
Apache veebiserveri logi analüüsiks sobib kasutada näiteks programmi Webalizer.&lt;br /&gt;
&lt;br /&gt;
===Veebiserveri staatus ja info===&lt;br /&gt;
&lt;br /&gt;
Eeldusel, et veebiserverisse on sissekompilleeritud vastavad moodulid võtmetega --enable-module=status ja --enable-moudule=info, saab näha veebiserveri konfiguratsiooni (info) ning parasjagu olevat seisu (status).&lt;br /&gt;
&lt;br /&gt;
Näidates konfiguratsioonifailis direktiivi ExtendedStatus parameetriks &amp;quot;On&amp;quot;, esitatakse staatus põhjalikumalt.&lt;br /&gt;
&lt;br /&gt;
Nende veebiserveri omaduste nägemiseks peab sisalduma konfiguratsioonifailis kaks sektsiooni&lt;br /&gt;
&lt;br /&gt;
URLi http://www.zoo.tartu.ee/status-info jaoks&lt;br /&gt;
&lt;br /&gt;
 &amp;lt;Location /server-info&amp;gt;&lt;br /&gt;
     SetHandler server-info&lt;br /&gt;
     Order deny,allow&lt;br /&gt;
     Deny from all&lt;br /&gt;
     Allow from .zoo.tartu.ee&lt;br /&gt;
 &amp;lt;/Location&amp;gt;&lt;br /&gt;
&lt;br /&gt;
URLi http://www.zoo.tartu.ee/server-info jaoks&lt;br /&gt;
&lt;br /&gt;
 &amp;lt;Location /server-status&amp;gt;&lt;br /&gt;
     SetHandler server-status&lt;br /&gt;
     Order deny,allow&lt;br /&gt;
     Deny from all&lt;br /&gt;
     Allow from .zoo.tartu.ee&lt;br /&gt;
 &amp;lt;/Location&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Mõlemas sektsioonis on kasutatud Deny ja Allow direktiive, piiramaks nende URLide külastamise õigust. Kuigi sealt midagi väga salajast ei paista, on külastama lubatud vaid zoo.tart.ee domeeni masinastest.&lt;br /&gt;
Veebi-indekseerijad&lt;br /&gt;
&lt;br /&gt;
Apache veebiserver ei sisalda indekseerimisvahendeid, so võimalusi luua serveeritavale veebile otsingumootorit. Küll aga sobib kasutada mõnda olemasolevat veebiindeksaatorit, näiteks Glimpse või HtDig.&lt;br /&gt;
&lt;br /&gt;
Hoopis teine probleem on kuidas kontrollida, mida tohivad teha teised otsingumootorid (tuntud kui robotid või nuhid) teie veebi külastades. Tüüpiliselt tuleb neid kontrollida, kuna nad võivad täita avalikke andmebaase kiiresti vananeva infoga või ebasoovitavalt teie serverit koormata.&lt;br /&gt;
&lt;br /&gt;
===URLi ümberkirjutamine===&lt;br /&gt;
&lt;br /&gt;
Ümberkirjutamise kasutamiseks on vaja mod_rewrite&#039;i toetus serverisse kompilleerida võtmega --enable-module=rewrite.&lt;br /&gt;
&lt;br /&gt;
See tehnika võimaldab suunata serverisse tulevad päringud ümber, jäädes sama serveri piiridesse või välja. Ümbersuunamisi saab konfigureerida peakonfiguratsioonifailist või .htaccess failist.&lt;br /&gt;
&lt;br /&gt;
Ümbersuunamisel saab kasutada tingimusi või teha seda juhuslikult.&lt;br /&gt;
&lt;br /&gt;
Tõenäoliselt on võimalik järgnevalt näidetena toodud tegevusi korraldada ka muude vahenditega, URLi ümberkirjutamine mod_rewrite&#039;ga on selleks üks käepärane vahend.&lt;br /&gt;
&lt;br /&gt;
Ümberkirjutuste tegemiseks tuleb esmalt aktiviseerida ümberkirjutusmehhanism&lt;br /&gt;
&lt;br /&gt;
 RewriteEngine On&lt;br /&gt;
&lt;br /&gt;
Ümberkirjutust ennast teostab direktiiv RewriteRule. Näiteks suuname kõik veebiserverisse kasutajale priit tulevad päringud (http://www.zoo.tartu.ee/~priit) aadressile http://www.priit.ee&lt;br /&gt;
&lt;br /&gt;
 RewriteRule ^/~priit.+ http://www.priit.ee &lt;br /&gt;
&lt;br /&gt;
Direktiivi RewriteRule esimene argument on regulaaravaldis (^/~priit.+) ning kui sellega päring klapib, siis suunatakse brauser teise parameetriga näidatud URLile (http://www.priit.ee). Kasutaja brauseri Location real kirjutatakse URL paratamatult ümber.&lt;br /&gt;
&lt;br /&gt;
Direktiivi süntaks on järmine&lt;br /&gt;
&lt;br /&gt;
 RewriteRule regulaaravaldis asendus [võtmed]&lt;br /&gt;
&lt;br /&gt;
kus&lt;br /&gt;
&lt;br /&gt;
    * regulaararvaldisega kontrollitakse, kas URL klapib ümberkirjutamisreegliga, kusjuures URL on antud juhul see osa päringust, mis jääb paremale&lt;br /&gt;
      http://www.zoo.tartu.ee&#039;st, näite puhul /~priit.&lt;br /&gt;
    * kui URL klappis, siis asendatakse URL asendusega &#039;asendus&#039;&lt;br /&gt;
    * lisaks on mõnel juhul oluline kasutada võtmeid, mis kontrollivad ümberkirjutamise peensusi &lt;br /&gt;
&lt;br /&gt;
^ tähistab, et / peab olema URLi esimene sümbol ning peale priit &#039;t&#039; tähte võib tulla kuitahes palju mistahes sümboleid (.+). Muuseas, antud juhul suunatakse ümber näiteks päring http://www.zoo.tartu.ee/~priit-onvastmees.&lt;br /&gt;
&lt;br /&gt;
Lubatud on kasutada järjest mitmeid asendusi, mil neid rakendatakse järjest, tulemuseks on viimane tehtud ümberkirjutus. Järgmise asenduse regulaaravaldist klapitatakse eelmise ümberkirjutamisel tehtud tulemusega.&lt;br /&gt;
&lt;br /&gt;
Esitame näite sisemise ning välimise ümberkirjutamise kohta. Soovides vastuseks päringule http://www.zoo.tartu.ee/vana.html brauserisse saata lehe uus.html, kusjuures jättes brauseri Location reale esialgse teksti, so http://www.zoo.tartu.ee/vana.html, kasutage ümberkirjutamisreeglit&lt;br /&gt;
&lt;br /&gt;
 RewriteRule    ^vana\.html$  uus.html&lt;br /&gt;
&lt;br /&gt;
Sama, kuid brauseri Location real kajastub ümberkirjutus&lt;br /&gt;
&lt;br /&gt;
 RewriteRule    ^vana\.html$  uus.html [R]&lt;br /&gt;
&lt;br /&gt;
^vana\.html$ tähendab, et asendus toimub, kui päring oli täpselt vana.html, so algas v-ga (^) ja lõppes l-ga ($); punkt on regulaaravaldise erisümbol ja tuleb põgeda (\).&lt;br /&gt;
&lt;br /&gt;
Kirjutades järjest mitu ümberkirjutusreeglit ning soovides, et ümberkirjutamine lõppeks antud reegliga, tuleb reegli lõppu lisada võti L (last).&lt;br /&gt;
&lt;br /&gt;
 RewriteRule ^/~priit.+ http://www.priit.ee [R,L]&lt;br /&gt;
 RewriteRule ^/~nea.+   http://www.nea.ee   [R,L]&lt;br /&gt;
 RewriteRule ^/~inna.+  http://www.inna.ee  [R,L]&lt;br /&gt;
 RewriteRule ^/~mart.+  http://www.mart.ee  [R,L]&lt;br /&gt;
&lt;br /&gt;
Kui aga veebiserverit tõstetakse ühest masinast teise, oletame, et uus töötab, kuid kasutajate kodud on vanas, siis lisage uue konfi selline rida&lt;br /&gt;
&lt;br /&gt;
 RewriteRule   ^/~(.+)  http://vana.zoo.edu.ee/~$1  [R,L]&lt;br /&gt;
&lt;br /&gt;
Siin on kasutatud regulaaravaldist koos asendamisega. $1 asendatakse tekstiga, mis klappis kasutatud regulaaravaldises avaldisega (.+). Praktiliselt näiteks&lt;br /&gt;
&lt;br /&gt;
===Lisatingimuste kasutamine===&lt;br /&gt;
&lt;br /&gt;
Direktiiv RewriteRule teostab ümberkirjutusi niikuinii tingimusi kasutades regulaaravaldise abil. Peale selle saab seada direktiiviga RewriteCond lisatingimusi. Näiteks sõltuvalt serveri kellaajast, saadetakse brauserile üks või teine veeb&lt;br /&gt;
&lt;br /&gt;
 RewriteEngine on&lt;br /&gt;
 RewriteCond   %{TIME_HOUR}%{TIME_MIN} &amp;gt;0700&lt;br /&gt;
 RewriteCond   %{TIME_HOUR}%{TIME_MIN} &amp;lt;1900&lt;br /&gt;
 RewriteRule   ^index\.html$             paev.html&lt;br /&gt;
 &lt;br /&gt;
 RewriteRule   ^index\.html$             oo.html&lt;br /&gt;
&lt;br /&gt;
%{TIME_HOUR} asendatakse päringu sooritamise kellaaja tunniväärtusega. Oluline on kirjutada &amp;lt; ja 0700 järjest, kusjuues toimub leksikograafiline stringide, mitte arvude võrdlus.&lt;br /&gt;
&lt;br /&gt;
Kui brauser esitab veebiserverile päringu päeval, siis toimub ümberkirjutus index.html -&amp;gt; paev, kuna esimese direktiivi RewriteRule regulaaravaldis klappis URLiga ning kõik eelnenud lisatingimused olid täidetud. Seejärel klapitatakse teist RewriteRule&#039;i eelmise väljundiga, so paev.html - ei klapi ning midagi ei kirjutata ümber.&lt;br /&gt;
&lt;br /&gt;
Lisatingimusi on sobiv kasutada ka brauserite eristamiseks.&lt;br /&gt;
&lt;br /&gt;
 RewriteCond  %{HTTP_USER_AGENT} Mozilla/4*&lt;br /&gt;
 RewriteRule  ^leht.html$                leht.moz.html [L]&lt;br /&gt;
 &lt;br /&gt;
 RewriteCond  %{HTTP_USER_AGENT} Lynx.*&lt;br /&gt;
 RewriteRule  ^leht.html$                leht.lynx.html [L]&lt;br /&gt;
&lt;br /&gt;
Sõltuvalt päringu tegija aadressist, saab esitada erinevat veebi.&lt;br /&gt;
&lt;br /&gt;
 RewriteCond  %{REMOTE_ADDR}  ^192.168.1.3$ &lt;br /&gt;
 RewriteRule  ^leht.html$      192.168.1.3.html [L]&lt;br /&gt;
&lt;br /&gt;
===Ümberkirjutusalus===&lt;br /&gt;
&lt;br /&gt;
Kui te tegutsete sügavamal URLi-struktuuri sees, kasutage RewriteRule&#039;i juurika ümbernimetamiseks direktiivi RewriteBase. Näiteks kirjutatakse URL http://www.zoo.tartu.ee/~priit/lemmikud/hobused.html ümber URLiks http://www.zoo.tartu.ee/~priit/lemmikud/kabjaksed.html&lt;br /&gt;
&lt;br /&gt;
 RewriteBase   /~priit/lemmikud&lt;br /&gt;
 RewriteRule   ^hobused.html$  kabjaksed.html &lt;br /&gt;
&lt;br /&gt;
===Ümberkirjutustabel===&lt;br /&gt;
&lt;br /&gt;
Esitatud päringu juhuslikult valitud URLile ümbersuunamiseks on sobiv kasutada direktiivi RewriteMap. RewriteMap pakub võimaluse salvestada tekstifaili hulga URLe, mille poole saab ümberkirjutusreeglist pöörduda. Näiteks loome olukorra, kus päringule http://www.zoo.tartu.ee/juhuslik vastatakse juhuslikult valitud veebilehega.&lt;br /&gt;
&lt;br /&gt;
Kirjeldame tabelikirjeldusfailis vl.txt juhuslike veebilehtede nimed&lt;br /&gt;
&lt;br /&gt;
 bash# cat /usr/local/apache/vl.txt&lt;br /&gt;
 veebilehed 1.html|2.html|3.html|4.html|5.html|6.html|7.html&lt;br /&gt;
&lt;br /&gt;
ning lisame veebiserveri konfiguratsioonifaili read&lt;br /&gt;
&lt;br /&gt;
 RewriteMap vl rnd:/usr/local/apache/vl.txt&lt;br /&gt;
 RewriteRule   ^/juhus$   /home/html/juhus/${vl:veebilehed|html.html}&lt;br /&gt;
&lt;br /&gt;
Ümberkirjutustabeli süntaks on selline&lt;br /&gt;
&lt;br /&gt;
RewriteMap tablelinimi tabelitüüp:tabelikirjeldusfail&lt;br /&gt;
&lt;br /&gt;
kus&lt;br /&gt;
&lt;br /&gt;
    * tabelinimi - on kooskõlas ümberkirjutusreeglis kasutatud nimega&lt;br /&gt;
    * tabelitüüp - rnd (random) näitab et&lt;br /&gt;
    * tabelikirjeldusfail - failis kirjeldatakse tabeli sisu, näiteks juhusliku puhul peab eraldama andmed |-ga (loogiline OR) &lt;br /&gt;
&lt;br /&gt;
Ümberkirjutusreegli asenduses kasutatud muutujat ${vl:veebilehed|html.html} väärtustatakse ümberkirjutustabeli vl võtme veeblilehed abil. Kui sellist ümberkirjutustabelit mingil põhjusel pole, on muutuja väärtus html.html.&lt;br /&gt;
&lt;br /&gt;
===Ümberkirjutuslogi===&lt;br /&gt;
&lt;br /&gt;
Ümberkirjutamise tööleseadmisel ning toimuvate ümberkirjutuste jälgimiseks saab kasutada direktiive RewriteLog ja RewriteLogLevel&lt;br /&gt;
&lt;br /&gt;
 RewriteLogLevel 3&lt;br /&gt;
 RewriteLog /var/log/apache/rewrite.log&lt;br /&gt;
&lt;br /&gt;
===Veebiserveri konfiguratsioonifaili lugemine===&lt;br /&gt;
&lt;br /&gt;
Lihtsamatel juhtudel pole see oluline, millises järjekorras veebiserver direktiivides esitatud reegleid kehtestab. Näiteks, kui konfiguratsioonifailis ei sisaldugi Location ja Files sektsioone, kuid soovides kasutada veebiseverit paindlikumalt, tuleb järjekorraga arvestada.&lt;br /&gt;
&lt;br /&gt;
Direktiivide puhul ei hooli Apache suurtest ja väikestest tähtedest, kuid parameetrite puhul on see tihti oluline.&lt;br /&gt;
&lt;br /&gt;
Eeldusel, et te paigutate kogu konfiguratsiooni ühte faili, sisalduvad seal kaks osa&lt;br /&gt;
&lt;br /&gt;
    * põhiosa - kirjeldatakse veebiserveri üldisi omadusi, näiteks millise kasutaja õigustes ta töötab&lt;br /&gt;
    * ressursside määrangud - kehtestatakse reeglid, kuidas veebiserver faile serveerib, näiteks käsitleb .php lõpulisi faile PHP skriptidena &lt;br /&gt;
&lt;br /&gt;
Üldosa direktiivide järjekord pole oluline, kui sama direktiiv on väärtustatud mitu korda, jääb kehtima viimane väärtus.&lt;br /&gt;
&lt;br /&gt;
Kui ressursside omadusi määratakse grupeerimisvahendite abil, siis sõltumata konfigureerimisfailis esinemise järjekorrast, loetakse neid sellises järjekorras: Directory, Files, Location&lt;br /&gt;
&lt;br /&gt;
Directory sees võivad olla kirjeldatud omakorda Files sektsioonid.&lt;br /&gt;
&lt;br /&gt;
Directory sees on lubatud kasutada järgmisi direktiive:&lt;br /&gt;
&lt;br /&gt;
    * DirectoryIndex&lt;br /&gt;
    * Options&lt;br /&gt;
    * Order, Allow, Deny&lt;br /&gt;
    * AllowOverride&lt;br /&gt;
    * AddHandler&lt;br /&gt;
    * AddType &lt;br /&gt;
&lt;br /&gt;
Files sektsioonis on lubatud kasutada praktiliselt samasid direktiive, mida sektsioonis Directory eeldusel, et neid on mõistlik rakendada failidele. Ilmselt ei saa kasutada näiteks direktiivi DirectoryIndex, küll aga näiteks Allow ja Deny.&lt;br /&gt;
&lt;br /&gt;
Location sektsioonis on lubatud kasutada praktiliselt samasid direktiive, mida sektsioonis Directory. Kuna Locationit rakedatakse kõige viimasena, siis ei saa seal näiteks kasutada Options direktiivi, küll aga näiteks Allow ja Deny&#039;id.&lt;br /&gt;
&lt;br /&gt;
===Veebiserveri turvalisus===&lt;br /&gt;
&lt;br /&gt;
Veebiserveri kasutamisel arvestage, et iseenesest on veebiserver programm, mis teeb teie arvuti failid kättesaadavaks HTTP protokolli kasutavaile klientidele, so brauseritele.&lt;br /&gt;
&lt;br /&gt;
Kuigi veebiserver tuleb käivitada juurkasutaja õigustes, toimetab ta edasi konfiguratsioonifailis näidatud kasutajana (User, Group direktiivid).&lt;br /&gt;
&lt;br /&gt;
Siiski, kui te kasutate konfiguratsioonifailis teatud kohtades IO ümbersuunamist, näiteks logimise juures, siis seda teeb Apache juurkasutajana.&lt;br /&gt;
&lt;br /&gt;
Vältimaks ebameeldivaid üllatusi, veenduge, et veebiserveri juurikas ning selle alla jäävad kataloogid on piisavalt kaitstud, so kasutajatel pole neisse kirjutamisõigust. Veebiserver (/usr/local/apache/bin/httpd) ja muud temaga seotud failid, näiteks rotatelogs, kuuluvad juurkasutajale ning on tavakasutajaile ning grupile others vaid käivitatavad. Tavaliselt piisab nende tingimuste täitmiseks anda käsud&lt;br /&gt;
&lt;br /&gt;
 bash# cd /usr/local/apache&lt;br /&gt;
 bash# chown 0 bin conf logs&lt;br /&gt;
 bash# chgrp 0  bin conf logs&lt;br /&gt;
 bash# chmod 755 bin conf logs&lt;br /&gt;
 &lt;br /&gt;
 bash# chown 0 /usr/local/apache/bin/httpd&lt;br /&gt;
 bash# chgrp 0 /usr/local/apache/bin/httpd&lt;br /&gt;
 bash# chmod 511 /usr/local/apache/bin/httpd&lt;br /&gt;
&lt;br /&gt;
Lisaks, mõelge järele, kas te peate kasutajaile lubama käivitada CGI skripte ja andmebaase ning otsustage millistel tingimustel. Samuti kataloogipõhine veebiserveri konfigureerimisvõimalus. Näiteks lubage kasutajatel CGI skripte tarvida ainult kataloogist    ~/public_html/cgi-bin&lt;br /&gt;
&lt;br /&gt;
 &amp;lt;Directory /usr/home/*/public_html/cgi-bin&amp;gt;&lt;br /&gt;
 AddHandler cgi-script .cgi&lt;br /&gt;
 Options +ExecCGI&lt;br /&gt;
 &amp;lt;/Directory&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Heal juhul saab veebiserveri tööleseadmise eel otsustada, milliste omadustega peab ta olema. Reeglina ei soovitata lihtsalt sisse kompileerida toetust, mida praktiliselt ei tarvitata. Näiteks, kui te olete kindel, et pole vajadust server-info ja server-status järele, siis jätke vastavad moodulid välja. Näidake seda Apache ./configure skripti juures vastavate võtmetega --disable-module=info --disable-module=status.&lt;br /&gt;
&lt;br /&gt;
===Virtuaalveebiserverid===&lt;br /&gt;
&lt;br /&gt;
Ühte ja sama Apache veebiserverit saab tööle seada nii, et ta serveerib erinevaid andmeid sõltuvalt sellest, millise nimega tema poole pöörduti. Asjakorraldust nimetatakse virtuaalseteks veebiserveriteks, kuna füüsiliselt on tegu ühe arvutiga, kuid külastajaile jäetakse mulje, et neid on mitu.&lt;br /&gt;
&lt;br /&gt;
Virtuaalseid veebiservereid on kolme sorti:&lt;br /&gt;
&lt;br /&gt;
    * pordipõhised - sõltuvalt külastaja poolt kastatud pordist serveeritakse erinevat veebi&lt;br /&gt;
    * IP-põhised - sõltuvalt külastaja poolt kasutatud IP-aadressist serveeritakse erinevat veebi&lt;br /&gt;
    * nimepõhised - sõltuvalt külastaja poolt kasutatud DNSi nimest serveeritakse erinevat veebi; reeglina vastavad erinevad nimed samale IP-aadressile,&lt;br /&gt;
      so on kirjeldatud CNAMEdena. &lt;br /&gt;
&lt;br /&gt;
Põhimõtteliselt on võimalik kasutada neid virtuaalservereid ka kombineeritult korraga.&lt;br /&gt;
&lt;br /&gt;
Erijuht virtuaalveebi serveerida, on käivitada mitu eksemplari httpd servereid, iga oma konfiguratsiooniga. Kuna see võimalus on suhteliselt ebaefektiivne ning ei paku olulisi täiendavaid võimalusi, siis seda me ei käsitle.&lt;br /&gt;
&lt;br /&gt;
Virtuaalserveri sektsioonis (VirtualHost) saab kasutada paljusid direktiive, mida peaserveri puhul, sh direktiive Options, Alias, Directory, Location, Files. Samuti direktiive, mis reguleerivad SSI, CGI, PHP, Emperli, ümberkirjutamise ja logi kasutamist. Kui direktiivi ei näidata, kasutatakse põhikonfiguratsiooni väärtust, kui seal seda samuti pole, siis vaikeväärtust.&lt;br /&gt;
&lt;br /&gt;
===Pordipõhised virtuaalveebiserverid===&lt;br /&gt;
&lt;br /&gt;
Kasutamaks erinevaid veebiseveri konfiguratsioone sõltuvalt sellest, millisele pordile päring tuli, kasutage direktiive Listen ja VirtualHost. Näiteks teenindab veebiserveri konfiguratsioonifaili põhiosale vastav server kõiki päringuid, va neid, mis on suunatud aadressi 193.40.50.1 (www.zoo.edu.ee) pordile 8080 või pordile 8081. Viimast kahte teenindatakse vastavalt VirtualHosti sektsioonile. Näiteks seame lisaks põhiosale tööle kaks alternatiivset dokumendijuurikat ja logi&lt;br /&gt;
&lt;br /&gt;
...&lt;br /&gt;
 Listen 80&lt;br /&gt;
 Listen 193.40.50.1:8080&lt;br /&gt;
 Listen 193.40.50.1:8081&lt;br /&gt;
 &amp;lt;VirtualHost 193.40.50.1:8080&amp;gt;&lt;br /&gt;
    ServerAdmin mart@zoo.edu.ee&lt;br /&gt;
    DocumentRoot /www/mardizoo&lt;br /&gt;
    ErrorLog /var/logs/mardizoo.error.log&lt;br /&gt;
    CustomLog /var/logs/mardizoo.log common&lt;br /&gt;
  &amp;lt;/VirtualHost&amp;gt;&lt;br /&gt;
 &lt;br /&gt;
 &amp;lt;VirtualHost 193.40.50.1:8081&amp;gt;&lt;br /&gt;
    ServerAdmin priit@zoo.edu.ee&lt;br /&gt;
    DocumentRoot /www/priiduzoo&lt;br /&gt;
    ErrorLog /var/logs/priituzoo.error.log&lt;br /&gt;
    CustomLog /var/logs/priiduzoo.log common&lt;br /&gt;
 &amp;lt;/VirtualHost&amp;gt;&lt;br /&gt;
&lt;br /&gt;
kusjuures peakonfiguratsiooni on lisatud vastavad Listen direktiivid.&lt;br /&gt;
&lt;br /&gt;
Brauseris tuleb päringud esitada vastavalt http://www.zoo.edu.ee:8080 või http://www.zoo.edu.ee:8081.&lt;br /&gt;
&lt;br /&gt;
===IP-põhised virtuaalveebiseverid===&lt;br /&gt;
&lt;br /&gt;
IP-põhised virtuaalveebiserverite kasutamisel on veebiserveril mitu IP aadressi. St masinal on mitu võrgukaarti või on kasutatud IP-aliasingut.&lt;br /&gt;
&lt;br /&gt;
IP-põhiste virtuaalveebiserverite kasutamisel näidake direktiivi VirtualHost juures ära IP aadress, ning samas sektsioonis kirjeldage kõnealuse veebiserveri omadused. Näiteks kui masinal on kaks võrgukaarti IP aadressidega 193.40.10.1 ning 193.40.50.1 kasutage sektsioone&lt;br /&gt;
&lt;br /&gt;
 &amp;lt;VirtualHost 193.40.50.1&amp;gt;&lt;br /&gt;
    ServerName www.zoo.tartu.ee&lt;br /&gt;
    ServerAdmin priit@zoo.tartu.ee&lt;br /&gt;
    DocumentRoot /www/tartuzoo&lt;br /&gt;
    ErrorLog /var/logs/tartuzoo.error.log&lt;br /&gt;
    CustomLog /var/logs/tartuzoo.log common&lt;br /&gt;
 &amp;lt;/VirtualHost&amp;gt;&lt;br /&gt;
 &lt;br /&gt;
 &amp;lt;VirtualHost 193.40.10.1&amp;gt;&lt;br /&gt;
    ServerName www.zoo.edu.ee&lt;br /&gt;
    ServerAdmin mart@zoo.edu.ee&lt;br /&gt;
     DocumentRoot /www/eduzoo&lt;br /&gt;
     ErrorLog /var/logs/eduzoo.error.log&lt;br /&gt;
     CustomLog /var/logs/eduzoo.log common&lt;br /&gt;
 &amp;lt;/VirtualHost&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Peakonfiguratsiooni osa järgi teenindatakse neid päringuid, millel ei leidu sobivat virtuaalserverit. Näiteks kui masinal on veel kolmas võrguseade ning päring siseneb selle aadressile.&lt;br /&gt;
&lt;br /&gt;
Virtuaalserveri direktiivi juurde võib kirjutada ka mitu IP aadressi, mispuhul kasutatakse kõnealust serverit neile kõigile tulnud päringutele vastamisel.&lt;br /&gt;
&lt;br /&gt;
===Nimepõhised virtuaalveebiserverid===&lt;br /&gt;
&lt;br /&gt;
Nimepõhisete virtuaalveebiserverite kasutamine eeldab, et ühele IP aadressile (193.40.50.1) on nimesüsteemis (DNS) seatud näiteks CNAMEiga vastavusse mitu domeenime (www.zoo.tartu.ee, post.zoo.tartu.ee).&lt;br /&gt;
&lt;br /&gt;
Kui soovite kasutada enam kui ühte veebiserverit, siis on soovitav kõik veebiserverid konfigureerida virtuaalseteks. Kusjuures põhiserverile ei vastagi DocumentRoot&#039;i.&lt;br /&gt;
&lt;br /&gt;
Nimepõhiste virtuaalveebiserverite kasutamine deklareeritakse peakonfiguratsiooni osas direktiiviga NameVirtualHost. Direktiivi järel näidatakse IP aadress, millele tulnud päringute teenindamisel kasutatakse sobivat VirtualHosti sektsiooni. Näiteks&lt;br /&gt;
&lt;br /&gt;
 NameVirtualHost 193.40.50.1&lt;br /&gt;
&lt;br /&gt;
puhul kasutatakse aadressile 193.40.50.1 saabunud päringute töötlemiseks sobiva domeeninimega (ServerName) VirtualHost sektsiooni.&lt;br /&gt;
&lt;br /&gt;
Erinevad virtuaalserverid kirjeldatakse direktiiviga VirtualHost, näiteks sarnase sektsiooniga&lt;br /&gt;
&lt;br /&gt;
 &amp;lt;VirtualHost 193.40.50.1&amp;gt;&lt;br /&gt;
     ServerName www.zoo.tartu.ee&lt;br /&gt;
     ServerAdmin priit@zoo.tartu.ee&lt;br /&gt;
     DocumentRoot /www&lt;br /&gt;
     ErrorLog /var/logs/www.error.log&lt;br /&gt;
     CustomLog /var/logs/www.log common&lt;br /&gt;
 &amp;lt;/VirtualHost&amp;gt;&lt;br /&gt;
 &lt;br /&gt;
 &amp;lt;VirtualHost 193.40.50.1&amp;gt;&lt;br /&gt;
     ServerName post.zoo.tartu.ee&lt;br /&gt;
     ServerAdmin post@zoo.tartu.ee&lt;br /&gt;
     DocumentRoot /post&lt;br /&gt;
     ErrorLog /var/logs/post.error.log&lt;br /&gt;
     CustomLog /var/logs/post.log common&lt;br /&gt;
 &amp;lt;/VirtualHost&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Kui serveril on mitu võrguaadressi, siis võib kasutada direktiivi NameVirtualHost mitu korda ning lisada vastavad sektsioonid, kuid lühem on asendada IP aadress täringa (*)&lt;br /&gt;
&lt;br /&gt;
 NameVirtualHost *&lt;br /&gt;
 &lt;br /&gt;
 &amp;lt;VirtualHost *&amp;gt;&lt;br /&gt;
     ServerName www.zoo.tartu.ee&lt;br /&gt;
     ServerAdmin priit@zoo.tartu.ee&lt;br /&gt;
     DocumentRoot /www&lt;br /&gt;
     ErrorLog /var/logs/www.error.log&lt;br /&gt;
     CustomLog /var/logs/www.log common&lt;br /&gt;
 &amp;lt;/VirtualHost&amp;gt;&lt;br /&gt;
 &lt;br /&gt;
 &amp;lt;VirtualHost *&amp;gt;&lt;br /&gt;
     ServerName post.zoo.tartu.ee&lt;br /&gt;
     ServerAdmin post@zoo.tartu.ee&lt;br /&gt;
     DocumentRoot /post&lt;br /&gt;
     ErrorLog /var/logs/post.error.log&lt;br /&gt;
     CustomLog /var/logs/post.log common&lt;br /&gt;
 &amp;lt;/VirtualHost&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Päringuid, mis saabuvad direktiiviga NameVirtualHost näidatud aadressile ei teenindata IP-põhiste sektsioonide ega peaserveri konfiguratsiooni alusel.&lt;br /&gt;
&lt;br /&gt;
===Kasulikud lisamaterjalid===&lt;/div&gt;</summary>
		<author><name>Triinu</name></author>
	</entry>
	<entry>
		<id>https://kuutorvaja.eenet.ee/w/index.php?title=Apache%27i_veebiserver&amp;diff=2843</id>
		<title>Apache&#039;i veebiserver</title>
		<link rel="alternate" type="text/html" href="https://kuutorvaja.eenet.ee/w/index.php?title=Apache%27i_veebiserver&amp;diff=2843"/>
		<updated>2007-01-26T14:10:36Z</updated>

		<summary type="html">&lt;p&gt;Triinu: /* Virtuaalveebiserverid */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;===Veebiserveri konfigureerimine ja käivitamine===&lt;br /&gt;
&lt;br /&gt;
Veebiserveri tööd juhib üks konfiguratsioonifail httpd.conf. Sellesse kirjutatake parameetrid üks reale, kusjuures # märgiga algavaid ridu ignoreeritakse. Ridu saab jätkata sisestades kurakallu (\) viimase sümbolina eelmisele reale, tegelikult eelviimasena, viimane on reavahetus :)&lt;br /&gt;
&lt;br /&gt;
Lihtsal juhul võiks olla konfiguratsioonifail selline&lt;br /&gt;
&lt;br /&gt;
 User nobody&lt;br /&gt;
 Group nobody&lt;br /&gt;
 ServerType standalone&lt;br /&gt;
 ServerName www.zoo.tartu.ee&lt;br /&gt;
 ServerRoot &amp;quot;/usr/local/apache&amp;quot;&lt;br /&gt;
 DocumentRoot &amp;quot;/html&amp;quot;&lt;br /&gt;
 DirectoryIndex index.html&lt;br /&gt;
 ErrorLog /var/log/apache/error.log&lt;br /&gt;
 Listen 80&lt;br /&gt;
 Options None&lt;br /&gt;
 &amp;lt;Directory /&amp;gt;&lt;br /&gt;
 AllowOverride None&lt;br /&gt;
 &amp;lt;/Directory&amp;gt;&lt;br /&gt;
&lt;br /&gt;
kus on kasutatud järgmisi direktiive&lt;br /&gt;
&lt;br /&gt;
    * User - kasutaja, kelle õigustes veebiserver töötab&lt;br /&gt;
    * Group - grupp, kelle õigustes veebiserver töötab&lt;br /&gt;
    * ServerType - serveri tüüp, tavaliselt standalone, so mitte inetd abil käivitatav&lt;br /&gt;
    * ServerName - millise nime server arvab endal olevat&lt;br /&gt;
    * ServerRoot - kataloog, mille all serveri programmid asuvad&lt;br /&gt;
    * DocumentRoot - veebifailid, mida külastajaile serveeritakse&lt;br /&gt;
    * DirectoryIndex - faili nimi, mis brauserisse saadetakse, kui ta küsib kataloogi eeldusel, et sellenimeline fail kataloogis leidub&lt;br /&gt;
    * ErrorLog - fail, kuhu saadetakse veateated; kataloog, kus see fail asub peab olema kindlasti olemas!&lt;br /&gt;
    * Listen - port, millel veebiserver ootab päringuid, kõigil võrguseadmetel&lt;br /&gt;
    * Options - väärtus None tagab, et külastajale näidatakse vaid neid veebilehti, mida ta nimeliselt küsib. &lt;br /&gt;
&lt;br /&gt;
Reeglina on veebiserverina töötaval arvutil nö tavaline nimi, näiteks kalake.zoo.tartu.ee ning nimeserveris on talle defineeritud lisaks ka mõned hüüdnimed (CNAMEga). Tavaliselt kasutatakse veebiserveri nime alguses kombinatsiooni www, kokku saab antud juhul www.zoo.tartu.ee, kuid veebiserveri nimi ei pea sugugi algama www-ga olles näiteks see sama kalake.zoo.tartu.ee.&lt;br /&gt;
&lt;br /&gt;
Konfiguratsioonifailis kasutatud kataloogid peavad süsteemis leiduma, toodud näites peavad nad kuuluma lähtudes turvakaalutlustest juurkasutajale; samuti nendest kataloogidest ülevalpool asuvad kataloogid.&lt;br /&gt;
&lt;br /&gt;
Reeglina on süsteemis vaikimisi olemas mitteprivilegeeritud kasutaja nobody grupiga nobody. Võib kasutada seda või luua spetsiaalne kasutaja, näiteks apache grupiga veeb. Veebiserveri mittekäivitumise põhjuseks on tihtipeale vastavate kasutajate puudumine süsteemis.&lt;br /&gt;
&lt;br /&gt;
Näidates võrguseadme nime, vastatakse ainult sellelt seadmelt tulevaile päringutele, näiteks &#039;Listen 193.40.10.1 80&#039;.&lt;br /&gt;
&lt;br /&gt;
===Sektsioon===&lt;br /&gt;
&lt;br /&gt;
 &amp;lt;Directory /&amp;gt;&lt;br /&gt;
 AllowOverride None&lt;br /&gt;
 &amp;lt;/Directory&amp;gt;&lt;br /&gt;
&lt;br /&gt;
tähendab, et kataloogides pole täiendavate vahenditega õigust veebiserveri konfiguratsiooni täpsustada.&lt;br /&gt;
&lt;br /&gt;
Kuigi teatud parameetrite järjekord konfiguratsioonifailis ei ole tähtis, jääb kehtima parameetrile viimasena omistatud väärtus.&lt;br /&gt;
Käivitamine&lt;br /&gt;
&lt;br /&gt;
Veebiserver käivitatakse ja peatatakse käsuga apachectl&lt;br /&gt;
&lt;br /&gt;
 bash# apachectl start&lt;br /&gt;
&lt;br /&gt;
Peatamine toimub käsuga stop&lt;br /&gt;
&lt;br /&gt;
 bash# apachectl stop&lt;br /&gt;
&lt;br /&gt;
Peale konfiguratsioonifaili muutmist kehtestuvad muutused serveri taaskäivitamisel soovitavalt käsuga graceful, või restart&lt;br /&gt;
&lt;br /&gt;
 bash# apachectl graceful&lt;br /&gt;
&lt;br /&gt;
Veebiserver tuleb käivitada juurkasutajaõigustes, kuid ta töötab konfiguratsioonifailis näidatud User ja Group kasutajana. See tähendab, et failisüsteemi osad, mida soovitakse veebi näidata peavad olema vastavatele UNIXi kasutajatele nähtavad. Tavaliselt on nende failide kasutajagrupile other antud lugemisõigus.&lt;br /&gt;
&lt;br /&gt;
Töötavast veebiserverist annab tunnistust see, kui süsteemi protsessitabelis on httpd deemoni nimi, isegi mitu&lt;br /&gt;
&lt;br /&gt;
 bash# ps auxw | grep httpd&lt;br /&gt;
 root   30692  0.0  5.4  4236 3288  ??  Ss    4:39PM   0:00.16 /usr/local/apache/bin/httpd&lt;br /&gt;
 nobody 30840  0.0  5.5  4272 3324  ??  I     5:52PM   0:00.00 /usr/local/apache/bin/httpd&lt;br /&gt;
 nobody 30841  0.0  5.5  4272 3324  ??  I     5:52PM   0:00.00 /usr/local/apache/bin/httpd&lt;br /&gt;
 nobody 30842  0.0  5.5  4272 3324  ??  I     5:52PM   0:00.00 /usr/local/apache/bin/httpd&lt;br /&gt;
 nobody 30843  0.0  5.4  4248 3296  ??  I     5:52PM   0:00.00 /usr/local/apache/bin/httpd&lt;br /&gt;
 nobody 30844  0.0  5.4  4248 3296  ??  I     5:52PM   0:00.00 /usr/local/apache/bin/httpd&lt;br /&gt;
 nobody 30845  0.0  5.4  4256 3300  ??  I     5:52PM   0:00.00 /usr/local/apache/bin/httpd&lt;br /&gt;
&lt;br /&gt;
Aga veel parem kinnitus on, kui olemaks näitega kooskõlas päring http://www.zoo.edu.ee näitab veebilehte, so faili /html/index.html. Samuti saab antud näite rakendamisel näha kasutajate kodulehti eeldusel, et nad asuvad kataloogide ~/public_html all.&lt;br /&gt;
&lt;br /&gt;
Kui veebiserveri käivitamisel ilmneb raskusi, siis tasub uurida vealogi (/var/log/apache/error.log) sisu.&lt;br /&gt;
Automaatne käivitamine&lt;br /&gt;
&lt;br /&gt;
===Veebiressursside kasutusõigus===&lt;br /&gt;
&lt;br /&gt;
Veebiserveri konfigureerimisel on väga oluline näidata, mida vastuseks külastaja päringule tohib teha või saata või kas üldse külastajat teenindada.&lt;br /&gt;
&lt;br /&gt;
===Direktiiv Option===&lt;br /&gt;
&lt;br /&gt;
Direktiivi Options abil saab määratleda, mida kataloogis leiduvate failidega lubatakse teha. Näiteks määrates minimaalsed õigused parameetriga None, saab kataloogis sisalduvate failide poole pöörduda vaid nimeliselt; failide nimekirja ei näidata.&lt;br /&gt;
&lt;br /&gt;
 Options None&lt;br /&gt;
&lt;br /&gt;
===Muud võimalused:===&lt;br /&gt;
&lt;br /&gt;
    * FollowSymLinks - kui brauser esitatud päringus on failinimi viide, siis seda järgitakse vaatamata, kas viidatav fail kuulub samale kasutajale kui&lt;br /&gt;
      viide&lt;br /&gt;
    * SymLinksIfOwnerMatch - kui brauser esitatud päringus on failinimi viide, siis seda järgitakse juhul, kas viidatav fail kuulub samale kasutajale &lt;br /&gt;
      kellele viide&lt;br /&gt;
    * Indexes - näidatakse serveri kataloogi failide nimekirja kui DirectoryIndexis näidatud faile ei leitud&lt;br /&gt;
    * ExecCGI - CGI skriptide kasutamiseks&lt;br /&gt;
    * Includes - SSI failide kasutamiseks&lt;br /&gt;
    * IncludesNOEXEC - SSI failide kasutamiseks, va #exec ja CGI skriptide #include&lt;br /&gt;
    * All - kõik eelnimetatu on lubatud &lt;br /&gt;
&lt;br /&gt;
Korraga võib määratleda ka mitu parameetrit, eraldades nad üksteisest tühikuga.&lt;br /&gt;
&lt;br /&gt;
Kui konfiguratsioonifailis kasutada mitmel Options direktiivi, jääb kehtima viimane. Lisades parameetri algusesse + või - märgi, lisatakse või eemaldatakse vastav toime. Näiteks kasutades direktiive&lt;br /&gt;
&lt;br /&gt;
 Options Indexes Includes FollowSymLinks&lt;br /&gt;
 Options -FollowSymLinks&lt;br /&gt;
&lt;br /&gt;
on toime samaväärne avaldisega&lt;br /&gt;
&lt;br /&gt;
 Options Indexes Includes&lt;br /&gt;
&lt;br /&gt;
Direktiivi Options vaikeväärtus on All.&lt;br /&gt;
&lt;br /&gt;
===Direktiivid Allow, Deny ja Order===&lt;br /&gt;
&lt;br /&gt;
Direktiividega Allow, Deny ning Order abil saab kehtestada, millistelt domeenidelt tulevaid päringuid teenidatakse. Orderi abil seatakse, millises järjekorras kontroll toimub, kusjuures rakendatakse viimast reeglit, millega külastaja domeeninimi klapib. Kui ükski reegel ei klapi, toimitakse vaikimisi nagu viimane Orderi parameeter näitab. Näiteks sellise sektsiooni puhul&lt;br /&gt;
&lt;br /&gt;
 Order Deny,Allow&lt;br /&gt;
 Deny from all&lt;br /&gt;
 Allow from zoo.tartu.ee&lt;br /&gt;
&lt;br /&gt;
Päringut domeenist zoo.tartu.ee teenindatakse, esimene reegel (Deny) keelab kõik, kuid teine (Allow) lubab domeeni zoo.tartu.ee. Kui Order oleks vastupidi, siis lubaks esimene reegel (Allow) zoo.tartu.ee, kuid kehtima jääks viimane reegel (Deny). Reeglite järjekord failis ei loe, kuna selle määrab Order.&lt;br /&gt;
&lt;br /&gt;
Järgmises näites on lubatud päringud vaid tartu.ee domeenist, va alamdomeen zoo.tartu.ee&lt;br /&gt;
&lt;br /&gt;
 Order Allow,Deny&lt;br /&gt;
 Allow from tartu.ee&lt;br /&gt;
 Deny from zoo.tartu.ee&lt;br /&gt;
&lt;br /&gt;
Tõepoolest, päringut foo.tartu.ee domeenist teenindatakse kuna ta klapib esimese (Allow) reegliga, mis lubab ning teisega, mis keelab mitte. Päringuid muudest domeenidest keelatakse, kuna nad ei klapi kummagi reegliga ning vaikimisi rakendatakse viimast Orderi parameetrit - Deny.&lt;br /&gt;
&lt;br /&gt;
Order, Deny ja Allow direktiive saab kasutada vaid direktiivi Directory sees ning Deny ja Allow tuleb eraldada ainult täpselt ühe komaga!&lt;br /&gt;
&lt;br /&gt;
===Veebiressursside grupeerimisvahendid===&lt;br /&gt;
&lt;br /&gt;
Veebiserveri kasutusõigust ning teisi omadusi reguleerivaid parameetreid saab grupeerida järgmiste direktiividega&lt;br /&gt;
&lt;br /&gt;
    * Directory - kataloogis ning selle alla jäävate alamkataloogides sisalduvate failide grupeerimiseks&lt;br /&gt;
    * Files - faili nimede järgi failide grupeerimiseks&lt;br /&gt;
    * Location - URLi ning selle alla jäävate URLide grupeerimiseks &lt;br /&gt;
&lt;br /&gt;
Sellistele gruppidele saab rakendada korraga samu määratlusi, näiteks Option parameetriga.&lt;br /&gt;
&lt;br /&gt;
===Directory direktiiv===&lt;br /&gt;
&lt;br /&gt;
Directory abil saab määrata näidatud kataloogi alla jäävatele failidele ühesuguseid omadusi. Näiteks kehtestame, et kataloogi /html/veeb/kalamaja alla jäävates kataloogides käsitletakse DirectoryIndexina faile index.html ja index.htm&lt;br /&gt;
&lt;br /&gt;
 &amp;lt;Directory /html/veeb/kalamaja&amp;gt;&lt;br /&gt;
 DirectoryIndex index.html index.htm&lt;br /&gt;
 &amp;lt;/Directory&amp;gt;&lt;br /&gt;
&lt;br /&gt;
===Files direktiiv===&lt;br /&gt;
&lt;br /&gt;
Sarnaselt Directory&#039;le saab kehtestada näidatud regulaaravaldisega klappivate failinimedega failidele ühesuguseid omadusi. Näiteks kehtestame, et failides, mille nimi algab tähtedega &amp;quot;e_&amp;quot; ja lõpeb .html-ga, tohivad sisaldada Embperli konstruktsioone&lt;br /&gt;
&lt;br /&gt;
 &amp;lt;Files ~ &amp;quot;^e_.*\.html$&amp;quot;&amp;gt;&lt;br /&gt;
 Options +ExecCGI&lt;br /&gt;
 SetHandler perl-script&lt;br /&gt;
 PerlHandler HTML::Embperl&lt;br /&gt;
 &amp;lt;/Files&amp;gt;&lt;br /&gt;
&lt;br /&gt;
===Location direktiiv===&lt;br /&gt;
&lt;br /&gt;
Sarnaselt Directory direktiivile saab Locationiga kehtestada osale veebikohale samasuguseid omadusi. Location mõjub mitte kataloogistruktuuri, vaid URLi mõttes hulgale elementidele. Näiteks kehtestame, et URL&#039;ist http://kalake.zoo.edu.ee/hobused edasi tohib näha kataloogide nimekirja&lt;br /&gt;
&lt;br /&gt;
 &amp;lt;Location /hobused&amp;gt;&lt;br /&gt;
 Options Indexes&lt;br /&gt;
 &amp;lt;/Location&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Tavaliselt piisab Directory kasutamisest, kuid kuna veebiserveri kataloogi-ja URLihierarhia ei pruugi alati kokku langeda, siis on sellest vahel abi.&lt;br /&gt;
&lt;br /&gt;
===Kataloogipõhine veebiserveri konfigureerimine===&lt;br /&gt;
&lt;br /&gt;
Veebiserveri põhikonfiguratsioonifailis näidatud väärtusi saab iga kataloogi jaoks täpsustavalt määrata kataloogis sisalduva konfiguratsiooni .htaccess faili abil. Selle faili nimi on määratud põhikonfiguratsioonifailis direktiiviga AccessFileName, mis peab esinema Directory sees. Faili süntaks on sama, mis põhikonfiguratsioonifailil. Seda, milliseid omadusi on ludatud .htaccess failiga täpsustada, näitab põhikonfiguratsioonifailis direktiiv AllowOverride; järgmistele parameeritele vastab voli muuta toodud parameetreid&lt;br /&gt;
&lt;br /&gt;
    * AuthConfig - AuthGroupFile, AuthName, AuthType, AuthUserFile, Require jne&lt;br /&gt;
    * FileInfo - AddEncoding, AddLanguage, AddType, DefaultType, ErrorDocument jne&lt;br /&gt;
    * Indexes - DirectoryIndex, AddDescription, AddIcon, AddIconByEncoding, AddIconByType, DefaultIcon, DirectoryIndex, FancyIndexing, HeaderName,&lt;br /&gt;
      IndexIgnore, IndexOptions, ReadmeName jne&lt;br /&gt;
    * Limit - Order, Allow, Deny&lt;br /&gt;
    * Options - Options, XBitHack&lt;br /&gt;
    * None - mitte midagi&lt;br /&gt;
    * All - kõik nimetatud &lt;br /&gt;
&lt;br /&gt;
Vaikimisi toimib parameeter All. Kui ei soovita lasta kasutajatel veebiserverit konfigureerida, siis kasutage peale veebiserveri põhiosa direktiivi&lt;br /&gt;
&lt;br /&gt;
 AllowOverride None&lt;br /&gt;
&lt;br /&gt;
.htaccess failis tohib kasutada direktiivi Files, aga ei saa kasutada Diectory või Location.&lt;br /&gt;
&lt;br /&gt;
Tavaliselt on ohutu ning kasutajaile piisav&lt;br /&gt;
&lt;br /&gt;
 AllowOverride Indexes AuthConfig&lt;br /&gt;
&lt;br /&gt;
===Alias===&lt;br /&gt;
&lt;br /&gt;
Direktiiv Alias võimaldab muuta veebi failile kataloogistruktuuri vastavust URLi struktuurile. Näiteks olgu kataloogis /html/veeb/hobused/2000/tyrinaitus/ehola_talu failid ning soovime neile ligi pääseda URLiga http://www.zoo.tartu.ee/ehola_talu. Kasutame sellist Aliast&lt;br /&gt;
&lt;br /&gt;
 Alias /ehola_talu/ /html/veeb/hobused/2000/tyrinaitus/ehola_talu/&lt;br /&gt;
&lt;br /&gt;
Antud juhul laheneb päring http://www.zoo.tartu.ee/ehola_talu/, kuid mitte http://www.zoo.tartu.ee/ehola_talu.&lt;br /&gt;
&lt;br /&gt;
Lisaks saab Aliasega kaasata veebi faile ning katalooge, mis asuvad failisüsteemi mõttes väljaspool DocumentRootu.&lt;br /&gt;
&lt;br /&gt;
 Alias /valdek/ /html/valdek/veeb/&lt;br /&gt;
&lt;br /&gt;
Aliase süntaks on järgmine&lt;br /&gt;
&lt;br /&gt;
 Alias URLi-tee kataloogi-tee&lt;br /&gt;
&lt;br /&gt;
kus&lt;br /&gt;
&lt;br /&gt;
    * URLi-tee on osa URList, mis jääb peale serverinimi osa, näiteks http://www.zoo.tartu.ee/ehola_talu/ puhul /ehola_talu/&lt;br /&gt;
    * kataloogi-tee on vastava kataloogi nimi &lt;br /&gt;
&lt;br /&gt;
Aliasi saab kasutada peakonfiguratsioonifailis või võrdväärsetes kohtades, näiteks VirtualHost sektsioonis. Aliaste kasutamisel tuleb tavaliselt kasutada kataloogi tee&#039;le vastavaid Directory direktiive, muutmaks sobivaks veebiosa kasutusõigused. Aliased loetakse läbi enne Directory sektsioone.&lt;br /&gt;
&lt;br /&gt;
Aliase kasutamisel tuleb tähele panna, et URLi tee asendatakse igal juhul kataloogiteega. Kas sel juhul, kui päring on pikem, kooskõlas kasutatud näitega päringu http://www.zoo.tartu.ee/ehola_talu/ratsahobused/piiker.html puhul esitatakse fail /html/veeb/hobused/2000/tyrinaitus/ehola_talu/ratsahobused/piiker.html.&lt;br /&gt;
&lt;br /&gt;
Soovides teha paindlikumaid nö ümberkirjutusi, kasutage mod_rewrite&#039;i võimalusi.&lt;br /&gt;
&lt;br /&gt;
===CGI===&lt;br /&gt;
&lt;br /&gt;
CGI kasutamiseks lisage konfiguratsioonifaili rida&lt;br /&gt;
&lt;br /&gt;
 AddHandler cgi-script .cgi .pl&lt;br /&gt;
&lt;br /&gt;
Tulemusena püüab veebiserver käivitada kõiki serveeritavaid .cgi ja .pl lõpuliste nimedega faile, eeldusel, et failile rakendub Optioni parameeter ExecCGI. Käivitamisel tekkiv programmiväljund saadetakse brauserisse, kusjuures see peab algama tuntud Content-type&#039;iga, näiteks text/html. Seda võib teha näiteks Directory abil; kehtestame, et kõikjal veebi faile sisaldavas kataloogis /html/veeb/suhtleja ja selle all asuvad .cgi ja .pl lõpuliste nimedega failid on käivitatavad&lt;br /&gt;
&lt;br /&gt;
 &amp;lt;Directory /suhtleja&amp;gt;&lt;br /&gt;
 Options ExecCGI&lt;br /&gt;
 &amp;lt;/Directory&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Soovides näidata, et vaatamata failinimele tuleb käsitleda faili CGI skriptina, kasutage ScriptAlias direktiivi. Tüüpiliselt määratletakse URLi http://kalake.zoo.tartu.ee/cgi-bin/&#039;le vastavad failid skriptideks&lt;br /&gt;
&lt;br /&gt;
 ScriptAlias /cgi-bin/ /html/veeb/cgi-bin/&lt;br /&gt;
&lt;br /&gt;
Tulemusena, näiteks päringu http://kalake.zoo.tartu.ee/cgi-bin/kasutajatenimikiri.sh puhul käivitatakse fail /html/veeb/cgi-bin/kasutajatenimekiri.sh.&lt;br /&gt;
&lt;br /&gt;
===SSI===&lt;br /&gt;
&lt;br /&gt;
SSI (Server Sides Includes) tehnika võimaldab sisestada brauseri päringus nõutud faili koosseisu muude failide sisu.&lt;br /&gt;
&lt;br /&gt;
SSI kasutamiseks lisage konfiguratsioonifaili rida&lt;br /&gt;
&lt;br /&gt;
 AddType text/html .shtml&lt;br /&gt;
 AddHandler server-parsed .shtml&lt;br /&gt;
&lt;br /&gt;
ning näidake näiteks direktiivide Directory ja Options parameetri Includes abil, milliseid faile tohib server käsitleda SSIdena. Näiteks kehtestame, et kataloogi /html/veeb/uudised all kasutatakse SSId&lt;br /&gt;
&lt;br /&gt;
 &amp;lt;Directory /html/veeb/uudised&amp;lt;&amp;gt;&lt;br /&gt;
 Options IncludesNOEXEC&lt;br /&gt;
 &amp;lt;/Directory&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Tulemusena saab failides, mille nime lõpus on .shtml, kasutada SSI konstruktsioone, va #exec ja CGI skriptide #include.&lt;br /&gt;
&lt;br /&gt;
===Embperl===&lt;br /&gt;
&lt;br /&gt;
Embperl on tehnika, mis võimaldab sisestada HTML koodi sisse Perli konstruktsioone. Selle võimaluse kasutamiseks lisage konfiguratsioonifaili&lt;br /&gt;
&lt;br /&gt;
 &amp;lt;Files ~ &amp;quot;\.html$&amp;quot;&amp;gt;&lt;br /&gt;
 Options ExecCGI&lt;br /&gt;
 SetHandler perl-script&lt;br /&gt;
 PerlHandler HTML::Embperl&lt;br /&gt;
 &amp;lt;/Files&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Tulmusena lahendab veebiserver failides, mille nime lõpetab .html sisalduva Perli koodi.&lt;br /&gt;
&lt;br /&gt;
Muuseas, Embperli rakendamisel on veebiserver ka tavalise HTML süntaksi osas oluliselt rangem. Tüüpiliselt ei meeldi talle [# jne järgnevused, mida kasutatakse Embperli skriptide tähistamiseks. Et neid sümboleid siiski kasutada saada, esitage neid a la &amp;amp;#kood;, näiteks &amp;amp;#60;.&lt;br /&gt;
&lt;br /&gt;
===PHP===&lt;br /&gt;
&lt;br /&gt;
PHP on tehnika, mis võimaldab lisada HTML koodi sisse PHP keele konstruktsioone. Selle võimaluse kasutamiseks lisage konfiguratsioonifaili&lt;br /&gt;
&lt;br /&gt;
 AddType application/x-httpd-php .php&lt;br /&gt;
&lt;br /&gt;
Veebiserverisse konfigureeritud PHP omadusi saab näha PHP skriptiga&lt;br /&gt;
&lt;br /&gt;
 &amp;lt;?&lt;br /&gt;
 phpinfo();&lt;br /&gt;
 ?&amp;gt;&lt;br /&gt;
&lt;br /&gt;
===Serveri kasutajate kodulehed===&lt;br /&gt;
&lt;br /&gt;
Vaikimisi eeldab veebiserver, et näiteks URLile http://www.zoo.tartu.ee/~priit vastab süsteemi kasutaja priit kodukataloogis olev kataloog public_html. Selle kataloogi nime määrab direktiiv UserDir.&lt;br /&gt;
&lt;br /&gt;
===Veebi kaitsmine parooliga===&lt;br /&gt;
&lt;br /&gt;
Apache pakub vahendid veebistruktuuri kaitsmiseks parooliga. Konfiguratsioonifailis näidatakse ära, millist ressurssi kaitsta ning millist autentimissüsteemi kasutada.&lt;br /&gt;
&lt;br /&gt;
Kõige lihtsamal juhul tuleb programmiga htpasswd genereerida lubatud külastajate paroolifail, milles on kirjas kasutajanimed ning vastavad paroolid. See fail on reeglina erinev süsteemi paroolifailist, kus veebiserver töötab. Kui külastaja püüab siseneda kaitstud veebi, avaneb dialoog ning küsitakse tema kasutajanime ning parooli. Sobiva paari sisestamisel lubatakse külastaja veebile ligi, kusjuures kõnealust veebi saab kasutada kuni brauseri sulgemiseni.&lt;br /&gt;
&lt;br /&gt;
Näiteks kaitseme kataloogistruktuuri /html/salajane kirjeldatud paroolikontrolliga&lt;br /&gt;
&lt;br /&gt;
 &amp;lt;Directory /html/salajane&amp;gt;&lt;br /&gt;
 AuthUserFile /usr/local/apache/conf/salajane.paroolifail&lt;br /&gt;
 AuthType Basic&lt;br /&gt;
 AuthName Salajane&lt;br /&gt;
 require valid-user&lt;br /&gt;
 &amp;lt;/Directory&amp;gt;&lt;br /&gt;
&lt;br /&gt;
kus on kasutatud direktiive:&lt;br /&gt;
&lt;br /&gt;
    * AuthUserFile - paroolifailinimi, /usr/local/apache/conf/salajane.paroolifail&lt;br /&gt;
    * AuthType - millist tüüpi autentimisega on tegemist, antud juhul Basic&lt;br /&gt;
    * AuthName - parameetri väärtust näidatakse aknas, kuhu kasutaja sisestab oma veebi kasutajanime ja parooli; sama veebi piires saab sama kasutajanimega&lt;br /&gt;
      seostada erinevaid paroole, mistõttu peab külastaja saama teada, millist parooli konkreetsel juhul tarvitada&lt;br /&gt;
    * require valid-user - sellele ressursile lastakse ligi vaid peale edukat autentimist &lt;br /&gt;
&lt;br /&gt;
Sobiv paroolifail moodustatakse programmiga htpasswd&lt;br /&gt;
&lt;br /&gt;
 bash$ htpasswd -b -c -m salajane.paroolifail priit priiduparool&lt;br /&gt;
&lt;br /&gt;
kus&lt;br /&gt;
&lt;br /&gt;
   1. -b kasutaja parooliks loetakse käsurea viimane sõna (priiduparool)&lt;br /&gt;
   2. -c seda võtit tuleb kasutada vaid siis, kui paroolifaili veel ei eksisteeri; edaspidi peab selle võtme ära jätma, sest muidu kustutatakse olemasoleva&lt;br /&gt;
      paroolifaili sisu&lt;br /&gt;
   3. -m kasutada MD5 krüptimist; jättes selle võtme kirjutamata tekitatakse CRYPT proolid&lt;br /&gt;
   4. järgnevad paroolifaili nimi (salajane.paroolifail) ja kasutajanimi (priit) &lt;br /&gt;
&lt;br /&gt;
Tundub, et peale Directory, saab autentimist kasutada ka Location sektsioonis, mis on veebi suhtes veel asjakohasem.&lt;br /&gt;
&lt;br /&gt;
Paroolifail peab olema loetav sellele kasutajale, kelle õigustes veebiserver töötab (näiteks nobody) ning soovitavalt mitte olema veebiga samas kataloogistruktuuris.&lt;br /&gt;
&lt;br /&gt;
===Logi===&lt;br /&gt;
&lt;br /&gt;
Apache veebiserveriga saab logida tekstifaili erinevatel tingimustel toimunud päringuid ning neid logifaile automaatselt roteerida. Logida saab paraleelselt ka näidatud tingimustele erinevates formaatides erinevatesse failidesse.&lt;br /&gt;
&lt;br /&gt;
Direktiiviga LogFormat kirjeldatakse mida logitakse. Tüüpiliselt defineeritakse formaat nimega tavaline&lt;br /&gt;
&lt;br /&gt;
 LogFormat &amp;quot;%h %l %u %t \&amp;quot;%r\&amp;quot; %&amp;gt;s %b&amp;quot; tavaline&lt;br /&gt;
&lt;br /&gt;
kus&lt;br /&gt;
&lt;br /&gt;
    * %h - maisinanimi, kust päring esitati&lt;br /&gt;
    * %l - kasutajanimi, kes päringu esitas eeldusel, et IdentityCheck tomib; tavaliselt see väli jääb tühjaks, kuna IdentityCheck&#039;i kasutamine võtab&lt;br /&gt;
      tublisti veebi kiirust alla&lt;br /&gt;
    * %u - kui veebiserveri ressurss nõudis autentimist, siis kasutatud kasutajanimi&lt;br /&gt;
    * %t - päringu esitamise aeg&lt;br /&gt;
    * \&amp;quot;%r\&amp;quot; - jutumärkides esitatud päringu esimene rida&lt;br /&gt;
    * %&amp;gt;s - päringule vastuse olek (ingl. k. status)&lt;br /&gt;
    * %b - päringu vastuse maht baitides&lt;br /&gt;
    * tavaline - logiformaadi nimi &lt;br /&gt;
&lt;br /&gt;
Logimine ise toimub direktiiviga CustomLog, näiteks logime, kasutades logiformaati tavaline, faili /var/log/apache/tavaline.log&lt;br /&gt;
&lt;br /&gt;
 CustomLog /var/log/apache/tavaline.log tavaline&lt;br /&gt;
&lt;br /&gt;
Soovides logifaili automaatselt roteerida, kasutage veebiserveriga kaasas olevat programmi rotatelogs. Näiteks moodustame iga nädal uue logi&lt;br /&gt;
&lt;br /&gt;
 CustomLog &amp;quot;|/usr/local/apache/bin/rotatelogs /var/log/apache/tavaline.log 604800&amp;quot; common&lt;br /&gt;
&lt;br /&gt;
Logi faili nimi moodustatakse lisades failinime lõppu aja sekundites, mis on möödunud UNIXi ajastu algusest, so 1970. 1. jaanuar kell 00:00 hommikul.&lt;br /&gt;
&lt;br /&gt;
===Vealogi===&lt;br /&gt;
&lt;br /&gt;
Vealogisse salvestatakse serveri töös toimunud vead, sh näiteks päringud puuduvatele failidele. Logitaset saab reguleerida direktiiviga LogLevel, soovitatakse taset warn&lt;br /&gt;
&lt;br /&gt;
 LogLevel warn&lt;br /&gt;
&lt;br /&gt;
Direktiiviga ErrorLog näidatakse, kuhu logi salvestada&lt;br /&gt;
&lt;br /&gt;
 ErrorLog /var/log/apache/error.log&lt;br /&gt;
&lt;br /&gt;
Logianalüsaatorid&lt;br /&gt;
&lt;br /&gt;
Apache veebiserveri logi analüüsiks sobib kasutada näiteks programmi Webalizer.&lt;br /&gt;
&lt;br /&gt;
===Veebiserveri staatus ja info===&lt;br /&gt;
&lt;br /&gt;
Eeldusel, et veebiserverisse on sissekompilleeritud vastavad moodulid võtmetega --enable-module=status ja --enable-moudule=info, saab näha veebiserveri konfiguratsiooni (info) ning parasjagu olevat seisu (status).&lt;br /&gt;
&lt;br /&gt;
Näidates konfiguratsioonifailis direktiivi ExtendedStatus parameetriks &amp;quot;On&amp;quot;, esitatakse staatus põhjalikumalt.&lt;br /&gt;
&lt;br /&gt;
Nende veebiserveri omaduste nägemiseks peab sisalduma konfiguratsioonifailis kaks sektsiooni&lt;br /&gt;
&lt;br /&gt;
URLi http://www.zoo.tartu.ee/status-info jaoks&lt;br /&gt;
&lt;br /&gt;
 &amp;lt;Location /server-info&amp;gt;&lt;br /&gt;
     SetHandler server-info&lt;br /&gt;
     Order deny,allow&lt;br /&gt;
     Deny from all&lt;br /&gt;
     Allow from .zoo.tartu.ee&lt;br /&gt;
 &amp;lt;/Location&amp;gt;&lt;br /&gt;
&lt;br /&gt;
URLi http://www.zoo.tartu.ee/server-info jaoks&lt;br /&gt;
&lt;br /&gt;
 &amp;lt;Location /server-status&amp;gt;&lt;br /&gt;
     SetHandler server-status&lt;br /&gt;
     Order deny,allow&lt;br /&gt;
     Deny from all&lt;br /&gt;
     Allow from .zoo.tartu.ee&lt;br /&gt;
 &amp;lt;/Location&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Mõlemas sektsioonis on kasutatud Deny ja Allow direktiive, piiramaks nende URLide külastamise õigust. Kuigi sealt midagi väga salajast ei paista, on külastama lubatud vaid zoo.tart.ee domeeni masinastest.&lt;br /&gt;
Veebi-indekseerijad&lt;br /&gt;
&lt;br /&gt;
Apache veebiserver ei sisalda indekseerimisvahendeid, so võimalusi luua serveeritavale veebile otsingumootorit. Küll aga sobib kasutada mõnda olemasolevat veebiindeksaatorit, näiteks Glimpse või HtDig.&lt;br /&gt;
&lt;br /&gt;
Hoopis teine probleem on kuidas kontrollida, mida tohivad teha teised otsingumootorid (tuntud kui robotid või nuhid) teie veebi külastades. Tüüpiliselt tuleb neid kontrollida, kuna nad võivad täita avalikke andmebaase kiiresti vananeva infoga või ebasoovitavalt teie serverit koormata.&lt;br /&gt;
&lt;br /&gt;
===URLi ümberkirjutamine===&lt;br /&gt;
&lt;br /&gt;
Ümberkirjutamise kasutamiseks on vaja mod_rewrite&#039;i toetus serverisse kompilleerida võtmega --enable-module=rewrite.&lt;br /&gt;
&lt;br /&gt;
See tehnika võimaldab suunata serverisse tulevad päringud ümber, jäädes sama serveri piiridesse või välja. Ümbersuunamisi saab konfigureerida peakonfiguratsioonifailist või .htaccess failist.&lt;br /&gt;
&lt;br /&gt;
Ümbersuunamisel saab kasutada tingimusi või teha seda juhuslikult.&lt;br /&gt;
&lt;br /&gt;
Tõenäoliselt on võimalik järgnevalt näidetena toodud tegevusi korraldada ka muude vahenditega, URLi ümberkirjutamine mod_rewrite&#039;ga on selleks üks käepärane vahend.&lt;br /&gt;
&lt;br /&gt;
Ümberkirjutuste tegemiseks tuleb esmalt aktiviseerida ümberkirjutusmehhanism&lt;br /&gt;
&lt;br /&gt;
 RewriteEngine On&lt;br /&gt;
&lt;br /&gt;
Ümberkirjutust ennast teostab direktiiv RewriteRule. Näiteks suuname kõik veebiserverisse kasutajale priit tulevad päringud (http://www.zoo.tartu.ee/~priit) aadressile http://www.priit.ee&lt;br /&gt;
&lt;br /&gt;
 RewriteRule ^/~priit.+ http://www.priit.ee &lt;br /&gt;
&lt;br /&gt;
Direktiivi RewriteRule esimene argument on regulaaravaldis (^/~priit.+) ning kui sellega päring klapib, siis suunatakse brauser teise parameetriga näidatud URLile (http://www.priit.ee). Kasutaja brauseri Location real kirjutatakse URL paratamatult ümber.&lt;br /&gt;
&lt;br /&gt;
Direktiivi süntaks on järmine&lt;br /&gt;
&lt;br /&gt;
 RewriteRule regulaaravaldis asendus [võtmed]&lt;br /&gt;
&lt;br /&gt;
kus&lt;br /&gt;
&lt;br /&gt;
    * regulaararvaldisega kontrollitakse, kas URL klapib ümberkirjutamisreegliga, kusjuures URL on antud juhul see osa päringust, mis jääb paremale&lt;br /&gt;
      http://www.zoo.tartu.ee&#039;st, näite puhul /~priit.&lt;br /&gt;
    * kui URL klappis, siis asendatakse URL asendusega &#039;asendus&#039;&lt;br /&gt;
    * lisaks on mõnel juhul oluline kasutada võtmeid, mis kontrollivad ümberkirjutamise peensusi &lt;br /&gt;
&lt;br /&gt;
^ tähistab, et / peab olema URLi esimene sümbol ning peale priit &#039;t&#039; tähte võib tulla kuitahes palju mistahes sümboleid (.+). Muuseas, antud juhul suunatakse ümber näiteks päring http://www.zoo.tartu.ee/~priit-onvastmees.&lt;br /&gt;
&lt;br /&gt;
Lubatud on kasutada järjest mitmeid asendusi, mil neid rakendatakse järjest, tulemuseks on viimane tehtud ümberkirjutus. Järgmise asenduse regulaaravaldist klapitatakse eelmise ümberkirjutamisel tehtud tulemusega.&lt;br /&gt;
&lt;br /&gt;
Esitame näite sisemise ning välimise ümberkirjutamise kohta. Soovides vastuseks päringule http://www.zoo.tartu.ee/vana.html brauserisse saata lehe uus.html, kusjuures jättes brauseri Location reale esialgse teksti, so http://www.zoo.tartu.ee/vana.html, kasutage ümberkirjutamisreeglit&lt;br /&gt;
&lt;br /&gt;
 RewriteRule    ^vana\.html$  uus.html&lt;br /&gt;
&lt;br /&gt;
Sama, kuid brauseri Location real kajastub ümberkirjutus&lt;br /&gt;
&lt;br /&gt;
 RewriteRule    ^vana\.html$  uus.html [R]&lt;br /&gt;
&lt;br /&gt;
^vana\.html$ tähendab, et asendus toimub, kui päring oli täpselt vana.html, so algas v-ga (^) ja lõppes l-ga ($); punkt on regulaaravaldise erisümbol ja tuleb põgeda (\).&lt;br /&gt;
&lt;br /&gt;
Kirjutades järjest mitu ümberkirjutusreeglit ning soovides, et ümberkirjutamine lõppeks antud reegliga, tuleb reegli lõppu lisada võti L (last).&lt;br /&gt;
&lt;br /&gt;
 RewriteRule ^/~priit.+ http://www.priit.ee [R,L]&lt;br /&gt;
 RewriteRule ^/~nea.+   http://www.nea.ee   [R,L]&lt;br /&gt;
 RewriteRule ^/~inna.+  http://www.inna.ee  [R,L]&lt;br /&gt;
 RewriteRule ^/~mart.+  http://www.mart.ee  [R,L]&lt;br /&gt;
&lt;br /&gt;
Kui aga veebiserverit tõstetakse ühest masinast teise, oletame, et uus töötab, kuid kasutajate kodud on vanas, siis lisage uue konfi selline rida&lt;br /&gt;
&lt;br /&gt;
 RewriteRule   ^/~(.+)  http://vana.zoo.edu.ee/~$1  [R,L]&lt;br /&gt;
&lt;br /&gt;
Siin on kasutatud regulaaravaldist koos asendamisega. $1 asendatakse tekstiga, mis klappis kasutatud regulaaravaldises avaldisega (.+). Praktiliselt näiteks&lt;br /&gt;
&lt;br /&gt;
===Lisatingimuste kasutamine===&lt;br /&gt;
&lt;br /&gt;
Direktiiv RewriteRule teostab ümberkirjutusi niikuinii tingimusi kasutades regulaaravaldise abil. Peale selle saab seada direktiiviga RewriteCond lisatingimusi. Näiteks sõltuvalt serveri kellaajast, saadetakse brauserile üks või teine veeb&lt;br /&gt;
&lt;br /&gt;
 RewriteEngine on&lt;br /&gt;
 RewriteCond   %{TIME_HOUR}%{TIME_MIN} &amp;gt;0700&lt;br /&gt;
 RewriteCond   %{TIME_HOUR}%{TIME_MIN} &amp;lt;1900&lt;br /&gt;
 RewriteRule   ^index\.html$             paev.html&lt;br /&gt;
 &lt;br /&gt;
 RewriteRule   ^index\.html$             oo.html&lt;br /&gt;
&lt;br /&gt;
%{TIME_HOUR} asendatakse päringu sooritamise kellaaja tunniväärtusega. Oluline on kirjutada &amp;lt; ja 0700 järjest, kusjuues toimub leksikograafiline stringide, mitte arvude võrdlus.&lt;br /&gt;
&lt;br /&gt;
Kui brauser esitab veebiserverile päringu päeval, siis toimub ümberkirjutus index.html -&amp;gt; paev, kuna esimese direktiivi RewriteRule regulaaravaldis klappis URLiga ning kõik eelnenud lisatingimused olid täidetud. Seejärel klapitatakse teist RewriteRule&#039;i eelmise väljundiga, so paev.html - ei klapi ning midagi ei kirjutata ümber.&lt;br /&gt;
&lt;br /&gt;
Lisatingimusi on sobiv kasutada ka brauserite eristamiseks.&lt;br /&gt;
&lt;br /&gt;
 RewriteCond  %{HTTP_USER_AGENT} Mozilla/4*&lt;br /&gt;
 RewriteRule  ^leht.html$                leht.moz.html [L]&lt;br /&gt;
 &lt;br /&gt;
 RewriteCond  %{HTTP_USER_AGENT} Lynx.*&lt;br /&gt;
 RewriteRule  ^leht.html$                leht.lynx.html [L]&lt;br /&gt;
&lt;br /&gt;
Sõltuvalt päringu tegija aadressist, saab esitada erinevat veebi.&lt;br /&gt;
&lt;br /&gt;
 RewriteCond  %{REMOTE_ADDR}  ^192.168.1.3$ &lt;br /&gt;
 RewriteRule  ^leht.html$      192.168.1.3.html [L]&lt;br /&gt;
&lt;br /&gt;
===Ümberkirjutusalus===&lt;br /&gt;
&lt;br /&gt;
Kui te tegutsete sügavamal URLi-struktuuri sees, kasutage RewriteRule&#039;i juurika ümbernimetamiseks direktiivi RewriteBase. Näiteks kirjutatakse URL http://www.zoo.tartu.ee/~priit/lemmikud/hobused.html ümber URLiks http://www.zoo.tartu.ee/~priit/lemmikud/kabjaksed.html&lt;br /&gt;
&lt;br /&gt;
 RewriteBase   /~priit/lemmikud&lt;br /&gt;
 RewriteRule   ^hobused.html$  kabjaksed.html &lt;br /&gt;
&lt;br /&gt;
===Ümberkirjutustabel===&lt;br /&gt;
&lt;br /&gt;
Esitatud päringu juhuslikult valitud URLile ümbersuunamiseks on sobiv kasutada direktiivi RewriteMap. RewriteMap pakub võimaluse salvestada tekstifaili hulga URLe, mille poole saab ümberkirjutusreeglist pöörduda. Näiteks loome olukorra, kus päringule http://www.zoo.tartu.ee/juhuslik vastatakse juhuslikult valitud veebilehega.&lt;br /&gt;
&lt;br /&gt;
Kirjeldame tabelikirjeldusfailis vl.txt juhuslike veebilehtede nimed&lt;br /&gt;
&lt;br /&gt;
 bash# cat /usr/local/apache/vl.txt&lt;br /&gt;
 veebilehed 1.html|2.html|3.html|4.html|5.html|6.html|7.html&lt;br /&gt;
&lt;br /&gt;
ning lisame veebiserveri konfiguratsioonifaili read&lt;br /&gt;
&lt;br /&gt;
 RewriteMap vl rnd:/usr/local/apache/vl.txt&lt;br /&gt;
 RewriteRule   ^/juhus$   /home/html/juhus/${vl:veebilehed|html.html}&lt;br /&gt;
&lt;br /&gt;
Ümberkirjutustabeli süntaks on selline&lt;br /&gt;
&lt;br /&gt;
RewriteMap tablelinimi tabelitüüp:tabelikirjeldusfail&lt;br /&gt;
&lt;br /&gt;
kus&lt;br /&gt;
&lt;br /&gt;
    * tabelinimi - on kooskõlas ümberkirjutusreeglis kasutatud nimega&lt;br /&gt;
    * tabelitüüp - rnd (random) näitab et&lt;br /&gt;
    * tabelikirjeldusfail - failis kirjeldatakse tabeli sisu, näiteks juhusliku puhul peab eraldama andmed |-ga (loogiline OR) &lt;br /&gt;
&lt;br /&gt;
Ümberkirjutusreegli asenduses kasutatud muutujat ${vl:veebilehed|html.html} väärtustatakse ümberkirjutustabeli vl võtme veeblilehed abil. Kui sellist ümberkirjutustabelit mingil põhjusel pole, on muutuja väärtus html.html.&lt;br /&gt;
&lt;br /&gt;
===Ümberkirjutuslogi===&lt;br /&gt;
&lt;br /&gt;
Ümberkirjutamise tööleseadmisel ning toimuvate ümberkirjutuste jälgimiseks saab kasutada direktiive RewriteLog ja RewriteLogLevel&lt;br /&gt;
&lt;br /&gt;
 RewriteLogLevel 3&lt;br /&gt;
 RewriteLog /var/log/apache/rewrite.log&lt;br /&gt;
&lt;br /&gt;
===Veebiserveri konfiguratsioonifaili lugemine===&lt;br /&gt;
&lt;br /&gt;
Lihtsamatel juhtudel pole see oluline, millises järjekorras veebiserver direktiivides esitatud reegleid kehtestab. Näiteks, kui konfiguratsioonifailis ei sisaldugi Location ja Files sektsioone, kuid soovides kasutada veebiseverit paindlikumalt, tuleb järjekorraga arvestada.&lt;br /&gt;
&lt;br /&gt;
Direktiivide puhul ei hooli Apache suurtest ja väikestest tähtedest, kuid parameetrite puhul on see tihti oluline.&lt;br /&gt;
&lt;br /&gt;
Eeldusel, et te paigutate kogu konfiguratsiooni ühte faili, sisalduvad seal kaks osa&lt;br /&gt;
&lt;br /&gt;
    * põhiosa - kirjeldatakse veebiserveri üldisi omadusi, näiteks millise kasutaja õigustes ta töötab&lt;br /&gt;
    * ressursside määrangud - kehtestatakse reeglid, kuidas veebiserver faile serveerib, näiteks käsitleb .php lõpulisi faile PHP skriptidena &lt;br /&gt;
&lt;br /&gt;
Üldosa direktiivide järjekord pole oluline, kui sama direktiiv on väärtustatud mitu korda, jääb kehtima viimane väärtus.&lt;br /&gt;
&lt;br /&gt;
Kui ressursside omadusi määratakse grupeerimisvahendite abil, siis sõltumata konfigureerimisfailis esinemise järjekorrast, loetakse neid sellises järjekorras: Directory, Files, Location&lt;br /&gt;
&lt;br /&gt;
Directory sees võivad olla kirjeldatud omakorda Files sektsioonid.&lt;br /&gt;
&lt;br /&gt;
Directory sees on lubatud kasutada järgmisi direktiive:&lt;br /&gt;
&lt;br /&gt;
    * DirectoryIndex&lt;br /&gt;
    * Options&lt;br /&gt;
    * Order, Allow, Deny&lt;br /&gt;
    * AllowOverride&lt;br /&gt;
    * AddHandler&lt;br /&gt;
    * AddType &lt;br /&gt;
&lt;br /&gt;
Files sektsioonis on lubatud kasutada praktiliselt samasid direktiive, mida sektsioonis Directory eeldusel, et neid on mõistlik rakendada failidele. Ilmselt ei saa kasutada näiteks direktiivi DirectoryIndex, küll aga näiteks Allow ja Deny.&lt;br /&gt;
&lt;br /&gt;
Location sektsioonis on lubatud kasutada praktiliselt samasid direktiive, mida sektsioonis Directory. Kuna Locationit rakedatakse kõige viimasena, siis ei saa seal näiteks kasutada Options direktiivi, küll aga näiteks Allow ja Deny&#039;id.&lt;br /&gt;
&lt;br /&gt;
===Veebiserveri turvalisus===&lt;br /&gt;
&lt;br /&gt;
Veebiserveri kasutamisel arvestage, et iseenesest on veebiserver programm, mis teeb teie arvuti failid kättesaadavaks HTTP protokolli kasutavaile klientidele, so brauseritele.&lt;br /&gt;
&lt;br /&gt;
Kuigi veebiserver tuleb käivitada juurkasutaja õigustes, toimetab ta edasi konfiguratsioonifailis näidatud kasutajana (User, Group direktiivid).&lt;br /&gt;
&lt;br /&gt;
Siiski, kui te kasutate konfiguratsioonifailis teatud kohtades IO ümbersuunamist, näiteks logimise juures, siis seda teeb Apache juurkasutajana.&lt;br /&gt;
&lt;br /&gt;
Vältimaks ebameeldivaid üllatusi, veenduge, et veebiserveri juurikas ning selle alla jäävad kataloogid on piisavalt kaitstud, so kasutajatel pole neisse kirjutamisõigust. Veebiserver (/usr/local/apache/bin/httpd) ja muud temaga seotud failid, näiteks rotatelogs, kuuluvad juurkasutajale ning on tavakasutajaile ning grupile others vaid käivitatavad. Tavaliselt piisab nende tingimuste täitmiseks anda käsud&lt;br /&gt;
&lt;br /&gt;
 bash# cd /usr/local/apache&lt;br /&gt;
 bash# chown 0 bin conf logs&lt;br /&gt;
 bash# chgrp 0  bin conf logs&lt;br /&gt;
 bash# chmod 755 bin conf logs&lt;br /&gt;
 &lt;br /&gt;
 bash# chown 0 /usr/local/apache/bin/httpd&lt;br /&gt;
 bash# chgrp 0 /usr/local/apache/bin/httpd&lt;br /&gt;
 bash# chmod 511 /usr/local/apache/bin/httpd&lt;br /&gt;
&lt;br /&gt;
Lisaks, mõelge järele, kas te peate kasutajaile lubama käivitada CGI skripte ja andmebaase ning otsustage millistel tingimustel. Samuti kataloogipõhine veebiserveri konfigureerimisvõimalus. Näiteks lubage kasutajatel CGI skripte tarvida ainult kataloogist    ~/public_html/cgi-bin&lt;br /&gt;
&lt;br /&gt;
 &amp;lt;Directory /usr/home/*/public_html/cgi-bin&amp;gt;&lt;br /&gt;
 AddHandler cgi-script .cgi&lt;br /&gt;
 Options +ExecCGI&lt;br /&gt;
 &amp;lt;/Directory&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Heal juhul saab veebiserveri tööleseadmise eel otsustada, milliste omadustega peab ta olema. Reeglina ei soovitata lihtsalt sisse kompileerida toetust, mida praktiliselt ei tarvitata. Näiteks, kui te olete kindel, et pole vajadust server-info ja server-status järele, siis jätke vastavad moodulid välja. Näidake seda Apache ./configure skripti juures vastavate võtmetega --disable-module=info --disable-module=status.&lt;br /&gt;
&lt;br /&gt;
===Virtuaalveebiserverid===&lt;br /&gt;
&lt;br /&gt;
Ühte ja sama Apache veebiserverit saab tööle seada nii, et ta serveerib erinevaid andmeid sõltuvalt sellest, millise nimega tema poole pöörduti. Asjakorraldust nimetatakse virtuaalseteks veebiserveriteks, kuna füüsiliselt on tegu ühe arvutiga, kuid külastajaile jäetakse mulje, et neid on mitu.&lt;br /&gt;
&lt;br /&gt;
Virtuaalseid veebiservereid on kolme sorti:&lt;br /&gt;
&lt;br /&gt;
    * pordipõhised - sõltuvalt külastaja poolt kastatud pordist serveeritakse erinevat veebi&lt;br /&gt;
    * IP-põhised - sõltuvalt külastaja poolt kasutatud IP-aadressist serveeritakse erinevat veebi&lt;br /&gt;
    * nimepõhised - sõltuvalt külastaja poolt kasutatud DNSi nimest serveeritakse erinevat veebi; reeglina vastavad erinevad nimed samale IP-aadressile,&lt;br /&gt;
      so on kirjeldatud CNAMEdena. &lt;br /&gt;
&lt;br /&gt;
Põhimõtteliselt on võimalik kasutada neid virtuaalservereid ka kombineeritult korraga.&lt;br /&gt;
&lt;br /&gt;
Erijuht virtuaalveebi serveerida, on käivitada mitu eksemplari httpd servereid, iga oma konfiguratsiooniga. Kuna see võimalus on suhteliselt ebaefektiivne ning ei paku olulisi täiendavaid võimalusi, siis seda me ei käsitle.&lt;br /&gt;
&lt;br /&gt;
Virtuaalserveri sektsioonis (VirtualHost) saab kasutada paljusid direktiive, mida peaserveri puhul, sh direktiive Options, Alias, Directory, Location, Files. Samuti direktiive, mis reguleerivad SSI, CGI, PHP, Emperli, ümberkirjutamise ja logi kasutamist. Kui direktiivi ei näidata, kasutatakse põhikonfiguratsiooni väärtust, kui seal seda samuti pole, siis vaikeväärtust.&lt;br /&gt;
&lt;br /&gt;
===Pordipõhised virtuaalveebiserverid===&lt;br /&gt;
&lt;br /&gt;
Kasutamaks erinevaid veebiseveri konfiguratsioone sõltuvalt sellest, millisele pordile päring tuli, kasutage direktiive Listen ja VirtualHost. Näiteks teenindab veebiserveri konfiguratsioonifaili põhiosale vastav server kõiki päringuid va neid, mis on suunatud aadressi 193.40.50.1 (www.zoo.edu.ee) pordile 8080 või pordile 8081. Viimast kahte teenindatakse vastaval VirtualHosti sektsioonile. Näiteks seame lisaks põhiosale tööle kaks alternatiivset dokumendijuurikat ja logi&lt;br /&gt;
&lt;br /&gt;
...&lt;br /&gt;
 Listen 80&lt;br /&gt;
 Listen 193.40.50.1:8080&lt;br /&gt;
 Listen 193.40.50.1:8081&lt;br /&gt;
 &amp;lt;VirtualHost 193.40.50.1:8080&amp;gt;&lt;br /&gt;
    ServerAdmin mart@zoo.edu.ee&lt;br /&gt;
    DocumentRoot /www/mardizoo&lt;br /&gt;
    ErrorLog /var/logs/mardizoo.error.log&lt;br /&gt;
    CustomLog /var/logs/mardizoo.log common&lt;br /&gt;
  &amp;lt;/VirtualHost&amp;gt;&lt;br /&gt;
 &lt;br /&gt;
 &amp;lt;VirtualHost 193.40.50.1:8081&amp;gt;&lt;br /&gt;
    ServerAdmin priit@zoo.edu.ee&lt;br /&gt;
    DocumentRoot /www/priiduzoo&lt;br /&gt;
    ErrorLog /var/logs/priituzoo.error.log&lt;br /&gt;
    CustomLog /var/logs/priiduzoo.log common&lt;br /&gt;
 &amp;lt;/VirtualHost&amp;gt;&lt;br /&gt;
&lt;br /&gt;
kusjuures peakonfiguratsiooni on lisatud vastavad Listen direktiivid.&lt;br /&gt;
&lt;br /&gt;
Brauseris tuleb päringud esitada vastavalt http://www.zoo.edu.ee:8080 või http://www.zoo.edu.ee:8081.&lt;br /&gt;
&lt;br /&gt;
===IP-põhised virtuaalveebiseverid===&lt;br /&gt;
&lt;br /&gt;
IP-põhised virtuaalveebiserverite kasutamisel on veebiserveril mitu IP aadressi. St masinal on mitu võrgukaarti või on kasutatud IP-aliasingut.&lt;br /&gt;
&lt;br /&gt;
IP-põhiste virtuaalveebiserverite kasutamisel näidake direktiivi VirtualHost juures ära IP aadress, ning samas sektsioonis kirjeldage kõnealuse veebiserveri omadused. Näiteks kui masinal on kaks võrgukaarti IP aadressidega 193.40.10.1 ning 193.40.50.1 kasutage sektsioone&lt;br /&gt;
&lt;br /&gt;
 &amp;lt;VirtualHost 193.40.50.1&amp;gt;&lt;br /&gt;
    ServerName www.zoo.tartu.ee&lt;br /&gt;
    ServerAdmin priit@zoo.tartu.ee&lt;br /&gt;
    DocumentRoot /www/tartuzoo&lt;br /&gt;
    ErrorLog /var/logs/tartuzoo.error.log&lt;br /&gt;
    CustomLog /var/logs/tartuzoo.log common&lt;br /&gt;
 &amp;lt;/VirtualHost&amp;gt;&lt;br /&gt;
 &lt;br /&gt;
 &amp;lt;VirtualHost 193.40.10.1&amp;gt;&lt;br /&gt;
    ServerName www.zoo.edu.ee&lt;br /&gt;
    ServerAdmin mart@zoo.edu.ee&lt;br /&gt;
     DocumentRoot /www/eduzoo&lt;br /&gt;
     ErrorLog /var/logs/eduzoo.error.log&lt;br /&gt;
     CustomLog /var/logs/eduzoo.log common&lt;br /&gt;
 &amp;lt;/VirtualHost&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Peakonfiguratsiooni osa järgi teenindatakse neid päringuid, millel ei leidu sobivat virtuaalserverit. Näiteks kui masinal on veel kolmas võrguseade ning päring siseneb selle aadressile.&lt;br /&gt;
&lt;br /&gt;
Virtuaalserveri direktiivi juurde võib kirjutada ka mitu IP aadressi, mispuhul kasutatakse kõnealust serverit neile kõigile tulnud päringutele vastamisel.&lt;br /&gt;
&lt;br /&gt;
===Nimepõhised virtuaalveebiserverid===&lt;br /&gt;
&lt;br /&gt;
Nimepõhisete virtuaalveebiserverite kasutamine eeldab, et ühele IP aadressile (193.40.50.1) on nimesüsteemis (DNS) seatud näiteks CNAMEiga vastavusse mitu domeenime (www.zoo.tartu.ee, post.zoo.tartu.ee).&lt;br /&gt;
&lt;br /&gt;
Kui soovite kasutada enam kui ühte veebiserverit, siis on soovitav kõik veebiserverid konfigureerida virtuaalseteks. Kusjuures põhiserverile ei vastagi DocumentRoot&#039;i.&lt;br /&gt;
&lt;br /&gt;
Nimepõhiste virtuaalveebiserverite kasutamine deklareeritakse peakonfiguratsiooni osas direktiiviga NameVirtualHost. Direktiivi järel näidatakse IP aadress, millele tulnud päringute teenindamisel kasutatakse sobivat VirtualHosti sektsiooni. Näiteks&lt;br /&gt;
&lt;br /&gt;
 NameVirtualHost 193.40.50.1&lt;br /&gt;
&lt;br /&gt;
puhul kasutatakse aadressile 193.40.50.1 saabunud päringute töötlemiseks sobiva domeeninimega (ServerName) VirtualHost sektsiooni.&lt;br /&gt;
&lt;br /&gt;
Erinevad virtuaalserverid kirjeldatakse direktiiviga VirtualHost, näiteks sarnase sektsiooniga&lt;br /&gt;
&lt;br /&gt;
 &amp;lt;VirtualHost 193.40.50.1&amp;gt;&lt;br /&gt;
     ServerName www.zoo.tartu.ee&lt;br /&gt;
     ServerAdmin priit@zoo.tartu.ee&lt;br /&gt;
     DocumentRoot /www&lt;br /&gt;
     ErrorLog /var/logs/www.error.log&lt;br /&gt;
     CustomLog /var/logs/www.log common&lt;br /&gt;
 &amp;lt;/VirtualHost&amp;gt;&lt;br /&gt;
 &lt;br /&gt;
 &amp;lt;VirtualHost 193.40.50.1&amp;gt;&lt;br /&gt;
     ServerName post.zoo.tartu.ee&lt;br /&gt;
     ServerAdmin post@zoo.tartu.ee&lt;br /&gt;
     DocumentRoot /post&lt;br /&gt;
     ErrorLog /var/logs/post.error.log&lt;br /&gt;
     CustomLog /var/logs/post.log common&lt;br /&gt;
 &amp;lt;/VirtualHost&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Kui serveril on mitu võrguaadressi, siis võib kasutada direktiivi NameVirtualHost mitu korda ning lisada vastavad sektsioonid, kuid lühem on asendada IP aadress täringa (*)&lt;br /&gt;
&lt;br /&gt;
 NameVirtualHost *&lt;br /&gt;
 &lt;br /&gt;
 &amp;lt;VirtualHost *&amp;gt;&lt;br /&gt;
     ServerName www.zoo.tartu.ee&lt;br /&gt;
     ServerAdmin priit@zoo.tartu.ee&lt;br /&gt;
     DocumentRoot /www&lt;br /&gt;
     ErrorLog /var/logs/www.error.log&lt;br /&gt;
     CustomLog /var/logs/www.log common&lt;br /&gt;
 &amp;lt;/VirtualHost&amp;gt;&lt;br /&gt;
 &lt;br /&gt;
 &amp;lt;VirtualHost *&amp;gt;&lt;br /&gt;
     ServerName post.zoo.tartu.ee&lt;br /&gt;
     ServerAdmin post@zoo.tartu.ee&lt;br /&gt;
     DocumentRoot /post&lt;br /&gt;
     ErrorLog /var/logs/post.error.log&lt;br /&gt;
     CustomLog /var/logs/post.log common&lt;br /&gt;
 &amp;lt;/VirtualHost&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Päringuid, mis saabuvad direktiiviga NameVirtualHost näidatud aadressile ei teenindata IP-põhiste sektsioonide ega peaserveri konfiguratsiooni alusel.&lt;br /&gt;
&lt;br /&gt;
===Kasulikud lisamaterjalid===&lt;/div&gt;</summary>
		<author><name>Triinu</name></author>
	</entry>
	<entry>
		<id>https://kuutorvaja.eenet.ee/w/index.php?title=Apache%27i_veebiserver&amp;diff=2842</id>
		<title>Apache&#039;i veebiserver</title>
		<link rel="alternate" type="text/html" href="https://kuutorvaja.eenet.ee/w/index.php?title=Apache%27i_veebiserver&amp;diff=2842"/>
		<updated>2007-01-26T14:08:21Z</updated>

		<summary type="html">&lt;p&gt;Triinu: /* Veebiserveri turvalisus */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;===Veebiserveri konfigureerimine ja käivitamine===&lt;br /&gt;
&lt;br /&gt;
Veebiserveri tööd juhib üks konfiguratsioonifail httpd.conf. Sellesse kirjutatake parameetrid üks reale, kusjuures # märgiga algavaid ridu ignoreeritakse. Ridu saab jätkata sisestades kurakallu (\) viimase sümbolina eelmisele reale, tegelikult eelviimasena, viimane on reavahetus :)&lt;br /&gt;
&lt;br /&gt;
Lihtsal juhul võiks olla konfiguratsioonifail selline&lt;br /&gt;
&lt;br /&gt;
 User nobody&lt;br /&gt;
 Group nobody&lt;br /&gt;
 ServerType standalone&lt;br /&gt;
 ServerName www.zoo.tartu.ee&lt;br /&gt;
 ServerRoot &amp;quot;/usr/local/apache&amp;quot;&lt;br /&gt;
 DocumentRoot &amp;quot;/html&amp;quot;&lt;br /&gt;
 DirectoryIndex index.html&lt;br /&gt;
 ErrorLog /var/log/apache/error.log&lt;br /&gt;
 Listen 80&lt;br /&gt;
 Options None&lt;br /&gt;
 &amp;lt;Directory /&amp;gt;&lt;br /&gt;
 AllowOverride None&lt;br /&gt;
 &amp;lt;/Directory&amp;gt;&lt;br /&gt;
&lt;br /&gt;
kus on kasutatud järgmisi direktiive&lt;br /&gt;
&lt;br /&gt;
    * User - kasutaja, kelle õigustes veebiserver töötab&lt;br /&gt;
    * Group - grupp, kelle õigustes veebiserver töötab&lt;br /&gt;
    * ServerType - serveri tüüp, tavaliselt standalone, so mitte inetd abil käivitatav&lt;br /&gt;
    * ServerName - millise nime server arvab endal olevat&lt;br /&gt;
    * ServerRoot - kataloog, mille all serveri programmid asuvad&lt;br /&gt;
    * DocumentRoot - veebifailid, mida külastajaile serveeritakse&lt;br /&gt;
    * DirectoryIndex - faili nimi, mis brauserisse saadetakse, kui ta küsib kataloogi eeldusel, et sellenimeline fail kataloogis leidub&lt;br /&gt;
    * ErrorLog - fail, kuhu saadetakse veateated; kataloog, kus see fail asub peab olema kindlasti olemas!&lt;br /&gt;
    * Listen - port, millel veebiserver ootab päringuid, kõigil võrguseadmetel&lt;br /&gt;
    * Options - väärtus None tagab, et külastajale näidatakse vaid neid veebilehti, mida ta nimeliselt küsib. &lt;br /&gt;
&lt;br /&gt;
Reeglina on veebiserverina töötaval arvutil nö tavaline nimi, näiteks kalake.zoo.tartu.ee ning nimeserveris on talle defineeritud lisaks ka mõned hüüdnimed (CNAMEga). Tavaliselt kasutatakse veebiserveri nime alguses kombinatsiooni www, kokku saab antud juhul www.zoo.tartu.ee, kuid veebiserveri nimi ei pea sugugi algama www-ga olles näiteks see sama kalake.zoo.tartu.ee.&lt;br /&gt;
&lt;br /&gt;
Konfiguratsioonifailis kasutatud kataloogid peavad süsteemis leiduma, toodud näites peavad nad kuuluma lähtudes turvakaalutlustest juurkasutajale; samuti nendest kataloogidest ülevalpool asuvad kataloogid.&lt;br /&gt;
&lt;br /&gt;
Reeglina on süsteemis vaikimisi olemas mitteprivilegeeritud kasutaja nobody grupiga nobody. Võib kasutada seda või luua spetsiaalne kasutaja, näiteks apache grupiga veeb. Veebiserveri mittekäivitumise põhjuseks on tihtipeale vastavate kasutajate puudumine süsteemis.&lt;br /&gt;
&lt;br /&gt;
Näidates võrguseadme nime, vastatakse ainult sellelt seadmelt tulevaile päringutele, näiteks &#039;Listen 193.40.10.1 80&#039;.&lt;br /&gt;
&lt;br /&gt;
===Sektsioon===&lt;br /&gt;
&lt;br /&gt;
 &amp;lt;Directory /&amp;gt;&lt;br /&gt;
 AllowOverride None&lt;br /&gt;
 &amp;lt;/Directory&amp;gt;&lt;br /&gt;
&lt;br /&gt;
tähendab, et kataloogides pole täiendavate vahenditega õigust veebiserveri konfiguratsiooni täpsustada.&lt;br /&gt;
&lt;br /&gt;
Kuigi teatud parameetrite järjekord konfiguratsioonifailis ei ole tähtis, jääb kehtima parameetrile viimasena omistatud väärtus.&lt;br /&gt;
Käivitamine&lt;br /&gt;
&lt;br /&gt;
Veebiserver käivitatakse ja peatatakse käsuga apachectl&lt;br /&gt;
&lt;br /&gt;
 bash# apachectl start&lt;br /&gt;
&lt;br /&gt;
Peatamine toimub käsuga stop&lt;br /&gt;
&lt;br /&gt;
 bash# apachectl stop&lt;br /&gt;
&lt;br /&gt;
Peale konfiguratsioonifaili muutmist kehtestuvad muutused serveri taaskäivitamisel soovitavalt käsuga graceful, või restart&lt;br /&gt;
&lt;br /&gt;
 bash# apachectl graceful&lt;br /&gt;
&lt;br /&gt;
Veebiserver tuleb käivitada juurkasutajaõigustes, kuid ta töötab konfiguratsioonifailis näidatud User ja Group kasutajana. See tähendab, et failisüsteemi osad, mida soovitakse veebi näidata peavad olema vastavatele UNIXi kasutajatele nähtavad. Tavaliselt on nende failide kasutajagrupile other antud lugemisõigus.&lt;br /&gt;
&lt;br /&gt;
Töötavast veebiserverist annab tunnistust see, kui süsteemi protsessitabelis on httpd deemoni nimi, isegi mitu&lt;br /&gt;
&lt;br /&gt;
 bash# ps auxw | grep httpd&lt;br /&gt;
 root   30692  0.0  5.4  4236 3288  ??  Ss    4:39PM   0:00.16 /usr/local/apache/bin/httpd&lt;br /&gt;
 nobody 30840  0.0  5.5  4272 3324  ??  I     5:52PM   0:00.00 /usr/local/apache/bin/httpd&lt;br /&gt;
 nobody 30841  0.0  5.5  4272 3324  ??  I     5:52PM   0:00.00 /usr/local/apache/bin/httpd&lt;br /&gt;
 nobody 30842  0.0  5.5  4272 3324  ??  I     5:52PM   0:00.00 /usr/local/apache/bin/httpd&lt;br /&gt;
 nobody 30843  0.0  5.4  4248 3296  ??  I     5:52PM   0:00.00 /usr/local/apache/bin/httpd&lt;br /&gt;
 nobody 30844  0.0  5.4  4248 3296  ??  I     5:52PM   0:00.00 /usr/local/apache/bin/httpd&lt;br /&gt;
 nobody 30845  0.0  5.4  4256 3300  ??  I     5:52PM   0:00.00 /usr/local/apache/bin/httpd&lt;br /&gt;
&lt;br /&gt;
Aga veel parem kinnitus on, kui olemaks näitega kooskõlas päring http://www.zoo.edu.ee näitab veebilehte, so faili /html/index.html. Samuti saab antud näite rakendamisel näha kasutajate kodulehti eeldusel, et nad asuvad kataloogide ~/public_html all.&lt;br /&gt;
&lt;br /&gt;
Kui veebiserveri käivitamisel ilmneb raskusi, siis tasub uurida vealogi (/var/log/apache/error.log) sisu.&lt;br /&gt;
Automaatne käivitamine&lt;br /&gt;
&lt;br /&gt;
===Veebiressursside kasutusõigus===&lt;br /&gt;
&lt;br /&gt;
Veebiserveri konfigureerimisel on väga oluline näidata, mida vastuseks külastaja päringule tohib teha või saata või kas üldse külastajat teenindada.&lt;br /&gt;
&lt;br /&gt;
===Direktiiv Option===&lt;br /&gt;
&lt;br /&gt;
Direktiivi Options abil saab määratleda, mida kataloogis leiduvate failidega lubatakse teha. Näiteks määrates minimaalsed õigused parameetriga None, saab kataloogis sisalduvate failide poole pöörduda vaid nimeliselt; failide nimekirja ei näidata.&lt;br /&gt;
&lt;br /&gt;
 Options None&lt;br /&gt;
&lt;br /&gt;
===Muud võimalused:===&lt;br /&gt;
&lt;br /&gt;
    * FollowSymLinks - kui brauser esitatud päringus on failinimi viide, siis seda järgitakse vaatamata, kas viidatav fail kuulub samale kasutajale kui&lt;br /&gt;
      viide&lt;br /&gt;
    * SymLinksIfOwnerMatch - kui brauser esitatud päringus on failinimi viide, siis seda järgitakse juhul, kas viidatav fail kuulub samale kasutajale &lt;br /&gt;
      kellele viide&lt;br /&gt;
    * Indexes - näidatakse serveri kataloogi failide nimekirja kui DirectoryIndexis näidatud faile ei leitud&lt;br /&gt;
    * ExecCGI - CGI skriptide kasutamiseks&lt;br /&gt;
    * Includes - SSI failide kasutamiseks&lt;br /&gt;
    * IncludesNOEXEC - SSI failide kasutamiseks, va #exec ja CGI skriptide #include&lt;br /&gt;
    * All - kõik eelnimetatu on lubatud &lt;br /&gt;
&lt;br /&gt;
Korraga võib määratleda ka mitu parameetrit, eraldades nad üksteisest tühikuga.&lt;br /&gt;
&lt;br /&gt;
Kui konfiguratsioonifailis kasutada mitmel Options direktiivi, jääb kehtima viimane. Lisades parameetri algusesse + või - märgi, lisatakse või eemaldatakse vastav toime. Näiteks kasutades direktiive&lt;br /&gt;
&lt;br /&gt;
 Options Indexes Includes FollowSymLinks&lt;br /&gt;
 Options -FollowSymLinks&lt;br /&gt;
&lt;br /&gt;
on toime samaväärne avaldisega&lt;br /&gt;
&lt;br /&gt;
 Options Indexes Includes&lt;br /&gt;
&lt;br /&gt;
Direktiivi Options vaikeväärtus on All.&lt;br /&gt;
&lt;br /&gt;
===Direktiivid Allow, Deny ja Order===&lt;br /&gt;
&lt;br /&gt;
Direktiividega Allow, Deny ning Order abil saab kehtestada, millistelt domeenidelt tulevaid päringuid teenidatakse. Orderi abil seatakse, millises järjekorras kontroll toimub, kusjuures rakendatakse viimast reeglit, millega külastaja domeeninimi klapib. Kui ükski reegel ei klapi, toimitakse vaikimisi nagu viimane Orderi parameeter näitab. Näiteks sellise sektsiooni puhul&lt;br /&gt;
&lt;br /&gt;
 Order Deny,Allow&lt;br /&gt;
 Deny from all&lt;br /&gt;
 Allow from zoo.tartu.ee&lt;br /&gt;
&lt;br /&gt;
Päringut domeenist zoo.tartu.ee teenindatakse, esimene reegel (Deny) keelab kõik, kuid teine (Allow) lubab domeeni zoo.tartu.ee. Kui Order oleks vastupidi, siis lubaks esimene reegel (Allow) zoo.tartu.ee, kuid kehtima jääks viimane reegel (Deny). Reeglite järjekord failis ei loe, kuna selle määrab Order.&lt;br /&gt;
&lt;br /&gt;
Järgmises näites on lubatud päringud vaid tartu.ee domeenist, va alamdomeen zoo.tartu.ee&lt;br /&gt;
&lt;br /&gt;
 Order Allow,Deny&lt;br /&gt;
 Allow from tartu.ee&lt;br /&gt;
 Deny from zoo.tartu.ee&lt;br /&gt;
&lt;br /&gt;
Tõepoolest, päringut foo.tartu.ee domeenist teenindatakse kuna ta klapib esimese (Allow) reegliga, mis lubab ning teisega, mis keelab mitte. Päringuid muudest domeenidest keelatakse, kuna nad ei klapi kummagi reegliga ning vaikimisi rakendatakse viimast Orderi parameetrit - Deny.&lt;br /&gt;
&lt;br /&gt;
Order, Deny ja Allow direktiive saab kasutada vaid direktiivi Directory sees ning Deny ja Allow tuleb eraldada ainult täpselt ühe komaga!&lt;br /&gt;
&lt;br /&gt;
===Veebiressursside grupeerimisvahendid===&lt;br /&gt;
&lt;br /&gt;
Veebiserveri kasutusõigust ning teisi omadusi reguleerivaid parameetreid saab grupeerida järgmiste direktiividega&lt;br /&gt;
&lt;br /&gt;
    * Directory - kataloogis ning selle alla jäävate alamkataloogides sisalduvate failide grupeerimiseks&lt;br /&gt;
    * Files - faili nimede järgi failide grupeerimiseks&lt;br /&gt;
    * Location - URLi ning selle alla jäävate URLide grupeerimiseks &lt;br /&gt;
&lt;br /&gt;
Sellistele gruppidele saab rakendada korraga samu määratlusi, näiteks Option parameetriga.&lt;br /&gt;
&lt;br /&gt;
===Directory direktiiv===&lt;br /&gt;
&lt;br /&gt;
Directory abil saab määrata näidatud kataloogi alla jäävatele failidele ühesuguseid omadusi. Näiteks kehtestame, et kataloogi /html/veeb/kalamaja alla jäävates kataloogides käsitletakse DirectoryIndexina faile index.html ja index.htm&lt;br /&gt;
&lt;br /&gt;
 &amp;lt;Directory /html/veeb/kalamaja&amp;gt;&lt;br /&gt;
 DirectoryIndex index.html index.htm&lt;br /&gt;
 &amp;lt;/Directory&amp;gt;&lt;br /&gt;
&lt;br /&gt;
===Files direktiiv===&lt;br /&gt;
&lt;br /&gt;
Sarnaselt Directory&#039;le saab kehtestada näidatud regulaaravaldisega klappivate failinimedega failidele ühesuguseid omadusi. Näiteks kehtestame, et failides, mille nimi algab tähtedega &amp;quot;e_&amp;quot; ja lõpeb .html-ga, tohivad sisaldada Embperli konstruktsioone&lt;br /&gt;
&lt;br /&gt;
 &amp;lt;Files ~ &amp;quot;^e_.*\.html$&amp;quot;&amp;gt;&lt;br /&gt;
 Options +ExecCGI&lt;br /&gt;
 SetHandler perl-script&lt;br /&gt;
 PerlHandler HTML::Embperl&lt;br /&gt;
 &amp;lt;/Files&amp;gt;&lt;br /&gt;
&lt;br /&gt;
===Location direktiiv===&lt;br /&gt;
&lt;br /&gt;
Sarnaselt Directory direktiivile saab Locationiga kehtestada osale veebikohale samasuguseid omadusi. Location mõjub mitte kataloogistruktuuri, vaid URLi mõttes hulgale elementidele. Näiteks kehtestame, et URL&#039;ist http://kalake.zoo.edu.ee/hobused edasi tohib näha kataloogide nimekirja&lt;br /&gt;
&lt;br /&gt;
 &amp;lt;Location /hobused&amp;gt;&lt;br /&gt;
 Options Indexes&lt;br /&gt;
 &amp;lt;/Location&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Tavaliselt piisab Directory kasutamisest, kuid kuna veebiserveri kataloogi-ja URLihierarhia ei pruugi alati kokku langeda, siis on sellest vahel abi.&lt;br /&gt;
&lt;br /&gt;
===Kataloogipõhine veebiserveri konfigureerimine===&lt;br /&gt;
&lt;br /&gt;
Veebiserveri põhikonfiguratsioonifailis näidatud väärtusi saab iga kataloogi jaoks täpsustavalt määrata kataloogis sisalduva konfiguratsiooni .htaccess faili abil. Selle faili nimi on määratud põhikonfiguratsioonifailis direktiiviga AccessFileName, mis peab esinema Directory sees. Faili süntaks on sama, mis põhikonfiguratsioonifailil. Seda, milliseid omadusi on ludatud .htaccess failiga täpsustada, näitab põhikonfiguratsioonifailis direktiiv AllowOverride; järgmistele parameeritele vastab voli muuta toodud parameetreid&lt;br /&gt;
&lt;br /&gt;
    * AuthConfig - AuthGroupFile, AuthName, AuthType, AuthUserFile, Require jne&lt;br /&gt;
    * FileInfo - AddEncoding, AddLanguage, AddType, DefaultType, ErrorDocument jne&lt;br /&gt;
    * Indexes - DirectoryIndex, AddDescription, AddIcon, AddIconByEncoding, AddIconByType, DefaultIcon, DirectoryIndex, FancyIndexing, HeaderName,&lt;br /&gt;
      IndexIgnore, IndexOptions, ReadmeName jne&lt;br /&gt;
    * Limit - Order, Allow, Deny&lt;br /&gt;
    * Options - Options, XBitHack&lt;br /&gt;
    * None - mitte midagi&lt;br /&gt;
    * All - kõik nimetatud &lt;br /&gt;
&lt;br /&gt;
Vaikimisi toimib parameeter All. Kui ei soovita lasta kasutajatel veebiserverit konfigureerida, siis kasutage peale veebiserveri põhiosa direktiivi&lt;br /&gt;
&lt;br /&gt;
 AllowOverride None&lt;br /&gt;
&lt;br /&gt;
.htaccess failis tohib kasutada direktiivi Files, aga ei saa kasutada Diectory või Location.&lt;br /&gt;
&lt;br /&gt;
Tavaliselt on ohutu ning kasutajaile piisav&lt;br /&gt;
&lt;br /&gt;
 AllowOverride Indexes AuthConfig&lt;br /&gt;
&lt;br /&gt;
===Alias===&lt;br /&gt;
&lt;br /&gt;
Direktiiv Alias võimaldab muuta veebi failile kataloogistruktuuri vastavust URLi struktuurile. Näiteks olgu kataloogis /html/veeb/hobused/2000/tyrinaitus/ehola_talu failid ning soovime neile ligi pääseda URLiga http://www.zoo.tartu.ee/ehola_talu. Kasutame sellist Aliast&lt;br /&gt;
&lt;br /&gt;
 Alias /ehola_talu/ /html/veeb/hobused/2000/tyrinaitus/ehola_talu/&lt;br /&gt;
&lt;br /&gt;
Antud juhul laheneb päring http://www.zoo.tartu.ee/ehola_talu/, kuid mitte http://www.zoo.tartu.ee/ehola_talu.&lt;br /&gt;
&lt;br /&gt;
Lisaks saab Aliasega kaasata veebi faile ning katalooge, mis asuvad failisüsteemi mõttes väljaspool DocumentRootu.&lt;br /&gt;
&lt;br /&gt;
 Alias /valdek/ /html/valdek/veeb/&lt;br /&gt;
&lt;br /&gt;
Aliase süntaks on järgmine&lt;br /&gt;
&lt;br /&gt;
 Alias URLi-tee kataloogi-tee&lt;br /&gt;
&lt;br /&gt;
kus&lt;br /&gt;
&lt;br /&gt;
    * URLi-tee on osa URList, mis jääb peale serverinimi osa, näiteks http://www.zoo.tartu.ee/ehola_talu/ puhul /ehola_talu/&lt;br /&gt;
    * kataloogi-tee on vastava kataloogi nimi &lt;br /&gt;
&lt;br /&gt;
Aliasi saab kasutada peakonfiguratsioonifailis või võrdväärsetes kohtades, näiteks VirtualHost sektsioonis. Aliaste kasutamisel tuleb tavaliselt kasutada kataloogi tee&#039;le vastavaid Directory direktiive, muutmaks sobivaks veebiosa kasutusõigused. Aliased loetakse läbi enne Directory sektsioone.&lt;br /&gt;
&lt;br /&gt;
Aliase kasutamisel tuleb tähele panna, et URLi tee asendatakse igal juhul kataloogiteega. Kas sel juhul, kui päring on pikem, kooskõlas kasutatud näitega päringu http://www.zoo.tartu.ee/ehola_talu/ratsahobused/piiker.html puhul esitatakse fail /html/veeb/hobused/2000/tyrinaitus/ehola_talu/ratsahobused/piiker.html.&lt;br /&gt;
&lt;br /&gt;
Soovides teha paindlikumaid nö ümberkirjutusi, kasutage mod_rewrite&#039;i võimalusi.&lt;br /&gt;
&lt;br /&gt;
===CGI===&lt;br /&gt;
&lt;br /&gt;
CGI kasutamiseks lisage konfiguratsioonifaili rida&lt;br /&gt;
&lt;br /&gt;
 AddHandler cgi-script .cgi .pl&lt;br /&gt;
&lt;br /&gt;
Tulemusena püüab veebiserver käivitada kõiki serveeritavaid .cgi ja .pl lõpuliste nimedega faile, eeldusel, et failile rakendub Optioni parameeter ExecCGI. Käivitamisel tekkiv programmiväljund saadetakse brauserisse, kusjuures see peab algama tuntud Content-type&#039;iga, näiteks text/html. Seda võib teha näiteks Directory abil; kehtestame, et kõikjal veebi faile sisaldavas kataloogis /html/veeb/suhtleja ja selle all asuvad .cgi ja .pl lõpuliste nimedega failid on käivitatavad&lt;br /&gt;
&lt;br /&gt;
 &amp;lt;Directory /suhtleja&amp;gt;&lt;br /&gt;
 Options ExecCGI&lt;br /&gt;
 &amp;lt;/Directory&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Soovides näidata, et vaatamata failinimele tuleb käsitleda faili CGI skriptina, kasutage ScriptAlias direktiivi. Tüüpiliselt määratletakse URLi http://kalake.zoo.tartu.ee/cgi-bin/&#039;le vastavad failid skriptideks&lt;br /&gt;
&lt;br /&gt;
 ScriptAlias /cgi-bin/ /html/veeb/cgi-bin/&lt;br /&gt;
&lt;br /&gt;
Tulemusena, näiteks päringu http://kalake.zoo.tartu.ee/cgi-bin/kasutajatenimikiri.sh puhul käivitatakse fail /html/veeb/cgi-bin/kasutajatenimekiri.sh.&lt;br /&gt;
&lt;br /&gt;
===SSI===&lt;br /&gt;
&lt;br /&gt;
SSI (Server Sides Includes) tehnika võimaldab sisestada brauseri päringus nõutud faili koosseisu muude failide sisu.&lt;br /&gt;
&lt;br /&gt;
SSI kasutamiseks lisage konfiguratsioonifaili rida&lt;br /&gt;
&lt;br /&gt;
 AddType text/html .shtml&lt;br /&gt;
 AddHandler server-parsed .shtml&lt;br /&gt;
&lt;br /&gt;
ning näidake näiteks direktiivide Directory ja Options parameetri Includes abil, milliseid faile tohib server käsitleda SSIdena. Näiteks kehtestame, et kataloogi /html/veeb/uudised all kasutatakse SSId&lt;br /&gt;
&lt;br /&gt;
 &amp;lt;Directory /html/veeb/uudised&amp;lt;&amp;gt;&lt;br /&gt;
 Options IncludesNOEXEC&lt;br /&gt;
 &amp;lt;/Directory&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Tulemusena saab failides, mille nime lõpus on .shtml, kasutada SSI konstruktsioone, va #exec ja CGI skriptide #include.&lt;br /&gt;
&lt;br /&gt;
===Embperl===&lt;br /&gt;
&lt;br /&gt;
Embperl on tehnika, mis võimaldab sisestada HTML koodi sisse Perli konstruktsioone. Selle võimaluse kasutamiseks lisage konfiguratsioonifaili&lt;br /&gt;
&lt;br /&gt;
 &amp;lt;Files ~ &amp;quot;\.html$&amp;quot;&amp;gt;&lt;br /&gt;
 Options ExecCGI&lt;br /&gt;
 SetHandler perl-script&lt;br /&gt;
 PerlHandler HTML::Embperl&lt;br /&gt;
 &amp;lt;/Files&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Tulmusena lahendab veebiserver failides, mille nime lõpetab .html sisalduva Perli koodi.&lt;br /&gt;
&lt;br /&gt;
Muuseas, Embperli rakendamisel on veebiserver ka tavalise HTML süntaksi osas oluliselt rangem. Tüüpiliselt ei meeldi talle [# jne järgnevused, mida kasutatakse Embperli skriptide tähistamiseks. Et neid sümboleid siiski kasutada saada, esitage neid a la &amp;amp;#kood;, näiteks &amp;amp;#60;.&lt;br /&gt;
&lt;br /&gt;
===PHP===&lt;br /&gt;
&lt;br /&gt;
PHP on tehnika, mis võimaldab lisada HTML koodi sisse PHP keele konstruktsioone. Selle võimaluse kasutamiseks lisage konfiguratsioonifaili&lt;br /&gt;
&lt;br /&gt;
 AddType application/x-httpd-php .php&lt;br /&gt;
&lt;br /&gt;
Veebiserverisse konfigureeritud PHP omadusi saab näha PHP skriptiga&lt;br /&gt;
&lt;br /&gt;
 &amp;lt;?&lt;br /&gt;
 phpinfo();&lt;br /&gt;
 ?&amp;gt;&lt;br /&gt;
&lt;br /&gt;
===Serveri kasutajate kodulehed===&lt;br /&gt;
&lt;br /&gt;
Vaikimisi eeldab veebiserver, et näiteks URLile http://www.zoo.tartu.ee/~priit vastab süsteemi kasutaja priit kodukataloogis olev kataloog public_html. Selle kataloogi nime määrab direktiiv UserDir.&lt;br /&gt;
&lt;br /&gt;
===Veebi kaitsmine parooliga===&lt;br /&gt;
&lt;br /&gt;
Apache pakub vahendid veebistruktuuri kaitsmiseks parooliga. Konfiguratsioonifailis näidatakse ära, millist ressurssi kaitsta ning millist autentimissüsteemi kasutada.&lt;br /&gt;
&lt;br /&gt;
Kõige lihtsamal juhul tuleb programmiga htpasswd genereerida lubatud külastajate paroolifail, milles on kirjas kasutajanimed ning vastavad paroolid. See fail on reeglina erinev süsteemi paroolifailist, kus veebiserver töötab. Kui külastaja püüab siseneda kaitstud veebi, avaneb dialoog ning küsitakse tema kasutajanime ning parooli. Sobiva paari sisestamisel lubatakse külastaja veebile ligi, kusjuures kõnealust veebi saab kasutada kuni brauseri sulgemiseni.&lt;br /&gt;
&lt;br /&gt;
Näiteks kaitseme kataloogistruktuuri /html/salajane kirjeldatud paroolikontrolliga&lt;br /&gt;
&lt;br /&gt;
 &amp;lt;Directory /html/salajane&amp;gt;&lt;br /&gt;
 AuthUserFile /usr/local/apache/conf/salajane.paroolifail&lt;br /&gt;
 AuthType Basic&lt;br /&gt;
 AuthName Salajane&lt;br /&gt;
 require valid-user&lt;br /&gt;
 &amp;lt;/Directory&amp;gt;&lt;br /&gt;
&lt;br /&gt;
kus on kasutatud direktiive:&lt;br /&gt;
&lt;br /&gt;
    * AuthUserFile - paroolifailinimi, /usr/local/apache/conf/salajane.paroolifail&lt;br /&gt;
    * AuthType - millist tüüpi autentimisega on tegemist, antud juhul Basic&lt;br /&gt;
    * AuthName - parameetri väärtust näidatakse aknas, kuhu kasutaja sisestab oma veebi kasutajanime ja parooli; sama veebi piires saab sama kasutajanimega&lt;br /&gt;
      seostada erinevaid paroole, mistõttu peab külastaja saama teada, millist parooli konkreetsel juhul tarvitada&lt;br /&gt;
    * require valid-user - sellele ressursile lastakse ligi vaid peale edukat autentimist &lt;br /&gt;
&lt;br /&gt;
Sobiv paroolifail moodustatakse programmiga htpasswd&lt;br /&gt;
&lt;br /&gt;
 bash$ htpasswd -b -c -m salajane.paroolifail priit priiduparool&lt;br /&gt;
&lt;br /&gt;
kus&lt;br /&gt;
&lt;br /&gt;
   1. -b kasutaja parooliks loetakse käsurea viimane sõna (priiduparool)&lt;br /&gt;
   2. -c seda võtit tuleb kasutada vaid siis, kui paroolifaili veel ei eksisteeri; edaspidi peab selle võtme ära jätma, sest muidu kustutatakse olemasoleva&lt;br /&gt;
      paroolifaili sisu&lt;br /&gt;
   3. -m kasutada MD5 krüptimist; jättes selle võtme kirjutamata tekitatakse CRYPT proolid&lt;br /&gt;
   4. järgnevad paroolifaili nimi (salajane.paroolifail) ja kasutajanimi (priit) &lt;br /&gt;
&lt;br /&gt;
Tundub, et peale Directory, saab autentimist kasutada ka Location sektsioonis, mis on veebi suhtes veel asjakohasem.&lt;br /&gt;
&lt;br /&gt;
Paroolifail peab olema loetav sellele kasutajale, kelle õigustes veebiserver töötab (näiteks nobody) ning soovitavalt mitte olema veebiga samas kataloogistruktuuris.&lt;br /&gt;
&lt;br /&gt;
===Logi===&lt;br /&gt;
&lt;br /&gt;
Apache veebiserveriga saab logida tekstifaili erinevatel tingimustel toimunud päringuid ning neid logifaile automaatselt roteerida. Logida saab paraleelselt ka näidatud tingimustele erinevates formaatides erinevatesse failidesse.&lt;br /&gt;
&lt;br /&gt;
Direktiiviga LogFormat kirjeldatakse mida logitakse. Tüüpiliselt defineeritakse formaat nimega tavaline&lt;br /&gt;
&lt;br /&gt;
 LogFormat &amp;quot;%h %l %u %t \&amp;quot;%r\&amp;quot; %&amp;gt;s %b&amp;quot; tavaline&lt;br /&gt;
&lt;br /&gt;
kus&lt;br /&gt;
&lt;br /&gt;
    * %h - maisinanimi, kust päring esitati&lt;br /&gt;
    * %l - kasutajanimi, kes päringu esitas eeldusel, et IdentityCheck tomib; tavaliselt see väli jääb tühjaks, kuna IdentityCheck&#039;i kasutamine võtab&lt;br /&gt;
      tublisti veebi kiirust alla&lt;br /&gt;
    * %u - kui veebiserveri ressurss nõudis autentimist, siis kasutatud kasutajanimi&lt;br /&gt;
    * %t - päringu esitamise aeg&lt;br /&gt;
    * \&amp;quot;%r\&amp;quot; - jutumärkides esitatud päringu esimene rida&lt;br /&gt;
    * %&amp;gt;s - päringule vastuse olek (ingl. k. status)&lt;br /&gt;
    * %b - päringu vastuse maht baitides&lt;br /&gt;
    * tavaline - logiformaadi nimi &lt;br /&gt;
&lt;br /&gt;
Logimine ise toimub direktiiviga CustomLog, näiteks logime, kasutades logiformaati tavaline, faili /var/log/apache/tavaline.log&lt;br /&gt;
&lt;br /&gt;
 CustomLog /var/log/apache/tavaline.log tavaline&lt;br /&gt;
&lt;br /&gt;
Soovides logifaili automaatselt roteerida, kasutage veebiserveriga kaasas olevat programmi rotatelogs. Näiteks moodustame iga nädal uue logi&lt;br /&gt;
&lt;br /&gt;
 CustomLog &amp;quot;|/usr/local/apache/bin/rotatelogs /var/log/apache/tavaline.log 604800&amp;quot; common&lt;br /&gt;
&lt;br /&gt;
Logi faili nimi moodustatakse lisades failinime lõppu aja sekundites, mis on möödunud UNIXi ajastu algusest, so 1970. 1. jaanuar kell 00:00 hommikul.&lt;br /&gt;
&lt;br /&gt;
===Vealogi===&lt;br /&gt;
&lt;br /&gt;
Vealogisse salvestatakse serveri töös toimunud vead, sh näiteks päringud puuduvatele failidele. Logitaset saab reguleerida direktiiviga LogLevel, soovitatakse taset warn&lt;br /&gt;
&lt;br /&gt;
 LogLevel warn&lt;br /&gt;
&lt;br /&gt;
Direktiiviga ErrorLog näidatakse, kuhu logi salvestada&lt;br /&gt;
&lt;br /&gt;
 ErrorLog /var/log/apache/error.log&lt;br /&gt;
&lt;br /&gt;
Logianalüsaatorid&lt;br /&gt;
&lt;br /&gt;
Apache veebiserveri logi analüüsiks sobib kasutada näiteks programmi Webalizer.&lt;br /&gt;
&lt;br /&gt;
===Veebiserveri staatus ja info===&lt;br /&gt;
&lt;br /&gt;
Eeldusel, et veebiserverisse on sissekompilleeritud vastavad moodulid võtmetega --enable-module=status ja --enable-moudule=info, saab näha veebiserveri konfiguratsiooni (info) ning parasjagu olevat seisu (status).&lt;br /&gt;
&lt;br /&gt;
Näidates konfiguratsioonifailis direktiivi ExtendedStatus parameetriks &amp;quot;On&amp;quot;, esitatakse staatus põhjalikumalt.&lt;br /&gt;
&lt;br /&gt;
Nende veebiserveri omaduste nägemiseks peab sisalduma konfiguratsioonifailis kaks sektsiooni&lt;br /&gt;
&lt;br /&gt;
URLi http://www.zoo.tartu.ee/status-info jaoks&lt;br /&gt;
&lt;br /&gt;
 &amp;lt;Location /server-info&amp;gt;&lt;br /&gt;
     SetHandler server-info&lt;br /&gt;
     Order deny,allow&lt;br /&gt;
     Deny from all&lt;br /&gt;
     Allow from .zoo.tartu.ee&lt;br /&gt;
 &amp;lt;/Location&amp;gt;&lt;br /&gt;
&lt;br /&gt;
URLi http://www.zoo.tartu.ee/server-info jaoks&lt;br /&gt;
&lt;br /&gt;
 &amp;lt;Location /server-status&amp;gt;&lt;br /&gt;
     SetHandler server-status&lt;br /&gt;
     Order deny,allow&lt;br /&gt;
     Deny from all&lt;br /&gt;
     Allow from .zoo.tartu.ee&lt;br /&gt;
 &amp;lt;/Location&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Mõlemas sektsioonis on kasutatud Deny ja Allow direktiive, piiramaks nende URLide külastamise õigust. Kuigi sealt midagi väga salajast ei paista, on külastama lubatud vaid zoo.tart.ee domeeni masinastest.&lt;br /&gt;
Veebi-indekseerijad&lt;br /&gt;
&lt;br /&gt;
Apache veebiserver ei sisalda indekseerimisvahendeid, so võimalusi luua serveeritavale veebile otsingumootorit. Küll aga sobib kasutada mõnda olemasolevat veebiindeksaatorit, näiteks Glimpse või HtDig.&lt;br /&gt;
&lt;br /&gt;
Hoopis teine probleem on kuidas kontrollida, mida tohivad teha teised otsingumootorid (tuntud kui robotid või nuhid) teie veebi külastades. Tüüpiliselt tuleb neid kontrollida, kuna nad võivad täita avalikke andmebaase kiiresti vananeva infoga või ebasoovitavalt teie serverit koormata.&lt;br /&gt;
&lt;br /&gt;
===URLi ümberkirjutamine===&lt;br /&gt;
&lt;br /&gt;
Ümberkirjutamise kasutamiseks on vaja mod_rewrite&#039;i toetus serverisse kompilleerida võtmega --enable-module=rewrite.&lt;br /&gt;
&lt;br /&gt;
See tehnika võimaldab suunata serverisse tulevad päringud ümber, jäädes sama serveri piiridesse või välja. Ümbersuunamisi saab konfigureerida peakonfiguratsioonifailist või .htaccess failist.&lt;br /&gt;
&lt;br /&gt;
Ümbersuunamisel saab kasutada tingimusi või teha seda juhuslikult.&lt;br /&gt;
&lt;br /&gt;
Tõenäoliselt on võimalik järgnevalt näidetena toodud tegevusi korraldada ka muude vahenditega, URLi ümberkirjutamine mod_rewrite&#039;ga on selleks üks käepärane vahend.&lt;br /&gt;
&lt;br /&gt;
Ümberkirjutuste tegemiseks tuleb esmalt aktiviseerida ümberkirjutusmehhanism&lt;br /&gt;
&lt;br /&gt;
 RewriteEngine On&lt;br /&gt;
&lt;br /&gt;
Ümberkirjutust ennast teostab direktiiv RewriteRule. Näiteks suuname kõik veebiserverisse kasutajale priit tulevad päringud (http://www.zoo.tartu.ee/~priit) aadressile http://www.priit.ee&lt;br /&gt;
&lt;br /&gt;
 RewriteRule ^/~priit.+ http://www.priit.ee &lt;br /&gt;
&lt;br /&gt;
Direktiivi RewriteRule esimene argument on regulaaravaldis (^/~priit.+) ning kui sellega päring klapib, siis suunatakse brauser teise parameetriga näidatud URLile (http://www.priit.ee). Kasutaja brauseri Location real kirjutatakse URL paratamatult ümber.&lt;br /&gt;
&lt;br /&gt;
Direktiivi süntaks on järmine&lt;br /&gt;
&lt;br /&gt;
 RewriteRule regulaaravaldis asendus [võtmed]&lt;br /&gt;
&lt;br /&gt;
kus&lt;br /&gt;
&lt;br /&gt;
    * regulaararvaldisega kontrollitakse, kas URL klapib ümberkirjutamisreegliga, kusjuures URL on antud juhul see osa päringust, mis jääb paremale&lt;br /&gt;
      http://www.zoo.tartu.ee&#039;st, näite puhul /~priit.&lt;br /&gt;
    * kui URL klappis, siis asendatakse URL asendusega &#039;asendus&#039;&lt;br /&gt;
    * lisaks on mõnel juhul oluline kasutada võtmeid, mis kontrollivad ümberkirjutamise peensusi &lt;br /&gt;
&lt;br /&gt;
^ tähistab, et / peab olema URLi esimene sümbol ning peale priit &#039;t&#039; tähte võib tulla kuitahes palju mistahes sümboleid (.+). Muuseas, antud juhul suunatakse ümber näiteks päring http://www.zoo.tartu.ee/~priit-onvastmees.&lt;br /&gt;
&lt;br /&gt;
Lubatud on kasutada järjest mitmeid asendusi, mil neid rakendatakse järjest, tulemuseks on viimane tehtud ümberkirjutus. Järgmise asenduse regulaaravaldist klapitatakse eelmise ümberkirjutamisel tehtud tulemusega.&lt;br /&gt;
&lt;br /&gt;
Esitame näite sisemise ning välimise ümberkirjutamise kohta. Soovides vastuseks päringule http://www.zoo.tartu.ee/vana.html brauserisse saata lehe uus.html, kusjuures jättes brauseri Location reale esialgse teksti, so http://www.zoo.tartu.ee/vana.html, kasutage ümberkirjutamisreeglit&lt;br /&gt;
&lt;br /&gt;
 RewriteRule    ^vana\.html$  uus.html&lt;br /&gt;
&lt;br /&gt;
Sama, kuid brauseri Location real kajastub ümberkirjutus&lt;br /&gt;
&lt;br /&gt;
 RewriteRule    ^vana\.html$  uus.html [R]&lt;br /&gt;
&lt;br /&gt;
^vana\.html$ tähendab, et asendus toimub, kui päring oli täpselt vana.html, so algas v-ga (^) ja lõppes l-ga ($); punkt on regulaaravaldise erisümbol ja tuleb põgeda (\).&lt;br /&gt;
&lt;br /&gt;
Kirjutades järjest mitu ümberkirjutusreeglit ning soovides, et ümberkirjutamine lõppeks antud reegliga, tuleb reegli lõppu lisada võti L (last).&lt;br /&gt;
&lt;br /&gt;
 RewriteRule ^/~priit.+ http://www.priit.ee [R,L]&lt;br /&gt;
 RewriteRule ^/~nea.+   http://www.nea.ee   [R,L]&lt;br /&gt;
 RewriteRule ^/~inna.+  http://www.inna.ee  [R,L]&lt;br /&gt;
 RewriteRule ^/~mart.+  http://www.mart.ee  [R,L]&lt;br /&gt;
&lt;br /&gt;
Kui aga veebiserverit tõstetakse ühest masinast teise, oletame, et uus töötab, kuid kasutajate kodud on vanas, siis lisage uue konfi selline rida&lt;br /&gt;
&lt;br /&gt;
 RewriteRule   ^/~(.+)  http://vana.zoo.edu.ee/~$1  [R,L]&lt;br /&gt;
&lt;br /&gt;
Siin on kasutatud regulaaravaldist koos asendamisega. $1 asendatakse tekstiga, mis klappis kasutatud regulaaravaldises avaldisega (.+). Praktiliselt näiteks&lt;br /&gt;
&lt;br /&gt;
===Lisatingimuste kasutamine===&lt;br /&gt;
&lt;br /&gt;
Direktiiv RewriteRule teostab ümberkirjutusi niikuinii tingimusi kasutades regulaaravaldise abil. Peale selle saab seada direktiiviga RewriteCond lisatingimusi. Näiteks sõltuvalt serveri kellaajast, saadetakse brauserile üks või teine veeb&lt;br /&gt;
&lt;br /&gt;
 RewriteEngine on&lt;br /&gt;
 RewriteCond   %{TIME_HOUR}%{TIME_MIN} &amp;gt;0700&lt;br /&gt;
 RewriteCond   %{TIME_HOUR}%{TIME_MIN} &amp;lt;1900&lt;br /&gt;
 RewriteRule   ^index\.html$             paev.html&lt;br /&gt;
 &lt;br /&gt;
 RewriteRule   ^index\.html$             oo.html&lt;br /&gt;
&lt;br /&gt;
%{TIME_HOUR} asendatakse päringu sooritamise kellaaja tunniväärtusega. Oluline on kirjutada &amp;lt; ja 0700 järjest, kusjuues toimub leksikograafiline stringide, mitte arvude võrdlus.&lt;br /&gt;
&lt;br /&gt;
Kui brauser esitab veebiserverile päringu päeval, siis toimub ümberkirjutus index.html -&amp;gt; paev, kuna esimese direktiivi RewriteRule regulaaravaldis klappis URLiga ning kõik eelnenud lisatingimused olid täidetud. Seejärel klapitatakse teist RewriteRule&#039;i eelmise väljundiga, so paev.html - ei klapi ning midagi ei kirjutata ümber.&lt;br /&gt;
&lt;br /&gt;
Lisatingimusi on sobiv kasutada ka brauserite eristamiseks.&lt;br /&gt;
&lt;br /&gt;
 RewriteCond  %{HTTP_USER_AGENT} Mozilla/4*&lt;br /&gt;
 RewriteRule  ^leht.html$                leht.moz.html [L]&lt;br /&gt;
 &lt;br /&gt;
 RewriteCond  %{HTTP_USER_AGENT} Lynx.*&lt;br /&gt;
 RewriteRule  ^leht.html$                leht.lynx.html [L]&lt;br /&gt;
&lt;br /&gt;
Sõltuvalt päringu tegija aadressist, saab esitada erinevat veebi.&lt;br /&gt;
&lt;br /&gt;
 RewriteCond  %{REMOTE_ADDR}  ^192.168.1.3$ &lt;br /&gt;
 RewriteRule  ^leht.html$      192.168.1.3.html [L]&lt;br /&gt;
&lt;br /&gt;
===Ümberkirjutusalus===&lt;br /&gt;
&lt;br /&gt;
Kui te tegutsete sügavamal URLi-struktuuri sees, kasutage RewriteRule&#039;i juurika ümbernimetamiseks direktiivi RewriteBase. Näiteks kirjutatakse URL http://www.zoo.tartu.ee/~priit/lemmikud/hobused.html ümber URLiks http://www.zoo.tartu.ee/~priit/lemmikud/kabjaksed.html&lt;br /&gt;
&lt;br /&gt;
 RewriteBase   /~priit/lemmikud&lt;br /&gt;
 RewriteRule   ^hobused.html$  kabjaksed.html &lt;br /&gt;
&lt;br /&gt;
===Ümberkirjutustabel===&lt;br /&gt;
&lt;br /&gt;
Esitatud päringu juhuslikult valitud URLile ümbersuunamiseks on sobiv kasutada direktiivi RewriteMap. RewriteMap pakub võimaluse salvestada tekstifaili hulga URLe, mille poole saab ümberkirjutusreeglist pöörduda. Näiteks loome olukorra, kus päringule http://www.zoo.tartu.ee/juhuslik vastatakse juhuslikult valitud veebilehega.&lt;br /&gt;
&lt;br /&gt;
Kirjeldame tabelikirjeldusfailis vl.txt juhuslike veebilehtede nimed&lt;br /&gt;
&lt;br /&gt;
 bash# cat /usr/local/apache/vl.txt&lt;br /&gt;
 veebilehed 1.html|2.html|3.html|4.html|5.html|6.html|7.html&lt;br /&gt;
&lt;br /&gt;
ning lisame veebiserveri konfiguratsioonifaili read&lt;br /&gt;
&lt;br /&gt;
 RewriteMap vl rnd:/usr/local/apache/vl.txt&lt;br /&gt;
 RewriteRule   ^/juhus$   /home/html/juhus/${vl:veebilehed|html.html}&lt;br /&gt;
&lt;br /&gt;
Ümberkirjutustabeli süntaks on selline&lt;br /&gt;
&lt;br /&gt;
RewriteMap tablelinimi tabelitüüp:tabelikirjeldusfail&lt;br /&gt;
&lt;br /&gt;
kus&lt;br /&gt;
&lt;br /&gt;
    * tabelinimi - on kooskõlas ümberkirjutusreeglis kasutatud nimega&lt;br /&gt;
    * tabelitüüp - rnd (random) näitab et&lt;br /&gt;
    * tabelikirjeldusfail - failis kirjeldatakse tabeli sisu, näiteks juhusliku puhul peab eraldama andmed |-ga (loogiline OR) &lt;br /&gt;
&lt;br /&gt;
Ümberkirjutusreegli asenduses kasutatud muutujat ${vl:veebilehed|html.html} väärtustatakse ümberkirjutustabeli vl võtme veeblilehed abil. Kui sellist ümberkirjutustabelit mingil põhjusel pole, on muutuja väärtus html.html.&lt;br /&gt;
&lt;br /&gt;
===Ümberkirjutuslogi===&lt;br /&gt;
&lt;br /&gt;
Ümberkirjutamise tööleseadmisel ning toimuvate ümberkirjutuste jälgimiseks saab kasutada direktiive RewriteLog ja RewriteLogLevel&lt;br /&gt;
&lt;br /&gt;
 RewriteLogLevel 3&lt;br /&gt;
 RewriteLog /var/log/apache/rewrite.log&lt;br /&gt;
&lt;br /&gt;
===Veebiserveri konfiguratsioonifaili lugemine===&lt;br /&gt;
&lt;br /&gt;
Lihtsamatel juhtudel pole see oluline, millises järjekorras veebiserver direktiivides esitatud reegleid kehtestab. Näiteks, kui konfiguratsioonifailis ei sisaldugi Location ja Files sektsioone, kuid soovides kasutada veebiseverit paindlikumalt, tuleb järjekorraga arvestada.&lt;br /&gt;
&lt;br /&gt;
Direktiivide puhul ei hooli Apache suurtest ja väikestest tähtedest, kuid parameetrite puhul on see tihti oluline.&lt;br /&gt;
&lt;br /&gt;
Eeldusel, et te paigutate kogu konfiguratsiooni ühte faili, sisalduvad seal kaks osa&lt;br /&gt;
&lt;br /&gt;
    * põhiosa - kirjeldatakse veebiserveri üldisi omadusi, näiteks millise kasutaja õigustes ta töötab&lt;br /&gt;
    * ressursside määrangud - kehtestatakse reeglid, kuidas veebiserver faile serveerib, näiteks käsitleb .php lõpulisi faile PHP skriptidena &lt;br /&gt;
&lt;br /&gt;
Üldosa direktiivide järjekord pole oluline, kui sama direktiiv on väärtustatud mitu korda, jääb kehtima viimane väärtus.&lt;br /&gt;
&lt;br /&gt;
Kui ressursside omadusi määratakse grupeerimisvahendite abil, siis sõltumata konfigureerimisfailis esinemise järjekorrast, loetakse neid sellises järjekorras: Directory, Files, Location&lt;br /&gt;
&lt;br /&gt;
Directory sees võivad olla kirjeldatud omakorda Files sektsioonid.&lt;br /&gt;
&lt;br /&gt;
Directory sees on lubatud kasutada järgmisi direktiive:&lt;br /&gt;
&lt;br /&gt;
    * DirectoryIndex&lt;br /&gt;
    * Options&lt;br /&gt;
    * Order, Allow, Deny&lt;br /&gt;
    * AllowOverride&lt;br /&gt;
    * AddHandler&lt;br /&gt;
    * AddType &lt;br /&gt;
&lt;br /&gt;
Files sektsioonis on lubatud kasutada praktiliselt samasid direktiive, mida sektsioonis Directory eeldusel, et neid on mõistlik rakendada failidele. Ilmselt ei saa kasutada näiteks direktiivi DirectoryIndex, küll aga näiteks Allow ja Deny.&lt;br /&gt;
&lt;br /&gt;
Location sektsioonis on lubatud kasutada praktiliselt samasid direktiive, mida sektsioonis Directory. Kuna Locationit rakedatakse kõige viimasena, siis ei saa seal näiteks kasutada Options direktiivi, küll aga näiteks Allow ja Deny&#039;id.&lt;br /&gt;
&lt;br /&gt;
===Veebiserveri turvalisus===&lt;br /&gt;
&lt;br /&gt;
Veebiserveri kasutamisel arvestage, et iseenesest on veebiserver programm, mis teeb teie arvuti failid kättesaadavaks HTTP protokolli kasutavaile klientidele, so brauseritele.&lt;br /&gt;
&lt;br /&gt;
Kuigi veebiserver tuleb käivitada juurkasutaja õigustes, toimetab ta edasi konfiguratsioonifailis näidatud kasutajana (User, Group direktiivid).&lt;br /&gt;
&lt;br /&gt;
Siiski, kui te kasutate konfiguratsioonifailis teatud kohtades IO ümbersuunamist, näiteks logimise juures, siis seda teeb Apache juurkasutajana.&lt;br /&gt;
&lt;br /&gt;
Vältimaks ebameeldivaid üllatusi, veenduge, et veebiserveri juurikas ning selle alla jäävad kataloogid on piisavalt kaitstud, so kasutajatel pole neisse kirjutamisõigust. Veebiserver (/usr/local/apache/bin/httpd) ja muud temaga seotud failid, näiteks rotatelogs, kuuluvad juurkasutajale ning on tavakasutajaile ning grupile others vaid käivitatavad. Tavaliselt piisab nende tingimuste täitmiseks anda käsud&lt;br /&gt;
&lt;br /&gt;
 bash# cd /usr/local/apache&lt;br /&gt;
 bash# chown 0 bin conf logs&lt;br /&gt;
 bash# chgrp 0  bin conf logs&lt;br /&gt;
 bash# chmod 755 bin conf logs&lt;br /&gt;
 &lt;br /&gt;
 bash# chown 0 /usr/local/apache/bin/httpd&lt;br /&gt;
 bash# chgrp 0 /usr/local/apache/bin/httpd&lt;br /&gt;
 bash# chmod 511 /usr/local/apache/bin/httpd&lt;br /&gt;
&lt;br /&gt;
Lisaks, mõelge järele, kas te peate kasutajaile lubama käivitada CGI skripte ja andmebaase ning otsustage millistel tingimustel. Samuti kataloogipõhine veebiserveri konfigureerimisvõimalus. Näiteks lubage kasutajatel CGI skripte tarvida ainult kataloogist    ~/public_html/cgi-bin&lt;br /&gt;
&lt;br /&gt;
 &amp;lt;Directory /usr/home/*/public_html/cgi-bin&amp;gt;&lt;br /&gt;
 AddHandler cgi-script .cgi&lt;br /&gt;
 Options +ExecCGI&lt;br /&gt;
 &amp;lt;/Directory&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Heal juhul saab veebiserveri tööleseadmise eel otsustada, milliste omadustega peab ta olema. Reeglina ei soovitata lihtsalt sisse kompileerida toetust, mida praktiliselt ei tarvitata. Näiteks, kui te olete kindel, et pole vajadust server-info ja server-status järele, siis jätke vastavad moodulid välja. Näidake seda Apache ./configure skripti juures vastavate võtmetega --disable-module=info --disable-module=status.&lt;br /&gt;
&lt;br /&gt;
===Virtuaalveebiserverid===&lt;br /&gt;
&lt;br /&gt;
Ühte ja sama Apache veebiserverit saab tööle seada nii, et ta serveerib erinevaid andmeid sõltuvalt millise nimega tema poole pöörduti. Asjakorraldust nimetatakse virtuaaseteks veebiserveriteks, kuna füüsiliselt on tegu ühe arvutiga, kuid külastajaile jäetakse mulje, et neid on mitu.&lt;br /&gt;
&lt;br /&gt;
Virtuaalseid veebiservereid on kolme sorti:&lt;br /&gt;
&lt;br /&gt;
    * pordipõhised - sõltuvalt külastaja poolt kastatud pordist serveeritakse erinevat veebi&lt;br /&gt;
    * IP-põhised - sõltuvalt külastaja poolt kasutatud IP aadressist serveeritakse erinevat veebi&lt;br /&gt;
    * nimepõhised - sõltuvalt külastaja poolt kasutatud DNSi nimest serveeritakse erinevat veebi; reeglina vastavad erinevad nimed samale IP aadressile so on kirjeldatud CNAMEdena &lt;br /&gt;
&lt;br /&gt;
Põhimõtteliselt on võimalik kasutada neid virtuaalservereid ka kombineeritult korraga.&lt;br /&gt;
&lt;br /&gt;
Erijuht virtuaalveebi serveerida on käivitada mitu eksemplari httpd servereid, iga oma konfiguratsiooniga. Kuna see võimalus on suhteliselt ebaefektiivne ning ei paku olulisi täiendavaid võimalusi, siis seda me ei käsitle.&lt;br /&gt;
&lt;br /&gt;
Virtuaalserveri sektsioonis (VirtualHost) saab kasutada paljusid direktiive, mida peaserveri puhul sh direktiive Options, Alias, Directory, Location, Files. Samuti direktiive, mis reguleerivad SSI, CGI, PHP, Emperli, ümberkirjutamise ja logi kasutamist. Kui direktiivi ei näidata, kasutataks põhikonfiguratsiooni väärtus, kui seal seda samuti pole, siis vaikeväärtust.&lt;br /&gt;
&lt;br /&gt;
===Pordipõhised virtuaalveebiserverid===&lt;br /&gt;
&lt;br /&gt;
Kasutamaks erinevaid veebiseveri konfiguratsioone sõltuvalt sellest, millisele pordile päring tuli, kasutage direktiive Listen ja VirtualHost. Näiteks teenindab veebiserveri konfiguratsioonifaili põhiosale vastav server kõiki päringuid va neid, mis on suunatud aadressi 193.40.50.1 (www.zoo.edu.ee) pordile 8080 või pordile 8081. Viimast kahte teenindatakse vastaval VirtualHosti sektsioonile. Näiteks seame lisaks põhiosale tööle kaks alternatiivset dokumendijuurikat ja logi&lt;br /&gt;
&lt;br /&gt;
...&lt;br /&gt;
 Listen 80&lt;br /&gt;
 Listen 193.40.50.1:8080&lt;br /&gt;
 Listen 193.40.50.1:8081&lt;br /&gt;
 &amp;lt;VirtualHost 193.40.50.1:8080&amp;gt;&lt;br /&gt;
    ServerAdmin mart@zoo.edu.ee&lt;br /&gt;
    DocumentRoot /www/mardizoo&lt;br /&gt;
    ErrorLog /var/logs/mardizoo.error.log&lt;br /&gt;
    CustomLog /var/logs/mardizoo.log common&lt;br /&gt;
  &amp;lt;/VirtualHost&amp;gt;&lt;br /&gt;
 &lt;br /&gt;
 &amp;lt;VirtualHost 193.40.50.1:8081&amp;gt;&lt;br /&gt;
    ServerAdmin priit@zoo.edu.ee&lt;br /&gt;
    DocumentRoot /www/priiduzoo&lt;br /&gt;
    ErrorLog /var/logs/priituzoo.error.log&lt;br /&gt;
    CustomLog /var/logs/priiduzoo.log common&lt;br /&gt;
 &amp;lt;/VirtualHost&amp;gt;&lt;br /&gt;
&lt;br /&gt;
kusjuures peakonfiguratsiooni on lisatud vastavad Listen direktiivid.&lt;br /&gt;
&lt;br /&gt;
Brauseris tuleb päringud esitada vastavalt http://www.zoo.edu.ee:8080 või http://www.zoo.edu.ee:8081.&lt;br /&gt;
&lt;br /&gt;
===IP-põhised virtuaalveebiseverid===&lt;br /&gt;
&lt;br /&gt;
IP-põhised virtuaalveebiserverite kasutamisel on veebiserveril mitu IP aadressi. St masinal on mitu võrgukaarti või on kasutatud IP-aliasingut.&lt;br /&gt;
&lt;br /&gt;
IP-põhiste virtuaalveebiserverite kasutamisel näidake direktiivi VirtualHost juures ära IP aadress, ning samas sektsioonis kirjeldage kõnealuse veebiserveri omadused. Näiteks kui masinal on kaks võrgukaarti IP aadressidega 193.40.10.1 ning 193.40.50.1 kasutage sektsioone&lt;br /&gt;
&lt;br /&gt;
 &amp;lt;VirtualHost 193.40.50.1&amp;gt;&lt;br /&gt;
    ServerName www.zoo.tartu.ee&lt;br /&gt;
    ServerAdmin priit@zoo.tartu.ee&lt;br /&gt;
    DocumentRoot /www/tartuzoo&lt;br /&gt;
    ErrorLog /var/logs/tartuzoo.error.log&lt;br /&gt;
    CustomLog /var/logs/tartuzoo.log common&lt;br /&gt;
 &amp;lt;/VirtualHost&amp;gt;&lt;br /&gt;
 &lt;br /&gt;
 &amp;lt;VirtualHost 193.40.10.1&amp;gt;&lt;br /&gt;
    ServerName www.zoo.edu.ee&lt;br /&gt;
    ServerAdmin mart@zoo.edu.ee&lt;br /&gt;
     DocumentRoot /www/eduzoo&lt;br /&gt;
     ErrorLog /var/logs/eduzoo.error.log&lt;br /&gt;
     CustomLog /var/logs/eduzoo.log common&lt;br /&gt;
 &amp;lt;/VirtualHost&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Peakonfiguratsiooni osa järgi teenindatakse neid päringuid, millel ei leidu sobivat virtuaalserverit. Näiteks kui masinal on veel kolmas võrguseade ning päring siseneb selle aadressile.&lt;br /&gt;
&lt;br /&gt;
Virtuaalserveri direktiivi juurde võib kirjutada ka mitu IP aadressi, mispuhul kasutatakse kõnealust serverit neile kõigile tulnud päringutele vastamisel.&lt;br /&gt;
&lt;br /&gt;
===Nimepõhised virtuaalveebiserverid===&lt;br /&gt;
&lt;br /&gt;
Nimepõhisete virtuaalveebiserverite kasutamine eeldab, et ühele IP aadressile (193.40.50.1) on nimesüsteemis (DNS) seatud näiteks CNAMEiga vastavusse mitu domeenime (www.zoo.tartu.ee, post.zoo.tartu.ee).&lt;br /&gt;
&lt;br /&gt;
Kui soovite kasutada enam kui ühte veebiserverit, siis on soovitav kõik veebiserverid konfigureerida virtuaalseteks. Kusjuures põhiserverile ei vastagi DocumentRoot&#039;i.&lt;br /&gt;
&lt;br /&gt;
Nimepõhiste virtuaalveebiserverite kasutamine deklareeritakse peakonfiguratsiooni osas direktiiviga NameVirtualHost. Direktiivi järel näidatakse IP aadress, millele tulnud päringute teenindamisel kasutatakse sobivat VirtualHosti sektsiooni. Näiteks&lt;br /&gt;
&lt;br /&gt;
 NameVirtualHost 193.40.50.1&lt;br /&gt;
&lt;br /&gt;
puhul kasutatakse aadressile 193.40.50.1 saabunud päringute töötlemiseks sobiva domeeninimega (ServerName) VirtualHost sektsiooni.&lt;br /&gt;
&lt;br /&gt;
Erinevad virtuaalserverid kirjeldatakse direktiiviga VirtualHost, näiteks sarnase sektsiooniga&lt;br /&gt;
&lt;br /&gt;
 &amp;lt;VirtualHost 193.40.50.1&amp;gt;&lt;br /&gt;
     ServerName www.zoo.tartu.ee&lt;br /&gt;
     ServerAdmin priit@zoo.tartu.ee&lt;br /&gt;
     DocumentRoot /www&lt;br /&gt;
     ErrorLog /var/logs/www.error.log&lt;br /&gt;
     CustomLog /var/logs/www.log common&lt;br /&gt;
 &amp;lt;/VirtualHost&amp;gt;&lt;br /&gt;
 &lt;br /&gt;
 &amp;lt;VirtualHost 193.40.50.1&amp;gt;&lt;br /&gt;
     ServerName post.zoo.tartu.ee&lt;br /&gt;
     ServerAdmin post@zoo.tartu.ee&lt;br /&gt;
     DocumentRoot /post&lt;br /&gt;
     ErrorLog /var/logs/post.error.log&lt;br /&gt;
     CustomLog /var/logs/post.log common&lt;br /&gt;
 &amp;lt;/VirtualHost&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Kui serveril on mitu võrguaadressi, siis võib kasutada direktiivi NameVirtualHost mitu korda ning lisada vastavad sektsioonid, kuid lühem on asendada IP aadress täringa (*)&lt;br /&gt;
&lt;br /&gt;
 NameVirtualHost *&lt;br /&gt;
 &lt;br /&gt;
 &amp;lt;VirtualHost *&amp;gt;&lt;br /&gt;
     ServerName www.zoo.tartu.ee&lt;br /&gt;
     ServerAdmin priit@zoo.tartu.ee&lt;br /&gt;
     DocumentRoot /www&lt;br /&gt;
     ErrorLog /var/logs/www.error.log&lt;br /&gt;
     CustomLog /var/logs/www.log common&lt;br /&gt;
 &amp;lt;/VirtualHost&amp;gt;&lt;br /&gt;
 &lt;br /&gt;
 &amp;lt;VirtualHost *&amp;gt;&lt;br /&gt;
     ServerName post.zoo.tartu.ee&lt;br /&gt;
     ServerAdmin post@zoo.tartu.ee&lt;br /&gt;
     DocumentRoot /post&lt;br /&gt;
     ErrorLog /var/logs/post.error.log&lt;br /&gt;
     CustomLog /var/logs/post.log common&lt;br /&gt;
 &amp;lt;/VirtualHost&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Päringuid, mis saabuvad direktiiviga NameVirtualHost näidatud aadressile ei teenindata IP-põhiste sektsioonide ega peaserveri konfiguratsiooni alusel.&lt;br /&gt;
&lt;br /&gt;
===Kasulikud lisamaterjalid===&lt;/div&gt;</summary>
		<author><name>Triinu</name></author>
	</entry>
	<entry>
		<id>https://kuutorvaja.eenet.ee/w/index.php?title=Apache%27i_veebiserver&amp;diff=2841</id>
		<title>Apache&#039;i veebiserver</title>
		<link rel="alternate" type="text/html" href="https://kuutorvaja.eenet.ee/w/index.php?title=Apache%27i_veebiserver&amp;diff=2841"/>
		<updated>2007-01-26T14:06:05Z</updated>

		<summary type="html">&lt;p&gt;Triinu: /* Veebiserveri konfiguratsioonifaili lugemine */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;===Veebiserveri konfigureerimine ja käivitamine===&lt;br /&gt;
&lt;br /&gt;
Veebiserveri tööd juhib üks konfiguratsioonifail httpd.conf. Sellesse kirjutatake parameetrid üks reale, kusjuures # märgiga algavaid ridu ignoreeritakse. Ridu saab jätkata sisestades kurakallu (\) viimase sümbolina eelmisele reale, tegelikult eelviimasena, viimane on reavahetus :)&lt;br /&gt;
&lt;br /&gt;
Lihtsal juhul võiks olla konfiguratsioonifail selline&lt;br /&gt;
&lt;br /&gt;
 User nobody&lt;br /&gt;
 Group nobody&lt;br /&gt;
 ServerType standalone&lt;br /&gt;
 ServerName www.zoo.tartu.ee&lt;br /&gt;
 ServerRoot &amp;quot;/usr/local/apache&amp;quot;&lt;br /&gt;
 DocumentRoot &amp;quot;/html&amp;quot;&lt;br /&gt;
 DirectoryIndex index.html&lt;br /&gt;
 ErrorLog /var/log/apache/error.log&lt;br /&gt;
 Listen 80&lt;br /&gt;
 Options None&lt;br /&gt;
 &amp;lt;Directory /&amp;gt;&lt;br /&gt;
 AllowOverride None&lt;br /&gt;
 &amp;lt;/Directory&amp;gt;&lt;br /&gt;
&lt;br /&gt;
kus on kasutatud järgmisi direktiive&lt;br /&gt;
&lt;br /&gt;
    * User - kasutaja, kelle õigustes veebiserver töötab&lt;br /&gt;
    * Group - grupp, kelle õigustes veebiserver töötab&lt;br /&gt;
    * ServerType - serveri tüüp, tavaliselt standalone, so mitte inetd abil käivitatav&lt;br /&gt;
    * ServerName - millise nime server arvab endal olevat&lt;br /&gt;
    * ServerRoot - kataloog, mille all serveri programmid asuvad&lt;br /&gt;
    * DocumentRoot - veebifailid, mida külastajaile serveeritakse&lt;br /&gt;
    * DirectoryIndex - faili nimi, mis brauserisse saadetakse, kui ta küsib kataloogi eeldusel, et sellenimeline fail kataloogis leidub&lt;br /&gt;
    * ErrorLog - fail, kuhu saadetakse veateated; kataloog, kus see fail asub peab olema kindlasti olemas!&lt;br /&gt;
    * Listen - port, millel veebiserver ootab päringuid, kõigil võrguseadmetel&lt;br /&gt;
    * Options - väärtus None tagab, et külastajale näidatakse vaid neid veebilehti, mida ta nimeliselt küsib. &lt;br /&gt;
&lt;br /&gt;
Reeglina on veebiserverina töötaval arvutil nö tavaline nimi, näiteks kalake.zoo.tartu.ee ning nimeserveris on talle defineeritud lisaks ka mõned hüüdnimed (CNAMEga). Tavaliselt kasutatakse veebiserveri nime alguses kombinatsiooni www, kokku saab antud juhul www.zoo.tartu.ee, kuid veebiserveri nimi ei pea sugugi algama www-ga olles näiteks see sama kalake.zoo.tartu.ee.&lt;br /&gt;
&lt;br /&gt;
Konfiguratsioonifailis kasutatud kataloogid peavad süsteemis leiduma, toodud näites peavad nad kuuluma lähtudes turvakaalutlustest juurkasutajale; samuti nendest kataloogidest ülevalpool asuvad kataloogid.&lt;br /&gt;
&lt;br /&gt;
Reeglina on süsteemis vaikimisi olemas mitteprivilegeeritud kasutaja nobody grupiga nobody. Võib kasutada seda või luua spetsiaalne kasutaja, näiteks apache grupiga veeb. Veebiserveri mittekäivitumise põhjuseks on tihtipeale vastavate kasutajate puudumine süsteemis.&lt;br /&gt;
&lt;br /&gt;
Näidates võrguseadme nime, vastatakse ainult sellelt seadmelt tulevaile päringutele, näiteks &#039;Listen 193.40.10.1 80&#039;.&lt;br /&gt;
&lt;br /&gt;
===Sektsioon===&lt;br /&gt;
&lt;br /&gt;
 &amp;lt;Directory /&amp;gt;&lt;br /&gt;
 AllowOverride None&lt;br /&gt;
 &amp;lt;/Directory&amp;gt;&lt;br /&gt;
&lt;br /&gt;
tähendab, et kataloogides pole täiendavate vahenditega õigust veebiserveri konfiguratsiooni täpsustada.&lt;br /&gt;
&lt;br /&gt;
Kuigi teatud parameetrite järjekord konfiguratsioonifailis ei ole tähtis, jääb kehtima parameetrile viimasena omistatud väärtus.&lt;br /&gt;
Käivitamine&lt;br /&gt;
&lt;br /&gt;
Veebiserver käivitatakse ja peatatakse käsuga apachectl&lt;br /&gt;
&lt;br /&gt;
 bash# apachectl start&lt;br /&gt;
&lt;br /&gt;
Peatamine toimub käsuga stop&lt;br /&gt;
&lt;br /&gt;
 bash# apachectl stop&lt;br /&gt;
&lt;br /&gt;
Peale konfiguratsioonifaili muutmist kehtestuvad muutused serveri taaskäivitamisel soovitavalt käsuga graceful, või restart&lt;br /&gt;
&lt;br /&gt;
 bash# apachectl graceful&lt;br /&gt;
&lt;br /&gt;
Veebiserver tuleb käivitada juurkasutajaõigustes, kuid ta töötab konfiguratsioonifailis näidatud User ja Group kasutajana. See tähendab, et failisüsteemi osad, mida soovitakse veebi näidata peavad olema vastavatele UNIXi kasutajatele nähtavad. Tavaliselt on nende failide kasutajagrupile other antud lugemisõigus.&lt;br /&gt;
&lt;br /&gt;
Töötavast veebiserverist annab tunnistust see, kui süsteemi protsessitabelis on httpd deemoni nimi, isegi mitu&lt;br /&gt;
&lt;br /&gt;
 bash# ps auxw | grep httpd&lt;br /&gt;
 root   30692  0.0  5.4  4236 3288  ??  Ss    4:39PM   0:00.16 /usr/local/apache/bin/httpd&lt;br /&gt;
 nobody 30840  0.0  5.5  4272 3324  ??  I     5:52PM   0:00.00 /usr/local/apache/bin/httpd&lt;br /&gt;
 nobody 30841  0.0  5.5  4272 3324  ??  I     5:52PM   0:00.00 /usr/local/apache/bin/httpd&lt;br /&gt;
 nobody 30842  0.0  5.5  4272 3324  ??  I     5:52PM   0:00.00 /usr/local/apache/bin/httpd&lt;br /&gt;
 nobody 30843  0.0  5.4  4248 3296  ??  I     5:52PM   0:00.00 /usr/local/apache/bin/httpd&lt;br /&gt;
 nobody 30844  0.0  5.4  4248 3296  ??  I     5:52PM   0:00.00 /usr/local/apache/bin/httpd&lt;br /&gt;
 nobody 30845  0.0  5.4  4256 3300  ??  I     5:52PM   0:00.00 /usr/local/apache/bin/httpd&lt;br /&gt;
&lt;br /&gt;
Aga veel parem kinnitus on, kui olemaks näitega kooskõlas päring http://www.zoo.edu.ee näitab veebilehte, so faili /html/index.html. Samuti saab antud näite rakendamisel näha kasutajate kodulehti eeldusel, et nad asuvad kataloogide ~/public_html all.&lt;br /&gt;
&lt;br /&gt;
Kui veebiserveri käivitamisel ilmneb raskusi, siis tasub uurida vealogi (/var/log/apache/error.log) sisu.&lt;br /&gt;
Automaatne käivitamine&lt;br /&gt;
&lt;br /&gt;
===Veebiressursside kasutusõigus===&lt;br /&gt;
&lt;br /&gt;
Veebiserveri konfigureerimisel on väga oluline näidata, mida vastuseks külastaja päringule tohib teha või saata või kas üldse külastajat teenindada.&lt;br /&gt;
&lt;br /&gt;
===Direktiiv Option===&lt;br /&gt;
&lt;br /&gt;
Direktiivi Options abil saab määratleda, mida kataloogis leiduvate failidega lubatakse teha. Näiteks määrates minimaalsed õigused parameetriga None, saab kataloogis sisalduvate failide poole pöörduda vaid nimeliselt; failide nimekirja ei näidata.&lt;br /&gt;
&lt;br /&gt;
 Options None&lt;br /&gt;
&lt;br /&gt;
===Muud võimalused:===&lt;br /&gt;
&lt;br /&gt;
    * FollowSymLinks - kui brauser esitatud päringus on failinimi viide, siis seda järgitakse vaatamata, kas viidatav fail kuulub samale kasutajale kui&lt;br /&gt;
      viide&lt;br /&gt;
    * SymLinksIfOwnerMatch - kui brauser esitatud päringus on failinimi viide, siis seda järgitakse juhul, kas viidatav fail kuulub samale kasutajale &lt;br /&gt;
      kellele viide&lt;br /&gt;
    * Indexes - näidatakse serveri kataloogi failide nimekirja kui DirectoryIndexis näidatud faile ei leitud&lt;br /&gt;
    * ExecCGI - CGI skriptide kasutamiseks&lt;br /&gt;
    * Includes - SSI failide kasutamiseks&lt;br /&gt;
    * IncludesNOEXEC - SSI failide kasutamiseks, va #exec ja CGI skriptide #include&lt;br /&gt;
    * All - kõik eelnimetatu on lubatud &lt;br /&gt;
&lt;br /&gt;
Korraga võib määratleda ka mitu parameetrit, eraldades nad üksteisest tühikuga.&lt;br /&gt;
&lt;br /&gt;
Kui konfiguratsioonifailis kasutada mitmel Options direktiivi, jääb kehtima viimane. Lisades parameetri algusesse + või - märgi, lisatakse või eemaldatakse vastav toime. Näiteks kasutades direktiive&lt;br /&gt;
&lt;br /&gt;
 Options Indexes Includes FollowSymLinks&lt;br /&gt;
 Options -FollowSymLinks&lt;br /&gt;
&lt;br /&gt;
on toime samaväärne avaldisega&lt;br /&gt;
&lt;br /&gt;
 Options Indexes Includes&lt;br /&gt;
&lt;br /&gt;
Direktiivi Options vaikeväärtus on All.&lt;br /&gt;
&lt;br /&gt;
===Direktiivid Allow, Deny ja Order===&lt;br /&gt;
&lt;br /&gt;
Direktiividega Allow, Deny ning Order abil saab kehtestada, millistelt domeenidelt tulevaid päringuid teenidatakse. Orderi abil seatakse, millises järjekorras kontroll toimub, kusjuures rakendatakse viimast reeglit, millega külastaja domeeninimi klapib. Kui ükski reegel ei klapi, toimitakse vaikimisi nagu viimane Orderi parameeter näitab. Näiteks sellise sektsiooni puhul&lt;br /&gt;
&lt;br /&gt;
 Order Deny,Allow&lt;br /&gt;
 Deny from all&lt;br /&gt;
 Allow from zoo.tartu.ee&lt;br /&gt;
&lt;br /&gt;
Päringut domeenist zoo.tartu.ee teenindatakse, esimene reegel (Deny) keelab kõik, kuid teine (Allow) lubab domeeni zoo.tartu.ee. Kui Order oleks vastupidi, siis lubaks esimene reegel (Allow) zoo.tartu.ee, kuid kehtima jääks viimane reegel (Deny). Reeglite järjekord failis ei loe, kuna selle määrab Order.&lt;br /&gt;
&lt;br /&gt;
Järgmises näites on lubatud päringud vaid tartu.ee domeenist, va alamdomeen zoo.tartu.ee&lt;br /&gt;
&lt;br /&gt;
 Order Allow,Deny&lt;br /&gt;
 Allow from tartu.ee&lt;br /&gt;
 Deny from zoo.tartu.ee&lt;br /&gt;
&lt;br /&gt;
Tõepoolest, päringut foo.tartu.ee domeenist teenindatakse kuna ta klapib esimese (Allow) reegliga, mis lubab ning teisega, mis keelab mitte. Päringuid muudest domeenidest keelatakse, kuna nad ei klapi kummagi reegliga ning vaikimisi rakendatakse viimast Orderi parameetrit - Deny.&lt;br /&gt;
&lt;br /&gt;
Order, Deny ja Allow direktiive saab kasutada vaid direktiivi Directory sees ning Deny ja Allow tuleb eraldada ainult täpselt ühe komaga!&lt;br /&gt;
&lt;br /&gt;
===Veebiressursside grupeerimisvahendid===&lt;br /&gt;
&lt;br /&gt;
Veebiserveri kasutusõigust ning teisi omadusi reguleerivaid parameetreid saab grupeerida järgmiste direktiividega&lt;br /&gt;
&lt;br /&gt;
    * Directory - kataloogis ning selle alla jäävate alamkataloogides sisalduvate failide grupeerimiseks&lt;br /&gt;
    * Files - faili nimede järgi failide grupeerimiseks&lt;br /&gt;
    * Location - URLi ning selle alla jäävate URLide grupeerimiseks &lt;br /&gt;
&lt;br /&gt;
Sellistele gruppidele saab rakendada korraga samu määratlusi, näiteks Option parameetriga.&lt;br /&gt;
&lt;br /&gt;
===Directory direktiiv===&lt;br /&gt;
&lt;br /&gt;
Directory abil saab määrata näidatud kataloogi alla jäävatele failidele ühesuguseid omadusi. Näiteks kehtestame, et kataloogi /html/veeb/kalamaja alla jäävates kataloogides käsitletakse DirectoryIndexina faile index.html ja index.htm&lt;br /&gt;
&lt;br /&gt;
 &amp;lt;Directory /html/veeb/kalamaja&amp;gt;&lt;br /&gt;
 DirectoryIndex index.html index.htm&lt;br /&gt;
 &amp;lt;/Directory&amp;gt;&lt;br /&gt;
&lt;br /&gt;
===Files direktiiv===&lt;br /&gt;
&lt;br /&gt;
Sarnaselt Directory&#039;le saab kehtestada näidatud regulaaravaldisega klappivate failinimedega failidele ühesuguseid omadusi. Näiteks kehtestame, et failides, mille nimi algab tähtedega &amp;quot;e_&amp;quot; ja lõpeb .html-ga, tohivad sisaldada Embperli konstruktsioone&lt;br /&gt;
&lt;br /&gt;
 &amp;lt;Files ~ &amp;quot;^e_.*\.html$&amp;quot;&amp;gt;&lt;br /&gt;
 Options +ExecCGI&lt;br /&gt;
 SetHandler perl-script&lt;br /&gt;
 PerlHandler HTML::Embperl&lt;br /&gt;
 &amp;lt;/Files&amp;gt;&lt;br /&gt;
&lt;br /&gt;
===Location direktiiv===&lt;br /&gt;
&lt;br /&gt;
Sarnaselt Directory direktiivile saab Locationiga kehtestada osale veebikohale samasuguseid omadusi. Location mõjub mitte kataloogistruktuuri, vaid URLi mõttes hulgale elementidele. Näiteks kehtestame, et URL&#039;ist http://kalake.zoo.edu.ee/hobused edasi tohib näha kataloogide nimekirja&lt;br /&gt;
&lt;br /&gt;
 &amp;lt;Location /hobused&amp;gt;&lt;br /&gt;
 Options Indexes&lt;br /&gt;
 &amp;lt;/Location&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Tavaliselt piisab Directory kasutamisest, kuid kuna veebiserveri kataloogi-ja URLihierarhia ei pruugi alati kokku langeda, siis on sellest vahel abi.&lt;br /&gt;
&lt;br /&gt;
===Kataloogipõhine veebiserveri konfigureerimine===&lt;br /&gt;
&lt;br /&gt;
Veebiserveri põhikonfiguratsioonifailis näidatud väärtusi saab iga kataloogi jaoks täpsustavalt määrata kataloogis sisalduva konfiguratsiooni .htaccess faili abil. Selle faili nimi on määratud põhikonfiguratsioonifailis direktiiviga AccessFileName, mis peab esinema Directory sees. Faili süntaks on sama, mis põhikonfiguratsioonifailil. Seda, milliseid omadusi on ludatud .htaccess failiga täpsustada, näitab põhikonfiguratsioonifailis direktiiv AllowOverride; järgmistele parameeritele vastab voli muuta toodud parameetreid&lt;br /&gt;
&lt;br /&gt;
    * AuthConfig - AuthGroupFile, AuthName, AuthType, AuthUserFile, Require jne&lt;br /&gt;
    * FileInfo - AddEncoding, AddLanguage, AddType, DefaultType, ErrorDocument jne&lt;br /&gt;
    * Indexes - DirectoryIndex, AddDescription, AddIcon, AddIconByEncoding, AddIconByType, DefaultIcon, DirectoryIndex, FancyIndexing, HeaderName,&lt;br /&gt;
      IndexIgnore, IndexOptions, ReadmeName jne&lt;br /&gt;
    * Limit - Order, Allow, Deny&lt;br /&gt;
    * Options - Options, XBitHack&lt;br /&gt;
    * None - mitte midagi&lt;br /&gt;
    * All - kõik nimetatud &lt;br /&gt;
&lt;br /&gt;
Vaikimisi toimib parameeter All. Kui ei soovita lasta kasutajatel veebiserverit konfigureerida, siis kasutage peale veebiserveri põhiosa direktiivi&lt;br /&gt;
&lt;br /&gt;
 AllowOverride None&lt;br /&gt;
&lt;br /&gt;
.htaccess failis tohib kasutada direktiivi Files, aga ei saa kasutada Diectory või Location.&lt;br /&gt;
&lt;br /&gt;
Tavaliselt on ohutu ning kasutajaile piisav&lt;br /&gt;
&lt;br /&gt;
 AllowOverride Indexes AuthConfig&lt;br /&gt;
&lt;br /&gt;
===Alias===&lt;br /&gt;
&lt;br /&gt;
Direktiiv Alias võimaldab muuta veebi failile kataloogistruktuuri vastavust URLi struktuurile. Näiteks olgu kataloogis /html/veeb/hobused/2000/tyrinaitus/ehola_talu failid ning soovime neile ligi pääseda URLiga http://www.zoo.tartu.ee/ehola_talu. Kasutame sellist Aliast&lt;br /&gt;
&lt;br /&gt;
 Alias /ehola_talu/ /html/veeb/hobused/2000/tyrinaitus/ehola_talu/&lt;br /&gt;
&lt;br /&gt;
Antud juhul laheneb päring http://www.zoo.tartu.ee/ehola_talu/, kuid mitte http://www.zoo.tartu.ee/ehola_talu.&lt;br /&gt;
&lt;br /&gt;
Lisaks saab Aliasega kaasata veebi faile ning katalooge, mis asuvad failisüsteemi mõttes väljaspool DocumentRootu.&lt;br /&gt;
&lt;br /&gt;
 Alias /valdek/ /html/valdek/veeb/&lt;br /&gt;
&lt;br /&gt;
Aliase süntaks on järgmine&lt;br /&gt;
&lt;br /&gt;
 Alias URLi-tee kataloogi-tee&lt;br /&gt;
&lt;br /&gt;
kus&lt;br /&gt;
&lt;br /&gt;
    * URLi-tee on osa URList, mis jääb peale serverinimi osa, näiteks http://www.zoo.tartu.ee/ehola_talu/ puhul /ehola_talu/&lt;br /&gt;
    * kataloogi-tee on vastava kataloogi nimi &lt;br /&gt;
&lt;br /&gt;
Aliasi saab kasutada peakonfiguratsioonifailis või võrdväärsetes kohtades, näiteks VirtualHost sektsioonis. Aliaste kasutamisel tuleb tavaliselt kasutada kataloogi tee&#039;le vastavaid Directory direktiive, muutmaks sobivaks veebiosa kasutusõigused. Aliased loetakse läbi enne Directory sektsioone.&lt;br /&gt;
&lt;br /&gt;
Aliase kasutamisel tuleb tähele panna, et URLi tee asendatakse igal juhul kataloogiteega. Kas sel juhul, kui päring on pikem, kooskõlas kasutatud näitega päringu http://www.zoo.tartu.ee/ehola_talu/ratsahobused/piiker.html puhul esitatakse fail /html/veeb/hobused/2000/tyrinaitus/ehola_talu/ratsahobused/piiker.html.&lt;br /&gt;
&lt;br /&gt;
Soovides teha paindlikumaid nö ümberkirjutusi, kasutage mod_rewrite&#039;i võimalusi.&lt;br /&gt;
&lt;br /&gt;
===CGI===&lt;br /&gt;
&lt;br /&gt;
CGI kasutamiseks lisage konfiguratsioonifaili rida&lt;br /&gt;
&lt;br /&gt;
 AddHandler cgi-script .cgi .pl&lt;br /&gt;
&lt;br /&gt;
Tulemusena püüab veebiserver käivitada kõiki serveeritavaid .cgi ja .pl lõpuliste nimedega faile, eeldusel, et failile rakendub Optioni parameeter ExecCGI. Käivitamisel tekkiv programmiväljund saadetakse brauserisse, kusjuures see peab algama tuntud Content-type&#039;iga, näiteks text/html. Seda võib teha näiteks Directory abil; kehtestame, et kõikjal veebi faile sisaldavas kataloogis /html/veeb/suhtleja ja selle all asuvad .cgi ja .pl lõpuliste nimedega failid on käivitatavad&lt;br /&gt;
&lt;br /&gt;
 &amp;lt;Directory /suhtleja&amp;gt;&lt;br /&gt;
 Options ExecCGI&lt;br /&gt;
 &amp;lt;/Directory&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Soovides näidata, et vaatamata failinimele tuleb käsitleda faili CGI skriptina, kasutage ScriptAlias direktiivi. Tüüpiliselt määratletakse URLi http://kalake.zoo.tartu.ee/cgi-bin/&#039;le vastavad failid skriptideks&lt;br /&gt;
&lt;br /&gt;
 ScriptAlias /cgi-bin/ /html/veeb/cgi-bin/&lt;br /&gt;
&lt;br /&gt;
Tulemusena, näiteks päringu http://kalake.zoo.tartu.ee/cgi-bin/kasutajatenimikiri.sh puhul käivitatakse fail /html/veeb/cgi-bin/kasutajatenimekiri.sh.&lt;br /&gt;
&lt;br /&gt;
===SSI===&lt;br /&gt;
&lt;br /&gt;
SSI (Server Sides Includes) tehnika võimaldab sisestada brauseri päringus nõutud faili koosseisu muude failide sisu.&lt;br /&gt;
&lt;br /&gt;
SSI kasutamiseks lisage konfiguratsioonifaili rida&lt;br /&gt;
&lt;br /&gt;
 AddType text/html .shtml&lt;br /&gt;
 AddHandler server-parsed .shtml&lt;br /&gt;
&lt;br /&gt;
ning näidake näiteks direktiivide Directory ja Options parameetri Includes abil, milliseid faile tohib server käsitleda SSIdena. Näiteks kehtestame, et kataloogi /html/veeb/uudised all kasutatakse SSId&lt;br /&gt;
&lt;br /&gt;
 &amp;lt;Directory /html/veeb/uudised&amp;lt;&amp;gt;&lt;br /&gt;
 Options IncludesNOEXEC&lt;br /&gt;
 &amp;lt;/Directory&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Tulemusena saab failides, mille nime lõpus on .shtml, kasutada SSI konstruktsioone, va #exec ja CGI skriptide #include.&lt;br /&gt;
&lt;br /&gt;
===Embperl===&lt;br /&gt;
&lt;br /&gt;
Embperl on tehnika, mis võimaldab sisestada HTML koodi sisse Perli konstruktsioone. Selle võimaluse kasutamiseks lisage konfiguratsioonifaili&lt;br /&gt;
&lt;br /&gt;
 &amp;lt;Files ~ &amp;quot;\.html$&amp;quot;&amp;gt;&lt;br /&gt;
 Options ExecCGI&lt;br /&gt;
 SetHandler perl-script&lt;br /&gt;
 PerlHandler HTML::Embperl&lt;br /&gt;
 &amp;lt;/Files&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Tulmusena lahendab veebiserver failides, mille nime lõpetab .html sisalduva Perli koodi.&lt;br /&gt;
&lt;br /&gt;
Muuseas, Embperli rakendamisel on veebiserver ka tavalise HTML süntaksi osas oluliselt rangem. Tüüpiliselt ei meeldi talle [# jne järgnevused, mida kasutatakse Embperli skriptide tähistamiseks. Et neid sümboleid siiski kasutada saada, esitage neid a la &amp;amp;#kood;, näiteks &amp;amp;#60;.&lt;br /&gt;
&lt;br /&gt;
===PHP===&lt;br /&gt;
&lt;br /&gt;
PHP on tehnika, mis võimaldab lisada HTML koodi sisse PHP keele konstruktsioone. Selle võimaluse kasutamiseks lisage konfiguratsioonifaili&lt;br /&gt;
&lt;br /&gt;
 AddType application/x-httpd-php .php&lt;br /&gt;
&lt;br /&gt;
Veebiserverisse konfigureeritud PHP omadusi saab näha PHP skriptiga&lt;br /&gt;
&lt;br /&gt;
 &amp;lt;?&lt;br /&gt;
 phpinfo();&lt;br /&gt;
 ?&amp;gt;&lt;br /&gt;
&lt;br /&gt;
===Serveri kasutajate kodulehed===&lt;br /&gt;
&lt;br /&gt;
Vaikimisi eeldab veebiserver, et näiteks URLile http://www.zoo.tartu.ee/~priit vastab süsteemi kasutaja priit kodukataloogis olev kataloog public_html. Selle kataloogi nime määrab direktiiv UserDir.&lt;br /&gt;
&lt;br /&gt;
===Veebi kaitsmine parooliga===&lt;br /&gt;
&lt;br /&gt;
Apache pakub vahendid veebistruktuuri kaitsmiseks parooliga. Konfiguratsioonifailis näidatakse ära, millist ressurssi kaitsta ning millist autentimissüsteemi kasutada.&lt;br /&gt;
&lt;br /&gt;
Kõige lihtsamal juhul tuleb programmiga htpasswd genereerida lubatud külastajate paroolifail, milles on kirjas kasutajanimed ning vastavad paroolid. See fail on reeglina erinev süsteemi paroolifailist, kus veebiserver töötab. Kui külastaja püüab siseneda kaitstud veebi, avaneb dialoog ning küsitakse tema kasutajanime ning parooli. Sobiva paari sisestamisel lubatakse külastaja veebile ligi, kusjuures kõnealust veebi saab kasutada kuni brauseri sulgemiseni.&lt;br /&gt;
&lt;br /&gt;
Näiteks kaitseme kataloogistruktuuri /html/salajane kirjeldatud paroolikontrolliga&lt;br /&gt;
&lt;br /&gt;
 &amp;lt;Directory /html/salajane&amp;gt;&lt;br /&gt;
 AuthUserFile /usr/local/apache/conf/salajane.paroolifail&lt;br /&gt;
 AuthType Basic&lt;br /&gt;
 AuthName Salajane&lt;br /&gt;
 require valid-user&lt;br /&gt;
 &amp;lt;/Directory&amp;gt;&lt;br /&gt;
&lt;br /&gt;
kus on kasutatud direktiive:&lt;br /&gt;
&lt;br /&gt;
    * AuthUserFile - paroolifailinimi, /usr/local/apache/conf/salajane.paroolifail&lt;br /&gt;
    * AuthType - millist tüüpi autentimisega on tegemist, antud juhul Basic&lt;br /&gt;
    * AuthName - parameetri väärtust näidatakse aknas, kuhu kasutaja sisestab oma veebi kasutajanime ja parooli; sama veebi piires saab sama kasutajanimega&lt;br /&gt;
      seostada erinevaid paroole, mistõttu peab külastaja saama teada, millist parooli konkreetsel juhul tarvitada&lt;br /&gt;
    * require valid-user - sellele ressursile lastakse ligi vaid peale edukat autentimist &lt;br /&gt;
&lt;br /&gt;
Sobiv paroolifail moodustatakse programmiga htpasswd&lt;br /&gt;
&lt;br /&gt;
 bash$ htpasswd -b -c -m salajane.paroolifail priit priiduparool&lt;br /&gt;
&lt;br /&gt;
kus&lt;br /&gt;
&lt;br /&gt;
   1. -b kasutaja parooliks loetakse käsurea viimane sõna (priiduparool)&lt;br /&gt;
   2. -c seda võtit tuleb kasutada vaid siis, kui paroolifaili veel ei eksisteeri; edaspidi peab selle võtme ära jätma, sest muidu kustutatakse olemasoleva&lt;br /&gt;
      paroolifaili sisu&lt;br /&gt;
   3. -m kasutada MD5 krüptimist; jättes selle võtme kirjutamata tekitatakse CRYPT proolid&lt;br /&gt;
   4. järgnevad paroolifaili nimi (salajane.paroolifail) ja kasutajanimi (priit) &lt;br /&gt;
&lt;br /&gt;
Tundub, et peale Directory, saab autentimist kasutada ka Location sektsioonis, mis on veebi suhtes veel asjakohasem.&lt;br /&gt;
&lt;br /&gt;
Paroolifail peab olema loetav sellele kasutajale, kelle õigustes veebiserver töötab (näiteks nobody) ning soovitavalt mitte olema veebiga samas kataloogistruktuuris.&lt;br /&gt;
&lt;br /&gt;
===Logi===&lt;br /&gt;
&lt;br /&gt;
Apache veebiserveriga saab logida tekstifaili erinevatel tingimustel toimunud päringuid ning neid logifaile automaatselt roteerida. Logida saab paraleelselt ka näidatud tingimustele erinevates formaatides erinevatesse failidesse.&lt;br /&gt;
&lt;br /&gt;
Direktiiviga LogFormat kirjeldatakse mida logitakse. Tüüpiliselt defineeritakse formaat nimega tavaline&lt;br /&gt;
&lt;br /&gt;
 LogFormat &amp;quot;%h %l %u %t \&amp;quot;%r\&amp;quot; %&amp;gt;s %b&amp;quot; tavaline&lt;br /&gt;
&lt;br /&gt;
kus&lt;br /&gt;
&lt;br /&gt;
    * %h - maisinanimi, kust päring esitati&lt;br /&gt;
    * %l - kasutajanimi, kes päringu esitas eeldusel, et IdentityCheck tomib; tavaliselt see väli jääb tühjaks, kuna IdentityCheck&#039;i kasutamine võtab&lt;br /&gt;
      tublisti veebi kiirust alla&lt;br /&gt;
    * %u - kui veebiserveri ressurss nõudis autentimist, siis kasutatud kasutajanimi&lt;br /&gt;
    * %t - päringu esitamise aeg&lt;br /&gt;
    * \&amp;quot;%r\&amp;quot; - jutumärkides esitatud päringu esimene rida&lt;br /&gt;
    * %&amp;gt;s - päringule vastuse olek (ingl. k. status)&lt;br /&gt;
    * %b - päringu vastuse maht baitides&lt;br /&gt;
    * tavaline - logiformaadi nimi &lt;br /&gt;
&lt;br /&gt;
Logimine ise toimub direktiiviga CustomLog, näiteks logime, kasutades logiformaati tavaline, faili /var/log/apache/tavaline.log&lt;br /&gt;
&lt;br /&gt;
 CustomLog /var/log/apache/tavaline.log tavaline&lt;br /&gt;
&lt;br /&gt;
Soovides logifaili automaatselt roteerida, kasutage veebiserveriga kaasas olevat programmi rotatelogs. Näiteks moodustame iga nädal uue logi&lt;br /&gt;
&lt;br /&gt;
 CustomLog &amp;quot;|/usr/local/apache/bin/rotatelogs /var/log/apache/tavaline.log 604800&amp;quot; common&lt;br /&gt;
&lt;br /&gt;
Logi faili nimi moodustatakse lisades failinime lõppu aja sekundites, mis on möödunud UNIXi ajastu algusest, so 1970. 1. jaanuar kell 00:00 hommikul.&lt;br /&gt;
&lt;br /&gt;
===Vealogi===&lt;br /&gt;
&lt;br /&gt;
Vealogisse salvestatakse serveri töös toimunud vead, sh näiteks päringud puuduvatele failidele. Logitaset saab reguleerida direktiiviga LogLevel, soovitatakse taset warn&lt;br /&gt;
&lt;br /&gt;
 LogLevel warn&lt;br /&gt;
&lt;br /&gt;
Direktiiviga ErrorLog näidatakse, kuhu logi salvestada&lt;br /&gt;
&lt;br /&gt;
 ErrorLog /var/log/apache/error.log&lt;br /&gt;
&lt;br /&gt;
Logianalüsaatorid&lt;br /&gt;
&lt;br /&gt;
Apache veebiserveri logi analüüsiks sobib kasutada näiteks programmi Webalizer.&lt;br /&gt;
&lt;br /&gt;
===Veebiserveri staatus ja info===&lt;br /&gt;
&lt;br /&gt;
Eeldusel, et veebiserverisse on sissekompilleeritud vastavad moodulid võtmetega --enable-module=status ja --enable-moudule=info, saab näha veebiserveri konfiguratsiooni (info) ning parasjagu olevat seisu (status).&lt;br /&gt;
&lt;br /&gt;
Näidates konfiguratsioonifailis direktiivi ExtendedStatus parameetriks &amp;quot;On&amp;quot;, esitatakse staatus põhjalikumalt.&lt;br /&gt;
&lt;br /&gt;
Nende veebiserveri omaduste nägemiseks peab sisalduma konfiguratsioonifailis kaks sektsiooni&lt;br /&gt;
&lt;br /&gt;
URLi http://www.zoo.tartu.ee/status-info jaoks&lt;br /&gt;
&lt;br /&gt;
 &amp;lt;Location /server-info&amp;gt;&lt;br /&gt;
     SetHandler server-info&lt;br /&gt;
     Order deny,allow&lt;br /&gt;
     Deny from all&lt;br /&gt;
     Allow from .zoo.tartu.ee&lt;br /&gt;
 &amp;lt;/Location&amp;gt;&lt;br /&gt;
&lt;br /&gt;
URLi http://www.zoo.tartu.ee/server-info jaoks&lt;br /&gt;
&lt;br /&gt;
 &amp;lt;Location /server-status&amp;gt;&lt;br /&gt;
     SetHandler server-status&lt;br /&gt;
     Order deny,allow&lt;br /&gt;
     Deny from all&lt;br /&gt;
     Allow from .zoo.tartu.ee&lt;br /&gt;
 &amp;lt;/Location&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Mõlemas sektsioonis on kasutatud Deny ja Allow direktiive, piiramaks nende URLide külastamise õigust. Kuigi sealt midagi väga salajast ei paista, on külastama lubatud vaid zoo.tart.ee domeeni masinastest.&lt;br /&gt;
Veebi-indekseerijad&lt;br /&gt;
&lt;br /&gt;
Apache veebiserver ei sisalda indekseerimisvahendeid, so võimalusi luua serveeritavale veebile otsingumootorit. Küll aga sobib kasutada mõnda olemasolevat veebiindeksaatorit, näiteks Glimpse või HtDig.&lt;br /&gt;
&lt;br /&gt;
Hoopis teine probleem on kuidas kontrollida, mida tohivad teha teised otsingumootorid (tuntud kui robotid või nuhid) teie veebi külastades. Tüüpiliselt tuleb neid kontrollida, kuna nad võivad täita avalikke andmebaase kiiresti vananeva infoga või ebasoovitavalt teie serverit koormata.&lt;br /&gt;
&lt;br /&gt;
===URLi ümberkirjutamine===&lt;br /&gt;
&lt;br /&gt;
Ümberkirjutamise kasutamiseks on vaja mod_rewrite&#039;i toetus serverisse kompilleerida võtmega --enable-module=rewrite.&lt;br /&gt;
&lt;br /&gt;
See tehnika võimaldab suunata serverisse tulevad päringud ümber, jäädes sama serveri piiridesse või välja. Ümbersuunamisi saab konfigureerida peakonfiguratsioonifailist või .htaccess failist.&lt;br /&gt;
&lt;br /&gt;
Ümbersuunamisel saab kasutada tingimusi või teha seda juhuslikult.&lt;br /&gt;
&lt;br /&gt;
Tõenäoliselt on võimalik järgnevalt näidetena toodud tegevusi korraldada ka muude vahenditega, URLi ümberkirjutamine mod_rewrite&#039;ga on selleks üks käepärane vahend.&lt;br /&gt;
&lt;br /&gt;
Ümberkirjutuste tegemiseks tuleb esmalt aktiviseerida ümberkirjutusmehhanism&lt;br /&gt;
&lt;br /&gt;
 RewriteEngine On&lt;br /&gt;
&lt;br /&gt;
Ümberkirjutust ennast teostab direktiiv RewriteRule. Näiteks suuname kõik veebiserverisse kasutajale priit tulevad päringud (http://www.zoo.tartu.ee/~priit) aadressile http://www.priit.ee&lt;br /&gt;
&lt;br /&gt;
 RewriteRule ^/~priit.+ http://www.priit.ee &lt;br /&gt;
&lt;br /&gt;
Direktiivi RewriteRule esimene argument on regulaaravaldis (^/~priit.+) ning kui sellega päring klapib, siis suunatakse brauser teise parameetriga näidatud URLile (http://www.priit.ee). Kasutaja brauseri Location real kirjutatakse URL paratamatult ümber.&lt;br /&gt;
&lt;br /&gt;
Direktiivi süntaks on järmine&lt;br /&gt;
&lt;br /&gt;
 RewriteRule regulaaravaldis asendus [võtmed]&lt;br /&gt;
&lt;br /&gt;
kus&lt;br /&gt;
&lt;br /&gt;
    * regulaararvaldisega kontrollitakse, kas URL klapib ümberkirjutamisreegliga, kusjuures URL on antud juhul see osa päringust, mis jääb paremale&lt;br /&gt;
      http://www.zoo.tartu.ee&#039;st, näite puhul /~priit.&lt;br /&gt;
    * kui URL klappis, siis asendatakse URL asendusega &#039;asendus&#039;&lt;br /&gt;
    * lisaks on mõnel juhul oluline kasutada võtmeid, mis kontrollivad ümberkirjutamise peensusi &lt;br /&gt;
&lt;br /&gt;
^ tähistab, et / peab olema URLi esimene sümbol ning peale priit &#039;t&#039; tähte võib tulla kuitahes palju mistahes sümboleid (.+). Muuseas, antud juhul suunatakse ümber näiteks päring http://www.zoo.tartu.ee/~priit-onvastmees.&lt;br /&gt;
&lt;br /&gt;
Lubatud on kasutada järjest mitmeid asendusi, mil neid rakendatakse järjest, tulemuseks on viimane tehtud ümberkirjutus. Järgmise asenduse regulaaravaldist klapitatakse eelmise ümberkirjutamisel tehtud tulemusega.&lt;br /&gt;
&lt;br /&gt;
Esitame näite sisemise ning välimise ümberkirjutamise kohta. Soovides vastuseks päringule http://www.zoo.tartu.ee/vana.html brauserisse saata lehe uus.html, kusjuures jättes brauseri Location reale esialgse teksti, so http://www.zoo.tartu.ee/vana.html, kasutage ümberkirjutamisreeglit&lt;br /&gt;
&lt;br /&gt;
 RewriteRule    ^vana\.html$  uus.html&lt;br /&gt;
&lt;br /&gt;
Sama, kuid brauseri Location real kajastub ümberkirjutus&lt;br /&gt;
&lt;br /&gt;
 RewriteRule    ^vana\.html$  uus.html [R]&lt;br /&gt;
&lt;br /&gt;
^vana\.html$ tähendab, et asendus toimub, kui päring oli täpselt vana.html, so algas v-ga (^) ja lõppes l-ga ($); punkt on regulaaravaldise erisümbol ja tuleb põgeda (\).&lt;br /&gt;
&lt;br /&gt;
Kirjutades järjest mitu ümberkirjutusreeglit ning soovides, et ümberkirjutamine lõppeks antud reegliga, tuleb reegli lõppu lisada võti L (last).&lt;br /&gt;
&lt;br /&gt;
 RewriteRule ^/~priit.+ http://www.priit.ee [R,L]&lt;br /&gt;
 RewriteRule ^/~nea.+   http://www.nea.ee   [R,L]&lt;br /&gt;
 RewriteRule ^/~inna.+  http://www.inna.ee  [R,L]&lt;br /&gt;
 RewriteRule ^/~mart.+  http://www.mart.ee  [R,L]&lt;br /&gt;
&lt;br /&gt;
Kui aga veebiserverit tõstetakse ühest masinast teise, oletame, et uus töötab, kuid kasutajate kodud on vanas, siis lisage uue konfi selline rida&lt;br /&gt;
&lt;br /&gt;
 RewriteRule   ^/~(.+)  http://vana.zoo.edu.ee/~$1  [R,L]&lt;br /&gt;
&lt;br /&gt;
Siin on kasutatud regulaaravaldist koos asendamisega. $1 asendatakse tekstiga, mis klappis kasutatud regulaaravaldises avaldisega (.+). Praktiliselt näiteks&lt;br /&gt;
&lt;br /&gt;
===Lisatingimuste kasutamine===&lt;br /&gt;
&lt;br /&gt;
Direktiiv RewriteRule teostab ümberkirjutusi niikuinii tingimusi kasutades regulaaravaldise abil. Peale selle saab seada direktiiviga RewriteCond lisatingimusi. Näiteks sõltuvalt serveri kellaajast, saadetakse brauserile üks või teine veeb&lt;br /&gt;
&lt;br /&gt;
 RewriteEngine on&lt;br /&gt;
 RewriteCond   %{TIME_HOUR}%{TIME_MIN} &amp;gt;0700&lt;br /&gt;
 RewriteCond   %{TIME_HOUR}%{TIME_MIN} &amp;lt;1900&lt;br /&gt;
 RewriteRule   ^index\.html$             paev.html&lt;br /&gt;
 &lt;br /&gt;
 RewriteRule   ^index\.html$             oo.html&lt;br /&gt;
&lt;br /&gt;
%{TIME_HOUR} asendatakse päringu sooritamise kellaaja tunniväärtusega. Oluline on kirjutada &amp;lt; ja 0700 järjest, kusjuues toimub leksikograafiline stringide, mitte arvude võrdlus.&lt;br /&gt;
&lt;br /&gt;
Kui brauser esitab veebiserverile päringu päeval, siis toimub ümberkirjutus index.html -&amp;gt; paev, kuna esimese direktiivi RewriteRule regulaaravaldis klappis URLiga ning kõik eelnenud lisatingimused olid täidetud. Seejärel klapitatakse teist RewriteRule&#039;i eelmise väljundiga, so paev.html - ei klapi ning midagi ei kirjutata ümber.&lt;br /&gt;
&lt;br /&gt;
Lisatingimusi on sobiv kasutada ka brauserite eristamiseks.&lt;br /&gt;
&lt;br /&gt;
 RewriteCond  %{HTTP_USER_AGENT} Mozilla/4*&lt;br /&gt;
 RewriteRule  ^leht.html$                leht.moz.html [L]&lt;br /&gt;
 &lt;br /&gt;
 RewriteCond  %{HTTP_USER_AGENT} Lynx.*&lt;br /&gt;
 RewriteRule  ^leht.html$                leht.lynx.html [L]&lt;br /&gt;
&lt;br /&gt;
Sõltuvalt päringu tegija aadressist, saab esitada erinevat veebi.&lt;br /&gt;
&lt;br /&gt;
 RewriteCond  %{REMOTE_ADDR}  ^192.168.1.3$ &lt;br /&gt;
 RewriteRule  ^leht.html$      192.168.1.3.html [L]&lt;br /&gt;
&lt;br /&gt;
===Ümberkirjutusalus===&lt;br /&gt;
&lt;br /&gt;
Kui te tegutsete sügavamal URLi-struktuuri sees, kasutage RewriteRule&#039;i juurika ümbernimetamiseks direktiivi RewriteBase. Näiteks kirjutatakse URL http://www.zoo.tartu.ee/~priit/lemmikud/hobused.html ümber URLiks http://www.zoo.tartu.ee/~priit/lemmikud/kabjaksed.html&lt;br /&gt;
&lt;br /&gt;
 RewriteBase   /~priit/lemmikud&lt;br /&gt;
 RewriteRule   ^hobused.html$  kabjaksed.html &lt;br /&gt;
&lt;br /&gt;
===Ümberkirjutustabel===&lt;br /&gt;
&lt;br /&gt;
Esitatud päringu juhuslikult valitud URLile ümbersuunamiseks on sobiv kasutada direktiivi RewriteMap. RewriteMap pakub võimaluse salvestada tekstifaili hulga URLe, mille poole saab ümberkirjutusreeglist pöörduda. Näiteks loome olukorra, kus päringule http://www.zoo.tartu.ee/juhuslik vastatakse juhuslikult valitud veebilehega.&lt;br /&gt;
&lt;br /&gt;
Kirjeldame tabelikirjeldusfailis vl.txt juhuslike veebilehtede nimed&lt;br /&gt;
&lt;br /&gt;
 bash# cat /usr/local/apache/vl.txt&lt;br /&gt;
 veebilehed 1.html|2.html|3.html|4.html|5.html|6.html|7.html&lt;br /&gt;
&lt;br /&gt;
ning lisame veebiserveri konfiguratsioonifaili read&lt;br /&gt;
&lt;br /&gt;
 RewriteMap vl rnd:/usr/local/apache/vl.txt&lt;br /&gt;
 RewriteRule   ^/juhus$   /home/html/juhus/${vl:veebilehed|html.html}&lt;br /&gt;
&lt;br /&gt;
Ümberkirjutustabeli süntaks on selline&lt;br /&gt;
&lt;br /&gt;
RewriteMap tablelinimi tabelitüüp:tabelikirjeldusfail&lt;br /&gt;
&lt;br /&gt;
kus&lt;br /&gt;
&lt;br /&gt;
    * tabelinimi - on kooskõlas ümberkirjutusreeglis kasutatud nimega&lt;br /&gt;
    * tabelitüüp - rnd (random) näitab et&lt;br /&gt;
    * tabelikirjeldusfail - failis kirjeldatakse tabeli sisu, näiteks juhusliku puhul peab eraldama andmed |-ga (loogiline OR) &lt;br /&gt;
&lt;br /&gt;
Ümberkirjutusreegli asenduses kasutatud muutujat ${vl:veebilehed|html.html} väärtustatakse ümberkirjutustabeli vl võtme veeblilehed abil. Kui sellist ümberkirjutustabelit mingil põhjusel pole, on muutuja väärtus html.html.&lt;br /&gt;
&lt;br /&gt;
===Ümberkirjutuslogi===&lt;br /&gt;
&lt;br /&gt;
Ümberkirjutamise tööleseadmisel ning toimuvate ümberkirjutuste jälgimiseks saab kasutada direktiive RewriteLog ja RewriteLogLevel&lt;br /&gt;
&lt;br /&gt;
 RewriteLogLevel 3&lt;br /&gt;
 RewriteLog /var/log/apache/rewrite.log&lt;br /&gt;
&lt;br /&gt;
===Veebiserveri konfiguratsioonifaili lugemine===&lt;br /&gt;
&lt;br /&gt;
Lihtsamatel juhtudel pole see oluline, millises järjekorras veebiserver direktiivides esitatud reegleid kehtestab. Näiteks, kui konfiguratsioonifailis ei sisaldugi Location ja Files sektsioone, kuid soovides kasutada veebiseverit paindlikumalt, tuleb järjekorraga arvestada.&lt;br /&gt;
&lt;br /&gt;
Direktiivide puhul ei hooli Apache suurtest ja väikestest tähtedest, kuid parameetrite puhul on see tihti oluline.&lt;br /&gt;
&lt;br /&gt;
Eeldusel, et te paigutate kogu konfiguratsiooni ühte faili, sisalduvad seal kaks osa&lt;br /&gt;
&lt;br /&gt;
    * põhiosa - kirjeldatakse veebiserveri üldisi omadusi, näiteks millise kasutaja õigustes ta töötab&lt;br /&gt;
    * ressursside määrangud - kehtestatakse reeglid, kuidas veebiserver faile serveerib, näiteks käsitleb .php lõpulisi faile PHP skriptidena &lt;br /&gt;
&lt;br /&gt;
Üldosa direktiivide järjekord pole oluline, kui sama direktiiv on väärtustatud mitu korda, jääb kehtima viimane väärtus.&lt;br /&gt;
&lt;br /&gt;
Kui ressursside omadusi määratakse grupeerimisvahendite abil, siis sõltumata konfigureerimisfailis esinemise järjekorrast, loetakse neid sellises järjekorras: Directory, Files, Location&lt;br /&gt;
&lt;br /&gt;
Directory sees võivad olla kirjeldatud omakorda Files sektsioonid.&lt;br /&gt;
&lt;br /&gt;
Directory sees on lubatud kasutada järgmisi direktiive:&lt;br /&gt;
&lt;br /&gt;
    * DirectoryIndex&lt;br /&gt;
    * Options&lt;br /&gt;
    * Order, Allow, Deny&lt;br /&gt;
    * AllowOverride&lt;br /&gt;
    * AddHandler&lt;br /&gt;
    * AddType &lt;br /&gt;
&lt;br /&gt;
Files sektsioonis on lubatud kasutada praktiliselt samasid direktiive, mida sektsioonis Directory eeldusel, et neid on mõistlik rakendada failidele. Ilmselt ei saa kasutada näiteks direktiivi DirectoryIndex, küll aga näiteks Allow ja Deny.&lt;br /&gt;
&lt;br /&gt;
Location sektsioonis on lubatud kasutada praktiliselt samasid direktiive, mida sektsioonis Directory. Kuna Locationit rakedatakse kõige viimasena, siis ei saa seal näiteks kasutada Options direktiivi, küll aga näiteks Allow ja Deny&#039;id.&lt;br /&gt;
&lt;br /&gt;
===Veebiserveri turvalisus===&lt;br /&gt;
&lt;br /&gt;
Veebiserveri kasutamisel arvestage, et iseenesest on veebiserver programm, mis teeb teie arvuti failid kättesaadavaks HTTP protokolli kasutavaile klientidele so brauseritele.&lt;br /&gt;
&lt;br /&gt;
Kuigi veebiserver tuleb käivitada juurkasutaja õigustes, toimetab ta edasi konfiguratsioonifailis näidatud kasutajana (User, Group direktiivid).&lt;br /&gt;
&lt;br /&gt;
Siiski, kui te kasutate konfiguratsioonifailis teatud kohtades IO ümbersuunamist, näiteks logimise juures, siis seda teeb Apache juurkasutajana.&lt;br /&gt;
&lt;br /&gt;
Vältimaks ebameeldivaid üllatusi, veenduge, et veebiserveri juurikas ning selle alla jäävad kataloogid on piisavalt kaitstud, so kasutajatel pole neisse kirjutamisõigust. Veebiserver (/usr/local/apache/bin/httpd) ja muud temaga seotud failid, näiteks rotatelogs kuuluvad juurkasutajale ning on tavakasutajaile ning grupile others vaid käivitatavad. Tavaliselt piisab nende tingimuste täitmiseks anda käsud&lt;br /&gt;
&lt;br /&gt;
 bash# cd /usr/local/apache&lt;br /&gt;
 bash# chown 0 bin conf logs&lt;br /&gt;
 bash# chgrp 0  bin conf logs&lt;br /&gt;
 bash# chmod 755 bin conf logs&lt;br /&gt;
 &lt;br /&gt;
 bash# chown 0 /usr/local/apache/bin/httpd&lt;br /&gt;
 bash# chgrp 0 /usr/local/apache/bin/httpd&lt;br /&gt;
 bash# chmod 511 /usr/local/apache/bin/httpd&lt;br /&gt;
&lt;br /&gt;
Lisaks, mõelge järele, kas te peate kasutajaile lubama käivitada CGI skripte, ning andmebaase ning otsustage millistel tingimustel, samuti kataloogipõhine veebiserveri konfigureerimisvõimalus. Näiteks lubage kasutajatel CGI skripte tarvida ainult kataloogist    ~/public_html/cgi-bin&lt;br /&gt;
&lt;br /&gt;
 &amp;lt;Directory /usr/home/*/public_html/cgi-bin&amp;gt;&lt;br /&gt;
 AddHandler cgi-script .cgi&lt;br /&gt;
 Options +ExecCGI&lt;br /&gt;
 &amp;lt;/Directory&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Heal juhul saab veebiserveri tööleseadmise eel otsustada, milliste omadustega peab ta olema. Reeglina ei soovitata lihtsalt sisse kompileerida toetust, mida praktiliselt ei tarvitata. Näiteks, kui te olete kindel, et pole vajadust server-info ja server-status&#039;e järele, siis jätke vastavad moodulid välja. Näidake seda Apache ./configure skripti juures vastavate võtmetega --disable-module=info --disable-module=status.&lt;br /&gt;
&lt;br /&gt;
===Virtuaalveebiserverid===&lt;br /&gt;
&lt;br /&gt;
Ühte ja sama Apache veebiserverit saab tööle seada nii, et ta serveerib erinevaid andmeid sõltuvalt millise nimega tema poole pöörduti. Asjakorraldust nimetatakse virtuaaseteks veebiserveriteks, kuna füüsiliselt on tegu ühe arvutiga, kuid külastajaile jäetakse mulje, et neid on mitu.&lt;br /&gt;
&lt;br /&gt;
Virtuaalseid veebiservereid on kolme sorti:&lt;br /&gt;
&lt;br /&gt;
    * pordipõhised - sõltuvalt külastaja poolt kastatud pordist serveeritakse erinevat veebi&lt;br /&gt;
    * IP-põhised - sõltuvalt külastaja poolt kasutatud IP aadressist serveeritakse erinevat veebi&lt;br /&gt;
    * nimepõhised - sõltuvalt külastaja poolt kasutatud DNSi nimest serveeritakse erinevat veebi; reeglina vastavad erinevad nimed samale IP aadressile so on kirjeldatud CNAMEdena &lt;br /&gt;
&lt;br /&gt;
Põhimõtteliselt on võimalik kasutada neid virtuaalservereid ka kombineeritult korraga.&lt;br /&gt;
&lt;br /&gt;
Erijuht virtuaalveebi serveerida on käivitada mitu eksemplari httpd servereid, iga oma konfiguratsiooniga. Kuna see võimalus on suhteliselt ebaefektiivne ning ei paku olulisi täiendavaid võimalusi, siis seda me ei käsitle.&lt;br /&gt;
&lt;br /&gt;
Virtuaalserveri sektsioonis (VirtualHost) saab kasutada paljusid direktiive, mida peaserveri puhul sh direktiive Options, Alias, Directory, Location, Files. Samuti direktiive, mis reguleerivad SSI, CGI, PHP, Emperli, ümberkirjutamise ja logi kasutamist. Kui direktiivi ei näidata, kasutataks põhikonfiguratsiooni väärtus, kui seal seda samuti pole, siis vaikeväärtust.&lt;br /&gt;
&lt;br /&gt;
===Pordipõhised virtuaalveebiserverid===&lt;br /&gt;
&lt;br /&gt;
Kasutamaks erinevaid veebiseveri konfiguratsioone sõltuvalt sellest, millisele pordile päring tuli, kasutage direktiive Listen ja VirtualHost. Näiteks teenindab veebiserveri konfiguratsioonifaili põhiosale vastav server kõiki päringuid va neid, mis on suunatud aadressi 193.40.50.1 (www.zoo.edu.ee) pordile 8080 või pordile 8081. Viimast kahte teenindatakse vastaval VirtualHosti sektsioonile. Näiteks seame lisaks põhiosale tööle kaks alternatiivset dokumendijuurikat ja logi&lt;br /&gt;
&lt;br /&gt;
...&lt;br /&gt;
 Listen 80&lt;br /&gt;
 Listen 193.40.50.1:8080&lt;br /&gt;
 Listen 193.40.50.1:8081&lt;br /&gt;
 &amp;lt;VirtualHost 193.40.50.1:8080&amp;gt;&lt;br /&gt;
    ServerAdmin mart@zoo.edu.ee&lt;br /&gt;
    DocumentRoot /www/mardizoo&lt;br /&gt;
    ErrorLog /var/logs/mardizoo.error.log&lt;br /&gt;
    CustomLog /var/logs/mardizoo.log common&lt;br /&gt;
  &amp;lt;/VirtualHost&amp;gt;&lt;br /&gt;
 &lt;br /&gt;
 &amp;lt;VirtualHost 193.40.50.1:8081&amp;gt;&lt;br /&gt;
    ServerAdmin priit@zoo.edu.ee&lt;br /&gt;
    DocumentRoot /www/priiduzoo&lt;br /&gt;
    ErrorLog /var/logs/priituzoo.error.log&lt;br /&gt;
    CustomLog /var/logs/priiduzoo.log common&lt;br /&gt;
 &amp;lt;/VirtualHost&amp;gt;&lt;br /&gt;
&lt;br /&gt;
kusjuures peakonfiguratsiooni on lisatud vastavad Listen direktiivid.&lt;br /&gt;
&lt;br /&gt;
Brauseris tuleb päringud esitada vastavalt http://www.zoo.edu.ee:8080 või http://www.zoo.edu.ee:8081.&lt;br /&gt;
&lt;br /&gt;
===IP-põhised virtuaalveebiseverid===&lt;br /&gt;
&lt;br /&gt;
IP-põhised virtuaalveebiserverite kasutamisel on veebiserveril mitu IP aadressi. St masinal on mitu võrgukaarti või on kasutatud IP-aliasingut.&lt;br /&gt;
&lt;br /&gt;
IP-põhiste virtuaalveebiserverite kasutamisel näidake direktiivi VirtualHost juures ära IP aadress, ning samas sektsioonis kirjeldage kõnealuse veebiserveri omadused. Näiteks kui masinal on kaks võrgukaarti IP aadressidega 193.40.10.1 ning 193.40.50.1 kasutage sektsioone&lt;br /&gt;
&lt;br /&gt;
 &amp;lt;VirtualHost 193.40.50.1&amp;gt;&lt;br /&gt;
    ServerName www.zoo.tartu.ee&lt;br /&gt;
    ServerAdmin priit@zoo.tartu.ee&lt;br /&gt;
    DocumentRoot /www/tartuzoo&lt;br /&gt;
    ErrorLog /var/logs/tartuzoo.error.log&lt;br /&gt;
    CustomLog /var/logs/tartuzoo.log common&lt;br /&gt;
 &amp;lt;/VirtualHost&amp;gt;&lt;br /&gt;
 &lt;br /&gt;
 &amp;lt;VirtualHost 193.40.10.1&amp;gt;&lt;br /&gt;
    ServerName www.zoo.edu.ee&lt;br /&gt;
    ServerAdmin mart@zoo.edu.ee&lt;br /&gt;
     DocumentRoot /www/eduzoo&lt;br /&gt;
     ErrorLog /var/logs/eduzoo.error.log&lt;br /&gt;
     CustomLog /var/logs/eduzoo.log common&lt;br /&gt;
 &amp;lt;/VirtualHost&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Peakonfiguratsiooni osa järgi teenindatakse neid päringuid, millel ei leidu sobivat virtuaalserverit. Näiteks kui masinal on veel kolmas võrguseade ning päring siseneb selle aadressile.&lt;br /&gt;
&lt;br /&gt;
Virtuaalserveri direktiivi juurde võib kirjutada ka mitu IP aadressi, mispuhul kasutatakse kõnealust serverit neile kõigile tulnud päringutele vastamisel.&lt;br /&gt;
&lt;br /&gt;
===Nimepõhised virtuaalveebiserverid===&lt;br /&gt;
&lt;br /&gt;
Nimepõhisete virtuaalveebiserverite kasutamine eeldab, et ühele IP aadressile (193.40.50.1) on nimesüsteemis (DNS) seatud näiteks CNAMEiga vastavusse mitu domeenime (www.zoo.tartu.ee, post.zoo.tartu.ee).&lt;br /&gt;
&lt;br /&gt;
Kui soovite kasutada enam kui ühte veebiserverit, siis on soovitav kõik veebiserverid konfigureerida virtuaalseteks. Kusjuures põhiserverile ei vastagi DocumentRoot&#039;i.&lt;br /&gt;
&lt;br /&gt;
Nimepõhiste virtuaalveebiserverite kasutamine deklareeritakse peakonfiguratsiooni osas direktiiviga NameVirtualHost. Direktiivi järel näidatakse IP aadress, millele tulnud päringute teenindamisel kasutatakse sobivat VirtualHosti sektsiooni. Näiteks&lt;br /&gt;
&lt;br /&gt;
 NameVirtualHost 193.40.50.1&lt;br /&gt;
&lt;br /&gt;
puhul kasutatakse aadressile 193.40.50.1 saabunud päringute töötlemiseks sobiva domeeninimega (ServerName) VirtualHost sektsiooni.&lt;br /&gt;
&lt;br /&gt;
Erinevad virtuaalserverid kirjeldatakse direktiiviga VirtualHost, näiteks sarnase sektsiooniga&lt;br /&gt;
&lt;br /&gt;
 &amp;lt;VirtualHost 193.40.50.1&amp;gt;&lt;br /&gt;
     ServerName www.zoo.tartu.ee&lt;br /&gt;
     ServerAdmin priit@zoo.tartu.ee&lt;br /&gt;
     DocumentRoot /www&lt;br /&gt;
     ErrorLog /var/logs/www.error.log&lt;br /&gt;
     CustomLog /var/logs/www.log common&lt;br /&gt;
 &amp;lt;/VirtualHost&amp;gt;&lt;br /&gt;
 &lt;br /&gt;
 &amp;lt;VirtualHost 193.40.50.1&amp;gt;&lt;br /&gt;
     ServerName post.zoo.tartu.ee&lt;br /&gt;
     ServerAdmin post@zoo.tartu.ee&lt;br /&gt;
     DocumentRoot /post&lt;br /&gt;
     ErrorLog /var/logs/post.error.log&lt;br /&gt;
     CustomLog /var/logs/post.log common&lt;br /&gt;
 &amp;lt;/VirtualHost&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Kui serveril on mitu võrguaadressi, siis võib kasutada direktiivi NameVirtualHost mitu korda ning lisada vastavad sektsioonid, kuid lühem on asendada IP aadress täringa (*)&lt;br /&gt;
&lt;br /&gt;
 NameVirtualHost *&lt;br /&gt;
 &lt;br /&gt;
 &amp;lt;VirtualHost *&amp;gt;&lt;br /&gt;
     ServerName www.zoo.tartu.ee&lt;br /&gt;
     ServerAdmin priit@zoo.tartu.ee&lt;br /&gt;
     DocumentRoot /www&lt;br /&gt;
     ErrorLog /var/logs/www.error.log&lt;br /&gt;
     CustomLog /var/logs/www.log common&lt;br /&gt;
 &amp;lt;/VirtualHost&amp;gt;&lt;br /&gt;
 &lt;br /&gt;
 &amp;lt;VirtualHost *&amp;gt;&lt;br /&gt;
     ServerName post.zoo.tartu.ee&lt;br /&gt;
     ServerAdmin post@zoo.tartu.ee&lt;br /&gt;
     DocumentRoot /post&lt;br /&gt;
     ErrorLog /var/logs/post.error.log&lt;br /&gt;
     CustomLog /var/logs/post.log common&lt;br /&gt;
 &amp;lt;/VirtualHost&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Päringuid, mis saabuvad direktiiviga NameVirtualHost näidatud aadressile ei teenindata IP-põhiste sektsioonide ega peaserveri konfiguratsiooni alusel.&lt;br /&gt;
&lt;br /&gt;
===Kasulikud lisamaterjalid===&lt;/div&gt;</summary>
		<author><name>Triinu</name></author>
	</entry>
	<entry>
		<id>https://kuutorvaja.eenet.ee/w/index.php?title=Apache%27i_veebiserver&amp;diff=2840</id>
		<title>Apache&#039;i veebiserver</title>
		<link rel="alternate" type="text/html" href="https://kuutorvaja.eenet.ee/w/index.php?title=Apache%27i_veebiserver&amp;diff=2840"/>
		<updated>2007-01-26T14:03:18Z</updated>

		<summary type="html">&lt;p&gt;Triinu: /* Ümerbkirjutustabel */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;===Veebiserveri konfigureerimine ja käivitamine===&lt;br /&gt;
&lt;br /&gt;
Veebiserveri tööd juhib üks konfiguratsioonifail httpd.conf. Sellesse kirjutatake parameetrid üks reale, kusjuures # märgiga algavaid ridu ignoreeritakse. Ridu saab jätkata sisestades kurakallu (\) viimase sümbolina eelmisele reale, tegelikult eelviimasena, viimane on reavahetus :)&lt;br /&gt;
&lt;br /&gt;
Lihtsal juhul võiks olla konfiguratsioonifail selline&lt;br /&gt;
&lt;br /&gt;
 User nobody&lt;br /&gt;
 Group nobody&lt;br /&gt;
 ServerType standalone&lt;br /&gt;
 ServerName www.zoo.tartu.ee&lt;br /&gt;
 ServerRoot &amp;quot;/usr/local/apache&amp;quot;&lt;br /&gt;
 DocumentRoot &amp;quot;/html&amp;quot;&lt;br /&gt;
 DirectoryIndex index.html&lt;br /&gt;
 ErrorLog /var/log/apache/error.log&lt;br /&gt;
 Listen 80&lt;br /&gt;
 Options None&lt;br /&gt;
 &amp;lt;Directory /&amp;gt;&lt;br /&gt;
 AllowOverride None&lt;br /&gt;
 &amp;lt;/Directory&amp;gt;&lt;br /&gt;
&lt;br /&gt;
kus on kasutatud järgmisi direktiive&lt;br /&gt;
&lt;br /&gt;
    * User - kasutaja, kelle õigustes veebiserver töötab&lt;br /&gt;
    * Group - grupp, kelle õigustes veebiserver töötab&lt;br /&gt;
    * ServerType - serveri tüüp, tavaliselt standalone, so mitte inetd abil käivitatav&lt;br /&gt;
    * ServerName - millise nime server arvab endal olevat&lt;br /&gt;
    * ServerRoot - kataloog, mille all serveri programmid asuvad&lt;br /&gt;
    * DocumentRoot - veebifailid, mida külastajaile serveeritakse&lt;br /&gt;
    * DirectoryIndex - faili nimi, mis brauserisse saadetakse, kui ta küsib kataloogi eeldusel, et sellenimeline fail kataloogis leidub&lt;br /&gt;
    * ErrorLog - fail, kuhu saadetakse veateated; kataloog, kus see fail asub peab olema kindlasti olemas!&lt;br /&gt;
    * Listen - port, millel veebiserver ootab päringuid, kõigil võrguseadmetel&lt;br /&gt;
    * Options - väärtus None tagab, et külastajale näidatakse vaid neid veebilehti, mida ta nimeliselt küsib. &lt;br /&gt;
&lt;br /&gt;
Reeglina on veebiserverina töötaval arvutil nö tavaline nimi, näiteks kalake.zoo.tartu.ee ning nimeserveris on talle defineeritud lisaks ka mõned hüüdnimed (CNAMEga). Tavaliselt kasutatakse veebiserveri nime alguses kombinatsiooni www, kokku saab antud juhul www.zoo.tartu.ee, kuid veebiserveri nimi ei pea sugugi algama www-ga olles näiteks see sama kalake.zoo.tartu.ee.&lt;br /&gt;
&lt;br /&gt;
Konfiguratsioonifailis kasutatud kataloogid peavad süsteemis leiduma, toodud näites peavad nad kuuluma lähtudes turvakaalutlustest juurkasutajale; samuti nendest kataloogidest ülevalpool asuvad kataloogid.&lt;br /&gt;
&lt;br /&gt;
Reeglina on süsteemis vaikimisi olemas mitteprivilegeeritud kasutaja nobody grupiga nobody. Võib kasutada seda või luua spetsiaalne kasutaja, näiteks apache grupiga veeb. Veebiserveri mittekäivitumise põhjuseks on tihtipeale vastavate kasutajate puudumine süsteemis.&lt;br /&gt;
&lt;br /&gt;
Näidates võrguseadme nime, vastatakse ainult sellelt seadmelt tulevaile päringutele, näiteks &#039;Listen 193.40.10.1 80&#039;.&lt;br /&gt;
&lt;br /&gt;
===Sektsioon===&lt;br /&gt;
&lt;br /&gt;
 &amp;lt;Directory /&amp;gt;&lt;br /&gt;
 AllowOverride None&lt;br /&gt;
 &amp;lt;/Directory&amp;gt;&lt;br /&gt;
&lt;br /&gt;
tähendab, et kataloogides pole täiendavate vahenditega õigust veebiserveri konfiguratsiooni täpsustada.&lt;br /&gt;
&lt;br /&gt;
Kuigi teatud parameetrite järjekord konfiguratsioonifailis ei ole tähtis, jääb kehtima parameetrile viimasena omistatud väärtus.&lt;br /&gt;
Käivitamine&lt;br /&gt;
&lt;br /&gt;
Veebiserver käivitatakse ja peatatakse käsuga apachectl&lt;br /&gt;
&lt;br /&gt;
 bash# apachectl start&lt;br /&gt;
&lt;br /&gt;
Peatamine toimub käsuga stop&lt;br /&gt;
&lt;br /&gt;
 bash# apachectl stop&lt;br /&gt;
&lt;br /&gt;
Peale konfiguratsioonifaili muutmist kehtestuvad muutused serveri taaskäivitamisel soovitavalt käsuga graceful, või restart&lt;br /&gt;
&lt;br /&gt;
 bash# apachectl graceful&lt;br /&gt;
&lt;br /&gt;
Veebiserver tuleb käivitada juurkasutajaõigustes, kuid ta töötab konfiguratsioonifailis näidatud User ja Group kasutajana. See tähendab, et failisüsteemi osad, mida soovitakse veebi näidata peavad olema vastavatele UNIXi kasutajatele nähtavad. Tavaliselt on nende failide kasutajagrupile other antud lugemisõigus.&lt;br /&gt;
&lt;br /&gt;
Töötavast veebiserverist annab tunnistust see, kui süsteemi protsessitabelis on httpd deemoni nimi, isegi mitu&lt;br /&gt;
&lt;br /&gt;
 bash# ps auxw | grep httpd&lt;br /&gt;
 root   30692  0.0  5.4  4236 3288  ??  Ss    4:39PM   0:00.16 /usr/local/apache/bin/httpd&lt;br /&gt;
 nobody 30840  0.0  5.5  4272 3324  ??  I     5:52PM   0:00.00 /usr/local/apache/bin/httpd&lt;br /&gt;
 nobody 30841  0.0  5.5  4272 3324  ??  I     5:52PM   0:00.00 /usr/local/apache/bin/httpd&lt;br /&gt;
 nobody 30842  0.0  5.5  4272 3324  ??  I     5:52PM   0:00.00 /usr/local/apache/bin/httpd&lt;br /&gt;
 nobody 30843  0.0  5.4  4248 3296  ??  I     5:52PM   0:00.00 /usr/local/apache/bin/httpd&lt;br /&gt;
 nobody 30844  0.0  5.4  4248 3296  ??  I     5:52PM   0:00.00 /usr/local/apache/bin/httpd&lt;br /&gt;
 nobody 30845  0.0  5.4  4256 3300  ??  I     5:52PM   0:00.00 /usr/local/apache/bin/httpd&lt;br /&gt;
&lt;br /&gt;
Aga veel parem kinnitus on, kui olemaks näitega kooskõlas päring http://www.zoo.edu.ee näitab veebilehte, so faili /html/index.html. Samuti saab antud näite rakendamisel näha kasutajate kodulehti eeldusel, et nad asuvad kataloogide ~/public_html all.&lt;br /&gt;
&lt;br /&gt;
Kui veebiserveri käivitamisel ilmneb raskusi, siis tasub uurida vealogi (/var/log/apache/error.log) sisu.&lt;br /&gt;
Automaatne käivitamine&lt;br /&gt;
&lt;br /&gt;
===Veebiressursside kasutusõigus===&lt;br /&gt;
&lt;br /&gt;
Veebiserveri konfigureerimisel on väga oluline näidata, mida vastuseks külastaja päringule tohib teha või saata või kas üldse külastajat teenindada.&lt;br /&gt;
&lt;br /&gt;
===Direktiiv Option===&lt;br /&gt;
&lt;br /&gt;
Direktiivi Options abil saab määratleda, mida kataloogis leiduvate failidega lubatakse teha. Näiteks määrates minimaalsed õigused parameetriga None, saab kataloogis sisalduvate failide poole pöörduda vaid nimeliselt; failide nimekirja ei näidata.&lt;br /&gt;
&lt;br /&gt;
 Options None&lt;br /&gt;
&lt;br /&gt;
===Muud võimalused:===&lt;br /&gt;
&lt;br /&gt;
    * FollowSymLinks - kui brauser esitatud päringus on failinimi viide, siis seda järgitakse vaatamata, kas viidatav fail kuulub samale kasutajale kui&lt;br /&gt;
      viide&lt;br /&gt;
    * SymLinksIfOwnerMatch - kui brauser esitatud päringus on failinimi viide, siis seda järgitakse juhul, kas viidatav fail kuulub samale kasutajale &lt;br /&gt;
      kellele viide&lt;br /&gt;
    * Indexes - näidatakse serveri kataloogi failide nimekirja kui DirectoryIndexis näidatud faile ei leitud&lt;br /&gt;
    * ExecCGI - CGI skriptide kasutamiseks&lt;br /&gt;
    * Includes - SSI failide kasutamiseks&lt;br /&gt;
    * IncludesNOEXEC - SSI failide kasutamiseks, va #exec ja CGI skriptide #include&lt;br /&gt;
    * All - kõik eelnimetatu on lubatud &lt;br /&gt;
&lt;br /&gt;
Korraga võib määratleda ka mitu parameetrit, eraldades nad üksteisest tühikuga.&lt;br /&gt;
&lt;br /&gt;
Kui konfiguratsioonifailis kasutada mitmel Options direktiivi, jääb kehtima viimane. Lisades parameetri algusesse + või - märgi, lisatakse või eemaldatakse vastav toime. Näiteks kasutades direktiive&lt;br /&gt;
&lt;br /&gt;
 Options Indexes Includes FollowSymLinks&lt;br /&gt;
 Options -FollowSymLinks&lt;br /&gt;
&lt;br /&gt;
on toime samaväärne avaldisega&lt;br /&gt;
&lt;br /&gt;
 Options Indexes Includes&lt;br /&gt;
&lt;br /&gt;
Direktiivi Options vaikeväärtus on All.&lt;br /&gt;
&lt;br /&gt;
===Direktiivid Allow, Deny ja Order===&lt;br /&gt;
&lt;br /&gt;
Direktiividega Allow, Deny ning Order abil saab kehtestada, millistelt domeenidelt tulevaid päringuid teenidatakse. Orderi abil seatakse, millises järjekorras kontroll toimub, kusjuures rakendatakse viimast reeglit, millega külastaja domeeninimi klapib. Kui ükski reegel ei klapi, toimitakse vaikimisi nagu viimane Orderi parameeter näitab. Näiteks sellise sektsiooni puhul&lt;br /&gt;
&lt;br /&gt;
 Order Deny,Allow&lt;br /&gt;
 Deny from all&lt;br /&gt;
 Allow from zoo.tartu.ee&lt;br /&gt;
&lt;br /&gt;
Päringut domeenist zoo.tartu.ee teenindatakse, esimene reegel (Deny) keelab kõik, kuid teine (Allow) lubab domeeni zoo.tartu.ee. Kui Order oleks vastupidi, siis lubaks esimene reegel (Allow) zoo.tartu.ee, kuid kehtima jääks viimane reegel (Deny). Reeglite järjekord failis ei loe, kuna selle määrab Order.&lt;br /&gt;
&lt;br /&gt;
Järgmises näites on lubatud päringud vaid tartu.ee domeenist, va alamdomeen zoo.tartu.ee&lt;br /&gt;
&lt;br /&gt;
 Order Allow,Deny&lt;br /&gt;
 Allow from tartu.ee&lt;br /&gt;
 Deny from zoo.tartu.ee&lt;br /&gt;
&lt;br /&gt;
Tõepoolest, päringut foo.tartu.ee domeenist teenindatakse kuna ta klapib esimese (Allow) reegliga, mis lubab ning teisega, mis keelab mitte. Päringuid muudest domeenidest keelatakse, kuna nad ei klapi kummagi reegliga ning vaikimisi rakendatakse viimast Orderi parameetrit - Deny.&lt;br /&gt;
&lt;br /&gt;
Order, Deny ja Allow direktiive saab kasutada vaid direktiivi Directory sees ning Deny ja Allow tuleb eraldada ainult täpselt ühe komaga!&lt;br /&gt;
&lt;br /&gt;
===Veebiressursside grupeerimisvahendid===&lt;br /&gt;
&lt;br /&gt;
Veebiserveri kasutusõigust ning teisi omadusi reguleerivaid parameetreid saab grupeerida järgmiste direktiividega&lt;br /&gt;
&lt;br /&gt;
    * Directory - kataloogis ning selle alla jäävate alamkataloogides sisalduvate failide grupeerimiseks&lt;br /&gt;
    * Files - faili nimede järgi failide grupeerimiseks&lt;br /&gt;
    * Location - URLi ning selle alla jäävate URLide grupeerimiseks &lt;br /&gt;
&lt;br /&gt;
Sellistele gruppidele saab rakendada korraga samu määratlusi, näiteks Option parameetriga.&lt;br /&gt;
&lt;br /&gt;
===Directory direktiiv===&lt;br /&gt;
&lt;br /&gt;
Directory abil saab määrata näidatud kataloogi alla jäävatele failidele ühesuguseid omadusi. Näiteks kehtestame, et kataloogi /html/veeb/kalamaja alla jäävates kataloogides käsitletakse DirectoryIndexina faile index.html ja index.htm&lt;br /&gt;
&lt;br /&gt;
 &amp;lt;Directory /html/veeb/kalamaja&amp;gt;&lt;br /&gt;
 DirectoryIndex index.html index.htm&lt;br /&gt;
 &amp;lt;/Directory&amp;gt;&lt;br /&gt;
&lt;br /&gt;
===Files direktiiv===&lt;br /&gt;
&lt;br /&gt;
Sarnaselt Directory&#039;le saab kehtestada näidatud regulaaravaldisega klappivate failinimedega failidele ühesuguseid omadusi. Näiteks kehtestame, et failides, mille nimi algab tähtedega &amp;quot;e_&amp;quot; ja lõpeb .html-ga, tohivad sisaldada Embperli konstruktsioone&lt;br /&gt;
&lt;br /&gt;
 &amp;lt;Files ~ &amp;quot;^e_.*\.html$&amp;quot;&amp;gt;&lt;br /&gt;
 Options +ExecCGI&lt;br /&gt;
 SetHandler perl-script&lt;br /&gt;
 PerlHandler HTML::Embperl&lt;br /&gt;
 &amp;lt;/Files&amp;gt;&lt;br /&gt;
&lt;br /&gt;
===Location direktiiv===&lt;br /&gt;
&lt;br /&gt;
Sarnaselt Directory direktiivile saab Locationiga kehtestada osale veebikohale samasuguseid omadusi. Location mõjub mitte kataloogistruktuuri, vaid URLi mõttes hulgale elementidele. Näiteks kehtestame, et URL&#039;ist http://kalake.zoo.edu.ee/hobused edasi tohib näha kataloogide nimekirja&lt;br /&gt;
&lt;br /&gt;
 &amp;lt;Location /hobused&amp;gt;&lt;br /&gt;
 Options Indexes&lt;br /&gt;
 &amp;lt;/Location&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Tavaliselt piisab Directory kasutamisest, kuid kuna veebiserveri kataloogi-ja URLihierarhia ei pruugi alati kokku langeda, siis on sellest vahel abi.&lt;br /&gt;
&lt;br /&gt;
===Kataloogipõhine veebiserveri konfigureerimine===&lt;br /&gt;
&lt;br /&gt;
Veebiserveri põhikonfiguratsioonifailis näidatud väärtusi saab iga kataloogi jaoks täpsustavalt määrata kataloogis sisalduva konfiguratsiooni .htaccess faili abil. Selle faili nimi on määratud põhikonfiguratsioonifailis direktiiviga AccessFileName, mis peab esinema Directory sees. Faili süntaks on sama, mis põhikonfiguratsioonifailil. Seda, milliseid omadusi on ludatud .htaccess failiga täpsustada, näitab põhikonfiguratsioonifailis direktiiv AllowOverride; järgmistele parameeritele vastab voli muuta toodud parameetreid&lt;br /&gt;
&lt;br /&gt;
    * AuthConfig - AuthGroupFile, AuthName, AuthType, AuthUserFile, Require jne&lt;br /&gt;
    * FileInfo - AddEncoding, AddLanguage, AddType, DefaultType, ErrorDocument jne&lt;br /&gt;
    * Indexes - DirectoryIndex, AddDescription, AddIcon, AddIconByEncoding, AddIconByType, DefaultIcon, DirectoryIndex, FancyIndexing, HeaderName,&lt;br /&gt;
      IndexIgnore, IndexOptions, ReadmeName jne&lt;br /&gt;
    * Limit - Order, Allow, Deny&lt;br /&gt;
    * Options - Options, XBitHack&lt;br /&gt;
    * None - mitte midagi&lt;br /&gt;
    * All - kõik nimetatud &lt;br /&gt;
&lt;br /&gt;
Vaikimisi toimib parameeter All. Kui ei soovita lasta kasutajatel veebiserverit konfigureerida, siis kasutage peale veebiserveri põhiosa direktiivi&lt;br /&gt;
&lt;br /&gt;
 AllowOverride None&lt;br /&gt;
&lt;br /&gt;
.htaccess failis tohib kasutada direktiivi Files, aga ei saa kasutada Diectory või Location.&lt;br /&gt;
&lt;br /&gt;
Tavaliselt on ohutu ning kasutajaile piisav&lt;br /&gt;
&lt;br /&gt;
 AllowOverride Indexes AuthConfig&lt;br /&gt;
&lt;br /&gt;
===Alias===&lt;br /&gt;
&lt;br /&gt;
Direktiiv Alias võimaldab muuta veebi failile kataloogistruktuuri vastavust URLi struktuurile. Näiteks olgu kataloogis /html/veeb/hobused/2000/tyrinaitus/ehola_talu failid ning soovime neile ligi pääseda URLiga http://www.zoo.tartu.ee/ehola_talu. Kasutame sellist Aliast&lt;br /&gt;
&lt;br /&gt;
 Alias /ehola_talu/ /html/veeb/hobused/2000/tyrinaitus/ehola_talu/&lt;br /&gt;
&lt;br /&gt;
Antud juhul laheneb päring http://www.zoo.tartu.ee/ehola_talu/, kuid mitte http://www.zoo.tartu.ee/ehola_talu.&lt;br /&gt;
&lt;br /&gt;
Lisaks saab Aliasega kaasata veebi faile ning katalooge, mis asuvad failisüsteemi mõttes väljaspool DocumentRootu.&lt;br /&gt;
&lt;br /&gt;
 Alias /valdek/ /html/valdek/veeb/&lt;br /&gt;
&lt;br /&gt;
Aliase süntaks on järgmine&lt;br /&gt;
&lt;br /&gt;
 Alias URLi-tee kataloogi-tee&lt;br /&gt;
&lt;br /&gt;
kus&lt;br /&gt;
&lt;br /&gt;
    * URLi-tee on osa URList, mis jääb peale serverinimi osa, näiteks http://www.zoo.tartu.ee/ehola_talu/ puhul /ehola_talu/&lt;br /&gt;
    * kataloogi-tee on vastava kataloogi nimi &lt;br /&gt;
&lt;br /&gt;
Aliasi saab kasutada peakonfiguratsioonifailis või võrdväärsetes kohtades, näiteks VirtualHost sektsioonis. Aliaste kasutamisel tuleb tavaliselt kasutada kataloogi tee&#039;le vastavaid Directory direktiive, muutmaks sobivaks veebiosa kasutusõigused. Aliased loetakse läbi enne Directory sektsioone.&lt;br /&gt;
&lt;br /&gt;
Aliase kasutamisel tuleb tähele panna, et URLi tee asendatakse igal juhul kataloogiteega. Kas sel juhul, kui päring on pikem, kooskõlas kasutatud näitega päringu http://www.zoo.tartu.ee/ehola_talu/ratsahobused/piiker.html puhul esitatakse fail /html/veeb/hobused/2000/tyrinaitus/ehola_talu/ratsahobused/piiker.html.&lt;br /&gt;
&lt;br /&gt;
Soovides teha paindlikumaid nö ümberkirjutusi, kasutage mod_rewrite&#039;i võimalusi.&lt;br /&gt;
&lt;br /&gt;
===CGI===&lt;br /&gt;
&lt;br /&gt;
CGI kasutamiseks lisage konfiguratsioonifaili rida&lt;br /&gt;
&lt;br /&gt;
 AddHandler cgi-script .cgi .pl&lt;br /&gt;
&lt;br /&gt;
Tulemusena püüab veebiserver käivitada kõiki serveeritavaid .cgi ja .pl lõpuliste nimedega faile, eeldusel, et failile rakendub Optioni parameeter ExecCGI. Käivitamisel tekkiv programmiväljund saadetakse brauserisse, kusjuures see peab algama tuntud Content-type&#039;iga, näiteks text/html. Seda võib teha näiteks Directory abil; kehtestame, et kõikjal veebi faile sisaldavas kataloogis /html/veeb/suhtleja ja selle all asuvad .cgi ja .pl lõpuliste nimedega failid on käivitatavad&lt;br /&gt;
&lt;br /&gt;
 &amp;lt;Directory /suhtleja&amp;gt;&lt;br /&gt;
 Options ExecCGI&lt;br /&gt;
 &amp;lt;/Directory&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Soovides näidata, et vaatamata failinimele tuleb käsitleda faili CGI skriptina, kasutage ScriptAlias direktiivi. Tüüpiliselt määratletakse URLi http://kalake.zoo.tartu.ee/cgi-bin/&#039;le vastavad failid skriptideks&lt;br /&gt;
&lt;br /&gt;
 ScriptAlias /cgi-bin/ /html/veeb/cgi-bin/&lt;br /&gt;
&lt;br /&gt;
Tulemusena, näiteks päringu http://kalake.zoo.tartu.ee/cgi-bin/kasutajatenimikiri.sh puhul käivitatakse fail /html/veeb/cgi-bin/kasutajatenimekiri.sh.&lt;br /&gt;
&lt;br /&gt;
===SSI===&lt;br /&gt;
&lt;br /&gt;
SSI (Server Sides Includes) tehnika võimaldab sisestada brauseri päringus nõutud faili koosseisu muude failide sisu.&lt;br /&gt;
&lt;br /&gt;
SSI kasutamiseks lisage konfiguratsioonifaili rida&lt;br /&gt;
&lt;br /&gt;
 AddType text/html .shtml&lt;br /&gt;
 AddHandler server-parsed .shtml&lt;br /&gt;
&lt;br /&gt;
ning näidake näiteks direktiivide Directory ja Options parameetri Includes abil, milliseid faile tohib server käsitleda SSIdena. Näiteks kehtestame, et kataloogi /html/veeb/uudised all kasutatakse SSId&lt;br /&gt;
&lt;br /&gt;
 &amp;lt;Directory /html/veeb/uudised&amp;lt;&amp;gt;&lt;br /&gt;
 Options IncludesNOEXEC&lt;br /&gt;
 &amp;lt;/Directory&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Tulemusena saab failides, mille nime lõpus on .shtml, kasutada SSI konstruktsioone, va #exec ja CGI skriptide #include.&lt;br /&gt;
&lt;br /&gt;
===Embperl===&lt;br /&gt;
&lt;br /&gt;
Embperl on tehnika, mis võimaldab sisestada HTML koodi sisse Perli konstruktsioone. Selle võimaluse kasutamiseks lisage konfiguratsioonifaili&lt;br /&gt;
&lt;br /&gt;
 &amp;lt;Files ~ &amp;quot;\.html$&amp;quot;&amp;gt;&lt;br /&gt;
 Options ExecCGI&lt;br /&gt;
 SetHandler perl-script&lt;br /&gt;
 PerlHandler HTML::Embperl&lt;br /&gt;
 &amp;lt;/Files&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Tulmusena lahendab veebiserver failides, mille nime lõpetab .html sisalduva Perli koodi.&lt;br /&gt;
&lt;br /&gt;
Muuseas, Embperli rakendamisel on veebiserver ka tavalise HTML süntaksi osas oluliselt rangem. Tüüpiliselt ei meeldi talle [# jne järgnevused, mida kasutatakse Embperli skriptide tähistamiseks. Et neid sümboleid siiski kasutada saada, esitage neid a la &amp;amp;#kood;, näiteks &amp;amp;#60;.&lt;br /&gt;
&lt;br /&gt;
===PHP===&lt;br /&gt;
&lt;br /&gt;
PHP on tehnika, mis võimaldab lisada HTML koodi sisse PHP keele konstruktsioone. Selle võimaluse kasutamiseks lisage konfiguratsioonifaili&lt;br /&gt;
&lt;br /&gt;
 AddType application/x-httpd-php .php&lt;br /&gt;
&lt;br /&gt;
Veebiserverisse konfigureeritud PHP omadusi saab näha PHP skriptiga&lt;br /&gt;
&lt;br /&gt;
 &amp;lt;?&lt;br /&gt;
 phpinfo();&lt;br /&gt;
 ?&amp;gt;&lt;br /&gt;
&lt;br /&gt;
===Serveri kasutajate kodulehed===&lt;br /&gt;
&lt;br /&gt;
Vaikimisi eeldab veebiserver, et näiteks URLile http://www.zoo.tartu.ee/~priit vastab süsteemi kasutaja priit kodukataloogis olev kataloog public_html. Selle kataloogi nime määrab direktiiv UserDir.&lt;br /&gt;
&lt;br /&gt;
===Veebi kaitsmine parooliga===&lt;br /&gt;
&lt;br /&gt;
Apache pakub vahendid veebistruktuuri kaitsmiseks parooliga. Konfiguratsioonifailis näidatakse ära, millist ressurssi kaitsta ning millist autentimissüsteemi kasutada.&lt;br /&gt;
&lt;br /&gt;
Kõige lihtsamal juhul tuleb programmiga htpasswd genereerida lubatud külastajate paroolifail, milles on kirjas kasutajanimed ning vastavad paroolid. See fail on reeglina erinev süsteemi paroolifailist, kus veebiserver töötab. Kui külastaja püüab siseneda kaitstud veebi, avaneb dialoog ning küsitakse tema kasutajanime ning parooli. Sobiva paari sisestamisel lubatakse külastaja veebile ligi, kusjuures kõnealust veebi saab kasutada kuni brauseri sulgemiseni.&lt;br /&gt;
&lt;br /&gt;
Näiteks kaitseme kataloogistruktuuri /html/salajane kirjeldatud paroolikontrolliga&lt;br /&gt;
&lt;br /&gt;
 &amp;lt;Directory /html/salajane&amp;gt;&lt;br /&gt;
 AuthUserFile /usr/local/apache/conf/salajane.paroolifail&lt;br /&gt;
 AuthType Basic&lt;br /&gt;
 AuthName Salajane&lt;br /&gt;
 require valid-user&lt;br /&gt;
 &amp;lt;/Directory&amp;gt;&lt;br /&gt;
&lt;br /&gt;
kus on kasutatud direktiive:&lt;br /&gt;
&lt;br /&gt;
    * AuthUserFile - paroolifailinimi, /usr/local/apache/conf/salajane.paroolifail&lt;br /&gt;
    * AuthType - millist tüüpi autentimisega on tegemist, antud juhul Basic&lt;br /&gt;
    * AuthName - parameetri väärtust näidatakse aknas, kuhu kasutaja sisestab oma veebi kasutajanime ja parooli; sama veebi piires saab sama kasutajanimega&lt;br /&gt;
      seostada erinevaid paroole, mistõttu peab külastaja saama teada, millist parooli konkreetsel juhul tarvitada&lt;br /&gt;
    * require valid-user - sellele ressursile lastakse ligi vaid peale edukat autentimist &lt;br /&gt;
&lt;br /&gt;
Sobiv paroolifail moodustatakse programmiga htpasswd&lt;br /&gt;
&lt;br /&gt;
 bash$ htpasswd -b -c -m salajane.paroolifail priit priiduparool&lt;br /&gt;
&lt;br /&gt;
kus&lt;br /&gt;
&lt;br /&gt;
   1. -b kasutaja parooliks loetakse käsurea viimane sõna (priiduparool)&lt;br /&gt;
   2. -c seda võtit tuleb kasutada vaid siis, kui paroolifaili veel ei eksisteeri; edaspidi peab selle võtme ära jätma, sest muidu kustutatakse olemasoleva&lt;br /&gt;
      paroolifaili sisu&lt;br /&gt;
   3. -m kasutada MD5 krüptimist; jättes selle võtme kirjutamata tekitatakse CRYPT proolid&lt;br /&gt;
   4. järgnevad paroolifaili nimi (salajane.paroolifail) ja kasutajanimi (priit) &lt;br /&gt;
&lt;br /&gt;
Tundub, et peale Directory, saab autentimist kasutada ka Location sektsioonis, mis on veebi suhtes veel asjakohasem.&lt;br /&gt;
&lt;br /&gt;
Paroolifail peab olema loetav sellele kasutajale, kelle õigustes veebiserver töötab (näiteks nobody) ning soovitavalt mitte olema veebiga samas kataloogistruktuuris.&lt;br /&gt;
&lt;br /&gt;
===Logi===&lt;br /&gt;
&lt;br /&gt;
Apache veebiserveriga saab logida tekstifaili erinevatel tingimustel toimunud päringuid ning neid logifaile automaatselt roteerida. Logida saab paraleelselt ka näidatud tingimustele erinevates formaatides erinevatesse failidesse.&lt;br /&gt;
&lt;br /&gt;
Direktiiviga LogFormat kirjeldatakse mida logitakse. Tüüpiliselt defineeritakse formaat nimega tavaline&lt;br /&gt;
&lt;br /&gt;
 LogFormat &amp;quot;%h %l %u %t \&amp;quot;%r\&amp;quot; %&amp;gt;s %b&amp;quot; tavaline&lt;br /&gt;
&lt;br /&gt;
kus&lt;br /&gt;
&lt;br /&gt;
    * %h - maisinanimi, kust päring esitati&lt;br /&gt;
    * %l - kasutajanimi, kes päringu esitas eeldusel, et IdentityCheck tomib; tavaliselt see väli jääb tühjaks, kuna IdentityCheck&#039;i kasutamine võtab&lt;br /&gt;
      tublisti veebi kiirust alla&lt;br /&gt;
    * %u - kui veebiserveri ressurss nõudis autentimist, siis kasutatud kasutajanimi&lt;br /&gt;
    * %t - päringu esitamise aeg&lt;br /&gt;
    * \&amp;quot;%r\&amp;quot; - jutumärkides esitatud päringu esimene rida&lt;br /&gt;
    * %&amp;gt;s - päringule vastuse olek (ingl. k. status)&lt;br /&gt;
    * %b - päringu vastuse maht baitides&lt;br /&gt;
    * tavaline - logiformaadi nimi &lt;br /&gt;
&lt;br /&gt;
Logimine ise toimub direktiiviga CustomLog, näiteks logime, kasutades logiformaati tavaline, faili /var/log/apache/tavaline.log&lt;br /&gt;
&lt;br /&gt;
 CustomLog /var/log/apache/tavaline.log tavaline&lt;br /&gt;
&lt;br /&gt;
Soovides logifaili automaatselt roteerida, kasutage veebiserveriga kaasas olevat programmi rotatelogs. Näiteks moodustame iga nädal uue logi&lt;br /&gt;
&lt;br /&gt;
 CustomLog &amp;quot;|/usr/local/apache/bin/rotatelogs /var/log/apache/tavaline.log 604800&amp;quot; common&lt;br /&gt;
&lt;br /&gt;
Logi faili nimi moodustatakse lisades failinime lõppu aja sekundites, mis on möödunud UNIXi ajastu algusest, so 1970. 1. jaanuar kell 00:00 hommikul.&lt;br /&gt;
&lt;br /&gt;
===Vealogi===&lt;br /&gt;
&lt;br /&gt;
Vealogisse salvestatakse serveri töös toimunud vead, sh näiteks päringud puuduvatele failidele. Logitaset saab reguleerida direktiiviga LogLevel, soovitatakse taset warn&lt;br /&gt;
&lt;br /&gt;
 LogLevel warn&lt;br /&gt;
&lt;br /&gt;
Direktiiviga ErrorLog näidatakse, kuhu logi salvestada&lt;br /&gt;
&lt;br /&gt;
 ErrorLog /var/log/apache/error.log&lt;br /&gt;
&lt;br /&gt;
Logianalüsaatorid&lt;br /&gt;
&lt;br /&gt;
Apache veebiserveri logi analüüsiks sobib kasutada näiteks programmi Webalizer.&lt;br /&gt;
&lt;br /&gt;
===Veebiserveri staatus ja info===&lt;br /&gt;
&lt;br /&gt;
Eeldusel, et veebiserverisse on sissekompilleeritud vastavad moodulid võtmetega --enable-module=status ja --enable-moudule=info, saab näha veebiserveri konfiguratsiooni (info) ning parasjagu olevat seisu (status).&lt;br /&gt;
&lt;br /&gt;
Näidates konfiguratsioonifailis direktiivi ExtendedStatus parameetriks &amp;quot;On&amp;quot;, esitatakse staatus põhjalikumalt.&lt;br /&gt;
&lt;br /&gt;
Nende veebiserveri omaduste nägemiseks peab sisalduma konfiguratsioonifailis kaks sektsiooni&lt;br /&gt;
&lt;br /&gt;
URLi http://www.zoo.tartu.ee/status-info jaoks&lt;br /&gt;
&lt;br /&gt;
 &amp;lt;Location /server-info&amp;gt;&lt;br /&gt;
     SetHandler server-info&lt;br /&gt;
     Order deny,allow&lt;br /&gt;
     Deny from all&lt;br /&gt;
     Allow from .zoo.tartu.ee&lt;br /&gt;
 &amp;lt;/Location&amp;gt;&lt;br /&gt;
&lt;br /&gt;
URLi http://www.zoo.tartu.ee/server-info jaoks&lt;br /&gt;
&lt;br /&gt;
 &amp;lt;Location /server-status&amp;gt;&lt;br /&gt;
     SetHandler server-status&lt;br /&gt;
     Order deny,allow&lt;br /&gt;
     Deny from all&lt;br /&gt;
     Allow from .zoo.tartu.ee&lt;br /&gt;
 &amp;lt;/Location&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Mõlemas sektsioonis on kasutatud Deny ja Allow direktiive, piiramaks nende URLide külastamise õigust. Kuigi sealt midagi väga salajast ei paista, on külastama lubatud vaid zoo.tart.ee domeeni masinastest.&lt;br /&gt;
Veebi-indekseerijad&lt;br /&gt;
&lt;br /&gt;
Apache veebiserver ei sisalda indekseerimisvahendeid, so võimalusi luua serveeritavale veebile otsingumootorit. Küll aga sobib kasutada mõnda olemasolevat veebiindeksaatorit, näiteks Glimpse või HtDig.&lt;br /&gt;
&lt;br /&gt;
Hoopis teine probleem on kuidas kontrollida, mida tohivad teha teised otsingumootorid (tuntud kui robotid või nuhid) teie veebi külastades. Tüüpiliselt tuleb neid kontrollida, kuna nad võivad täita avalikke andmebaase kiiresti vananeva infoga või ebasoovitavalt teie serverit koormata.&lt;br /&gt;
&lt;br /&gt;
===URLi ümberkirjutamine===&lt;br /&gt;
&lt;br /&gt;
Ümberkirjutamise kasutamiseks on vaja mod_rewrite&#039;i toetus serverisse kompilleerida võtmega --enable-module=rewrite.&lt;br /&gt;
&lt;br /&gt;
See tehnika võimaldab suunata serverisse tulevad päringud ümber, jäädes sama serveri piiridesse või välja. Ümbersuunamisi saab konfigureerida peakonfiguratsioonifailist või .htaccess failist.&lt;br /&gt;
&lt;br /&gt;
Ümbersuunamisel saab kasutada tingimusi või teha seda juhuslikult.&lt;br /&gt;
&lt;br /&gt;
Tõenäoliselt on võimalik järgnevalt näidetena toodud tegevusi korraldada ka muude vahenditega, URLi ümberkirjutamine mod_rewrite&#039;ga on selleks üks käepärane vahend.&lt;br /&gt;
&lt;br /&gt;
Ümberkirjutuste tegemiseks tuleb esmalt aktiviseerida ümberkirjutusmehhanism&lt;br /&gt;
&lt;br /&gt;
 RewriteEngine On&lt;br /&gt;
&lt;br /&gt;
Ümberkirjutust ennast teostab direktiiv RewriteRule. Näiteks suuname kõik veebiserverisse kasutajale priit tulevad päringud (http://www.zoo.tartu.ee/~priit) aadressile http://www.priit.ee&lt;br /&gt;
&lt;br /&gt;
 RewriteRule ^/~priit.+ http://www.priit.ee &lt;br /&gt;
&lt;br /&gt;
Direktiivi RewriteRule esimene argument on regulaaravaldis (^/~priit.+) ning kui sellega päring klapib, siis suunatakse brauser teise parameetriga näidatud URLile (http://www.priit.ee). Kasutaja brauseri Location real kirjutatakse URL paratamatult ümber.&lt;br /&gt;
&lt;br /&gt;
Direktiivi süntaks on järmine&lt;br /&gt;
&lt;br /&gt;
 RewriteRule regulaaravaldis asendus [võtmed]&lt;br /&gt;
&lt;br /&gt;
kus&lt;br /&gt;
&lt;br /&gt;
    * regulaararvaldisega kontrollitakse, kas URL klapib ümberkirjutamisreegliga, kusjuures URL on antud juhul see osa päringust, mis jääb paremale&lt;br /&gt;
      http://www.zoo.tartu.ee&#039;st, näite puhul /~priit.&lt;br /&gt;
    * kui URL klappis, siis asendatakse URL asendusega &#039;asendus&#039;&lt;br /&gt;
    * lisaks on mõnel juhul oluline kasutada võtmeid, mis kontrollivad ümberkirjutamise peensusi &lt;br /&gt;
&lt;br /&gt;
^ tähistab, et / peab olema URLi esimene sümbol ning peale priit &#039;t&#039; tähte võib tulla kuitahes palju mistahes sümboleid (.+). Muuseas, antud juhul suunatakse ümber näiteks päring http://www.zoo.tartu.ee/~priit-onvastmees.&lt;br /&gt;
&lt;br /&gt;
Lubatud on kasutada järjest mitmeid asendusi, mil neid rakendatakse järjest, tulemuseks on viimane tehtud ümberkirjutus. Järgmise asenduse regulaaravaldist klapitatakse eelmise ümberkirjutamisel tehtud tulemusega.&lt;br /&gt;
&lt;br /&gt;
Esitame näite sisemise ning välimise ümberkirjutamise kohta. Soovides vastuseks päringule http://www.zoo.tartu.ee/vana.html brauserisse saata lehe uus.html, kusjuures jättes brauseri Location reale esialgse teksti, so http://www.zoo.tartu.ee/vana.html, kasutage ümberkirjutamisreeglit&lt;br /&gt;
&lt;br /&gt;
 RewriteRule    ^vana\.html$  uus.html&lt;br /&gt;
&lt;br /&gt;
Sama, kuid brauseri Location real kajastub ümberkirjutus&lt;br /&gt;
&lt;br /&gt;
 RewriteRule    ^vana\.html$  uus.html [R]&lt;br /&gt;
&lt;br /&gt;
^vana\.html$ tähendab, et asendus toimub, kui päring oli täpselt vana.html, so algas v-ga (^) ja lõppes l-ga ($); punkt on regulaaravaldise erisümbol ja tuleb põgeda (\).&lt;br /&gt;
&lt;br /&gt;
Kirjutades järjest mitu ümberkirjutusreeglit ning soovides, et ümberkirjutamine lõppeks antud reegliga, tuleb reegli lõppu lisada võti L (last).&lt;br /&gt;
&lt;br /&gt;
 RewriteRule ^/~priit.+ http://www.priit.ee [R,L]&lt;br /&gt;
 RewriteRule ^/~nea.+   http://www.nea.ee   [R,L]&lt;br /&gt;
 RewriteRule ^/~inna.+  http://www.inna.ee  [R,L]&lt;br /&gt;
 RewriteRule ^/~mart.+  http://www.mart.ee  [R,L]&lt;br /&gt;
&lt;br /&gt;
Kui aga veebiserverit tõstetakse ühest masinast teise, oletame, et uus töötab, kuid kasutajate kodud on vanas, siis lisage uue konfi selline rida&lt;br /&gt;
&lt;br /&gt;
 RewriteRule   ^/~(.+)  http://vana.zoo.edu.ee/~$1  [R,L]&lt;br /&gt;
&lt;br /&gt;
Siin on kasutatud regulaaravaldist koos asendamisega. $1 asendatakse tekstiga, mis klappis kasutatud regulaaravaldises avaldisega (.+). Praktiliselt näiteks&lt;br /&gt;
&lt;br /&gt;
===Lisatingimuste kasutamine===&lt;br /&gt;
&lt;br /&gt;
Direktiiv RewriteRule teostab ümberkirjutusi niikuinii tingimusi kasutades regulaaravaldise abil. Peale selle saab seada direktiiviga RewriteCond lisatingimusi. Näiteks sõltuvalt serveri kellaajast, saadetakse brauserile üks või teine veeb&lt;br /&gt;
&lt;br /&gt;
 RewriteEngine on&lt;br /&gt;
 RewriteCond   %{TIME_HOUR}%{TIME_MIN} &amp;gt;0700&lt;br /&gt;
 RewriteCond   %{TIME_HOUR}%{TIME_MIN} &amp;lt;1900&lt;br /&gt;
 RewriteRule   ^index\.html$             paev.html&lt;br /&gt;
 &lt;br /&gt;
 RewriteRule   ^index\.html$             oo.html&lt;br /&gt;
&lt;br /&gt;
%{TIME_HOUR} asendatakse päringu sooritamise kellaaja tunniväärtusega. Oluline on kirjutada &amp;lt; ja 0700 järjest, kusjuues toimub leksikograafiline stringide, mitte arvude võrdlus.&lt;br /&gt;
&lt;br /&gt;
Kui brauser esitab veebiserverile päringu päeval, siis toimub ümberkirjutus index.html -&amp;gt; paev, kuna esimese direktiivi RewriteRule regulaaravaldis klappis URLiga ning kõik eelnenud lisatingimused olid täidetud. Seejärel klapitatakse teist RewriteRule&#039;i eelmise väljundiga, so paev.html - ei klapi ning midagi ei kirjutata ümber.&lt;br /&gt;
&lt;br /&gt;
Lisatingimusi on sobiv kasutada ka brauserite eristamiseks.&lt;br /&gt;
&lt;br /&gt;
 RewriteCond  %{HTTP_USER_AGENT} Mozilla/4*&lt;br /&gt;
 RewriteRule  ^leht.html$                leht.moz.html [L]&lt;br /&gt;
 &lt;br /&gt;
 RewriteCond  %{HTTP_USER_AGENT} Lynx.*&lt;br /&gt;
 RewriteRule  ^leht.html$                leht.lynx.html [L]&lt;br /&gt;
&lt;br /&gt;
Sõltuvalt päringu tegija aadressist, saab esitada erinevat veebi.&lt;br /&gt;
&lt;br /&gt;
 RewriteCond  %{REMOTE_ADDR}  ^192.168.1.3$ &lt;br /&gt;
 RewriteRule  ^leht.html$      192.168.1.3.html [L]&lt;br /&gt;
&lt;br /&gt;
===Ümberkirjutusalus===&lt;br /&gt;
&lt;br /&gt;
Kui te tegutsete sügavamal URLi-struktuuri sees, kasutage RewriteRule&#039;i juurika ümbernimetamiseks direktiivi RewriteBase. Näiteks kirjutatakse URL http://www.zoo.tartu.ee/~priit/lemmikud/hobused.html ümber URLiks http://www.zoo.tartu.ee/~priit/lemmikud/kabjaksed.html&lt;br /&gt;
&lt;br /&gt;
 RewriteBase   /~priit/lemmikud&lt;br /&gt;
 RewriteRule   ^hobused.html$  kabjaksed.html &lt;br /&gt;
&lt;br /&gt;
===Ümberkirjutustabel===&lt;br /&gt;
&lt;br /&gt;
Esitatud päringu juhuslikult valitud URLile ümbersuunamiseks on sobiv kasutada direktiivi RewriteMap. RewriteMap pakub võimaluse salvestada tekstifaili hulga URLe, mille poole saab ümberkirjutusreeglist pöörduda. Näiteks loome olukorra, kus päringule http://www.zoo.tartu.ee/juhuslik vastatakse juhuslikult valitud veebilehega.&lt;br /&gt;
&lt;br /&gt;
Kirjeldame tabelikirjeldusfailis vl.txt juhuslike veebilehtede nimed&lt;br /&gt;
&lt;br /&gt;
 bash# cat /usr/local/apache/vl.txt&lt;br /&gt;
 veebilehed 1.html|2.html|3.html|4.html|5.html|6.html|7.html&lt;br /&gt;
&lt;br /&gt;
ning lisame veebiserveri konfiguratsioonifaili read&lt;br /&gt;
&lt;br /&gt;
 RewriteMap vl rnd:/usr/local/apache/vl.txt&lt;br /&gt;
 RewriteRule   ^/juhus$   /home/html/juhus/${vl:veebilehed|html.html}&lt;br /&gt;
&lt;br /&gt;
Ümberkirjutustabeli süntaks on selline&lt;br /&gt;
&lt;br /&gt;
RewriteMap tablelinimi tabelitüüp:tabelikirjeldusfail&lt;br /&gt;
&lt;br /&gt;
kus&lt;br /&gt;
&lt;br /&gt;
    * tabelinimi - on kooskõlas ümberkirjutusreeglis kasutatud nimega&lt;br /&gt;
    * tabelitüüp - rnd (random) näitab et&lt;br /&gt;
    * tabelikirjeldusfail - failis kirjeldatakse tabeli sisu, näiteks juhusliku puhul peab eraldama andmed |-ga (loogiline OR) &lt;br /&gt;
&lt;br /&gt;
Ümberkirjutusreegli asenduses kasutatud muutujat ${vl:veebilehed|html.html} väärtustatakse ümberkirjutustabeli vl võtme veeblilehed abil. Kui sellist ümberkirjutustabelit mingil põhjusel pole, on muutuja väärtus html.html.&lt;br /&gt;
&lt;br /&gt;
===Ümberkirjutuslogi===&lt;br /&gt;
&lt;br /&gt;
Ümberkirjutamise tööleseadmisel ning toimuvate ümberkirjutuste jälgimiseks saab kasutada direktiive RewriteLog ja RewriteLogLevel&lt;br /&gt;
&lt;br /&gt;
 RewriteLogLevel 3&lt;br /&gt;
 RewriteLog /var/log/apache/rewrite.log&lt;br /&gt;
&lt;br /&gt;
===Veebiserveri konfiguratsioonifaili lugemine===&lt;br /&gt;
&lt;br /&gt;
Lihtasamatel juhtudel pole see oluline millises järjekorras veebiserver direktiivides esitatud reegleid kehtestab. Näiteks kui konfiguratsioonifailis ei sisaldugi Location ja Files sektsioone. Kuid soovides kasutada veebiseverit paindlikumalt tuleb järjekorraga arvestada.&lt;br /&gt;
&lt;br /&gt;
Direktiivide puhul ei hooli Apache&#039;i suurtest ja väikestest tähtedes, kuid parameetrite puhul on see tihti oluline.&lt;br /&gt;
&lt;br /&gt;
Eeldusel, et te paigutate kogu konfiguratsiooni ühte faili sisalduvad seal kaks osa&lt;br /&gt;
&lt;br /&gt;
    * põhiosa - kirjeldatakse veebiserveri üldisi omadusi, näiteks millise kasutaja õigustes ta töötab&lt;br /&gt;
    * ressursside määrangud - kehtestatakse reeglid, kuidas veebiserver faile serveerib, näiteks käsitleb .php lõpulisi faile PHP skriptidena &lt;br /&gt;
&lt;br /&gt;
Üldosa direktiivide järjekord pole oluline, kui sama direktiiv on väärtustatud mitu korda, jääb kehtima viimane väärtus.&lt;br /&gt;
&lt;br /&gt;
Kui ressursside omadusi määratakse grupeerimisvahendite abil, siis sõltumate konfigureerimisfailis esinemise järjekorrast loetakse neid sellises järjekorras: Directory, Files, Location&lt;br /&gt;
&lt;br /&gt;
Directory sees võivad olla kirjeldatud omakorda Files sektsioonid.&lt;br /&gt;
&lt;br /&gt;
Directory sees on lubatud kasutada järgmisi direktiive:&lt;br /&gt;
&lt;br /&gt;
    * DirectoryIndex&lt;br /&gt;
    * Options&lt;br /&gt;
    * Order, Allow, Deny&lt;br /&gt;
    * AllowOverride&lt;br /&gt;
    * AddHandler&lt;br /&gt;
    * AddType &lt;br /&gt;
&lt;br /&gt;
Files sektsioonis on lubatud kasutada praktiliselt neid samu direktiive mida sektsioonis Directory eeldusel, et neid on mõistlik rakendada failidele. Ilmselt ei saa kasutada näiteks direktiivi DirectoryIndex küll aga näiteks Allow ja Deny.&lt;br /&gt;
&lt;br /&gt;
Location sektsioonis on lubatud kasutada praktiliselt neid samu direktiive mida sektsioonis Directory. Kuna Locationit rakedatakse kõige viimasena, siis ei saa seal näiteks kasutada Options direktiivi küll aga näiteks Allow ja Deny&#039;id.&lt;br /&gt;
&lt;br /&gt;
===Veebiserveri turvalisus===&lt;br /&gt;
&lt;br /&gt;
Veebiserveri kasutamisel arvestage, et iseenesest on veebiserver programm, mis teeb teie arvuti failid kättesaadavaks HTTP protokolli kasutavaile klientidele so brauseritele.&lt;br /&gt;
&lt;br /&gt;
Kuigi veebiserver tuleb käivitada juurkasutaja õigustes, toimetab ta edasi konfiguratsioonifailis näidatud kasutajana (User, Group direktiivid).&lt;br /&gt;
&lt;br /&gt;
Siiski, kui te kasutate konfiguratsioonifailis teatud kohtades IO ümbersuunamist, näiteks logimise juures, siis seda teeb Apache juurkasutajana.&lt;br /&gt;
&lt;br /&gt;
Vältimaks ebameeldivaid üllatusi, veenduge, et veebiserveri juurikas ning selle alla jäävad kataloogid on piisavalt kaitstud, so kasutajatel pole neisse kirjutamisõigust. Veebiserver (/usr/local/apache/bin/httpd) ja muud temaga seotud failid, näiteks rotatelogs kuuluvad juurkasutajale ning on tavakasutajaile ning grupile others vaid käivitatavad. Tavaliselt piisab nende tingimuste täitmiseks anda käsud&lt;br /&gt;
&lt;br /&gt;
 bash# cd /usr/local/apache&lt;br /&gt;
 bash# chown 0 bin conf logs&lt;br /&gt;
 bash# chgrp 0  bin conf logs&lt;br /&gt;
 bash# chmod 755 bin conf logs&lt;br /&gt;
 &lt;br /&gt;
 bash# chown 0 /usr/local/apache/bin/httpd&lt;br /&gt;
 bash# chgrp 0 /usr/local/apache/bin/httpd&lt;br /&gt;
 bash# chmod 511 /usr/local/apache/bin/httpd&lt;br /&gt;
&lt;br /&gt;
Lisaks, mõelge järele, kas te peate kasutajaile lubama käivitada CGI skripte, ning andmebaase ning otsustage millistel tingimustel, samuti kataloogipõhine veebiserveri konfigureerimisvõimalus. Näiteks lubage kasutajatel CGI skripte tarvida ainult kataloogist    ~/public_html/cgi-bin&lt;br /&gt;
&lt;br /&gt;
 &amp;lt;Directory /usr/home/*/public_html/cgi-bin&amp;gt;&lt;br /&gt;
 AddHandler cgi-script .cgi&lt;br /&gt;
 Options +ExecCGI&lt;br /&gt;
 &amp;lt;/Directory&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Heal juhul saab veebiserveri tööleseadmise eel otsustada, milliste omadustega peab ta olema. Reeglina ei soovitata lihtsalt sisse kompileerida toetust, mida praktiliselt ei tarvitata. Näiteks, kui te olete kindel, et pole vajadust server-info ja server-status&#039;e järele, siis jätke vastavad moodulid välja. Näidake seda Apache ./configure skripti juures vastavate võtmetega --disable-module=info --disable-module=status.&lt;br /&gt;
&lt;br /&gt;
===Virtuaalveebiserverid===&lt;br /&gt;
&lt;br /&gt;
Ühte ja sama Apache veebiserverit saab tööle seada nii, et ta serveerib erinevaid andmeid sõltuvalt millise nimega tema poole pöörduti. Asjakorraldust nimetatakse virtuaaseteks veebiserveriteks, kuna füüsiliselt on tegu ühe arvutiga, kuid külastajaile jäetakse mulje, et neid on mitu.&lt;br /&gt;
&lt;br /&gt;
Virtuaalseid veebiservereid on kolme sorti:&lt;br /&gt;
&lt;br /&gt;
    * pordipõhised - sõltuvalt külastaja poolt kastatud pordist serveeritakse erinevat veebi&lt;br /&gt;
    * IP-põhised - sõltuvalt külastaja poolt kasutatud IP aadressist serveeritakse erinevat veebi&lt;br /&gt;
    * nimepõhised - sõltuvalt külastaja poolt kasutatud DNSi nimest serveeritakse erinevat veebi; reeglina vastavad erinevad nimed samale IP aadressile so on kirjeldatud CNAMEdena &lt;br /&gt;
&lt;br /&gt;
Põhimõtteliselt on võimalik kasutada neid virtuaalservereid ka kombineeritult korraga.&lt;br /&gt;
&lt;br /&gt;
Erijuht virtuaalveebi serveerida on käivitada mitu eksemplari httpd servereid, iga oma konfiguratsiooniga. Kuna see võimalus on suhteliselt ebaefektiivne ning ei paku olulisi täiendavaid võimalusi, siis seda me ei käsitle.&lt;br /&gt;
&lt;br /&gt;
Virtuaalserveri sektsioonis (VirtualHost) saab kasutada paljusid direktiive, mida peaserveri puhul sh direktiive Options, Alias, Directory, Location, Files. Samuti direktiive, mis reguleerivad SSI, CGI, PHP, Emperli, ümberkirjutamise ja logi kasutamist. Kui direktiivi ei näidata, kasutataks põhikonfiguratsiooni väärtus, kui seal seda samuti pole, siis vaikeväärtust.&lt;br /&gt;
&lt;br /&gt;
===Pordipõhised virtuaalveebiserverid===&lt;br /&gt;
&lt;br /&gt;
Kasutamaks erinevaid veebiseveri konfiguratsioone sõltuvalt sellest, millisele pordile päring tuli, kasutage direktiive Listen ja VirtualHost. Näiteks teenindab veebiserveri konfiguratsioonifaili põhiosale vastav server kõiki päringuid va neid, mis on suunatud aadressi 193.40.50.1 (www.zoo.edu.ee) pordile 8080 või pordile 8081. Viimast kahte teenindatakse vastaval VirtualHosti sektsioonile. Näiteks seame lisaks põhiosale tööle kaks alternatiivset dokumendijuurikat ja logi&lt;br /&gt;
&lt;br /&gt;
...&lt;br /&gt;
 Listen 80&lt;br /&gt;
 Listen 193.40.50.1:8080&lt;br /&gt;
 Listen 193.40.50.1:8081&lt;br /&gt;
 &amp;lt;VirtualHost 193.40.50.1:8080&amp;gt;&lt;br /&gt;
    ServerAdmin mart@zoo.edu.ee&lt;br /&gt;
    DocumentRoot /www/mardizoo&lt;br /&gt;
    ErrorLog /var/logs/mardizoo.error.log&lt;br /&gt;
    CustomLog /var/logs/mardizoo.log common&lt;br /&gt;
  &amp;lt;/VirtualHost&amp;gt;&lt;br /&gt;
 &lt;br /&gt;
 &amp;lt;VirtualHost 193.40.50.1:8081&amp;gt;&lt;br /&gt;
    ServerAdmin priit@zoo.edu.ee&lt;br /&gt;
    DocumentRoot /www/priiduzoo&lt;br /&gt;
    ErrorLog /var/logs/priituzoo.error.log&lt;br /&gt;
    CustomLog /var/logs/priiduzoo.log common&lt;br /&gt;
 &amp;lt;/VirtualHost&amp;gt;&lt;br /&gt;
&lt;br /&gt;
kusjuures peakonfiguratsiooni on lisatud vastavad Listen direktiivid.&lt;br /&gt;
&lt;br /&gt;
Brauseris tuleb päringud esitada vastavalt http://www.zoo.edu.ee:8080 või http://www.zoo.edu.ee:8081.&lt;br /&gt;
&lt;br /&gt;
===IP-põhised virtuaalveebiseverid===&lt;br /&gt;
&lt;br /&gt;
IP-põhised virtuaalveebiserverite kasutamisel on veebiserveril mitu IP aadressi. St masinal on mitu võrgukaarti või on kasutatud IP-aliasingut.&lt;br /&gt;
&lt;br /&gt;
IP-põhiste virtuaalveebiserverite kasutamisel näidake direktiivi VirtualHost juures ära IP aadress, ning samas sektsioonis kirjeldage kõnealuse veebiserveri omadused. Näiteks kui masinal on kaks võrgukaarti IP aadressidega 193.40.10.1 ning 193.40.50.1 kasutage sektsioone&lt;br /&gt;
&lt;br /&gt;
 &amp;lt;VirtualHost 193.40.50.1&amp;gt;&lt;br /&gt;
    ServerName www.zoo.tartu.ee&lt;br /&gt;
    ServerAdmin priit@zoo.tartu.ee&lt;br /&gt;
    DocumentRoot /www/tartuzoo&lt;br /&gt;
    ErrorLog /var/logs/tartuzoo.error.log&lt;br /&gt;
    CustomLog /var/logs/tartuzoo.log common&lt;br /&gt;
 &amp;lt;/VirtualHost&amp;gt;&lt;br /&gt;
 &lt;br /&gt;
 &amp;lt;VirtualHost 193.40.10.1&amp;gt;&lt;br /&gt;
    ServerName www.zoo.edu.ee&lt;br /&gt;
    ServerAdmin mart@zoo.edu.ee&lt;br /&gt;
     DocumentRoot /www/eduzoo&lt;br /&gt;
     ErrorLog /var/logs/eduzoo.error.log&lt;br /&gt;
     CustomLog /var/logs/eduzoo.log common&lt;br /&gt;
 &amp;lt;/VirtualHost&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Peakonfiguratsiooni osa järgi teenindatakse neid päringuid, millel ei leidu sobivat virtuaalserverit. Näiteks kui masinal on veel kolmas võrguseade ning päring siseneb selle aadressile.&lt;br /&gt;
&lt;br /&gt;
Virtuaalserveri direktiivi juurde võib kirjutada ka mitu IP aadressi, mispuhul kasutatakse kõnealust serverit neile kõigile tulnud päringutele vastamisel.&lt;br /&gt;
&lt;br /&gt;
===Nimepõhised virtuaalveebiserverid===&lt;br /&gt;
&lt;br /&gt;
Nimepõhisete virtuaalveebiserverite kasutamine eeldab, et ühele IP aadressile (193.40.50.1) on nimesüsteemis (DNS) seatud näiteks CNAMEiga vastavusse mitu domeenime (www.zoo.tartu.ee, post.zoo.tartu.ee).&lt;br /&gt;
&lt;br /&gt;
Kui soovite kasutada enam kui ühte veebiserverit, siis on soovitav kõik veebiserverid konfigureerida virtuaalseteks. Kusjuures põhiserverile ei vastagi DocumentRoot&#039;i.&lt;br /&gt;
&lt;br /&gt;
Nimepõhiste virtuaalveebiserverite kasutamine deklareeritakse peakonfiguratsiooni osas direktiiviga NameVirtualHost. Direktiivi järel näidatakse IP aadress, millele tulnud päringute teenindamisel kasutatakse sobivat VirtualHosti sektsiooni. Näiteks&lt;br /&gt;
&lt;br /&gt;
 NameVirtualHost 193.40.50.1&lt;br /&gt;
&lt;br /&gt;
puhul kasutatakse aadressile 193.40.50.1 saabunud päringute töötlemiseks sobiva domeeninimega (ServerName) VirtualHost sektsiooni.&lt;br /&gt;
&lt;br /&gt;
Erinevad virtuaalserverid kirjeldatakse direktiiviga VirtualHost, näiteks sarnase sektsiooniga&lt;br /&gt;
&lt;br /&gt;
 &amp;lt;VirtualHost 193.40.50.1&amp;gt;&lt;br /&gt;
     ServerName www.zoo.tartu.ee&lt;br /&gt;
     ServerAdmin priit@zoo.tartu.ee&lt;br /&gt;
     DocumentRoot /www&lt;br /&gt;
     ErrorLog /var/logs/www.error.log&lt;br /&gt;
     CustomLog /var/logs/www.log common&lt;br /&gt;
 &amp;lt;/VirtualHost&amp;gt;&lt;br /&gt;
 &lt;br /&gt;
 &amp;lt;VirtualHost 193.40.50.1&amp;gt;&lt;br /&gt;
     ServerName post.zoo.tartu.ee&lt;br /&gt;
     ServerAdmin post@zoo.tartu.ee&lt;br /&gt;
     DocumentRoot /post&lt;br /&gt;
     ErrorLog /var/logs/post.error.log&lt;br /&gt;
     CustomLog /var/logs/post.log common&lt;br /&gt;
 &amp;lt;/VirtualHost&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Kui serveril on mitu võrguaadressi, siis võib kasutada direktiivi NameVirtualHost mitu korda ning lisada vastavad sektsioonid, kuid lühem on asendada IP aadress täringa (*)&lt;br /&gt;
&lt;br /&gt;
 NameVirtualHost *&lt;br /&gt;
 &lt;br /&gt;
 &amp;lt;VirtualHost *&amp;gt;&lt;br /&gt;
     ServerName www.zoo.tartu.ee&lt;br /&gt;
     ServerAdmin priit@zoo.tartu.ee&lt;br /&gt;
     DocumentRoot /www&lt;br /&gt;
     ErrorLog /var/logs/www.error.log&lt;br /&gt;
     CustomLog /var/logs/www.log common&lt;br /&gt;
 &amp;lt;/VirtualHost&amp;gt;&lt;br /&gt;
 &lt;br /&gt;
 &amp;lt;VirtualHost *&amp;gt;&lt;br /&gt;
     ServerName post.zoo.tartu.ee&lt;br /&gt;
     ServerAdmin post@zoo.tartu.ee&lt;br /&gt;
     DocumentRoot /post&lt;br /&gt;
     ErrorLog /var/logs/post.error.log&lt;br /&gt;
     CustomLog /var/logs/post.log common&lt;br /&gt;
 &amp;lt;/VirtualHost&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Päringuid, mis saabuvad direktiiviga NameVirtualHost näidatud aadressile ei teenindata IP-põhiste sektsioonide ega peaserveri konfiguratsiooni alusel.&lt;br /&gt;
&lt;br /&gt;
===Kasulikud lisamaterjalid===&lt;/div&gt;</summary>
		<author><name>Triinu</name></author>
	</entry>
	<entry>
		<id>https://kuutorvaja.eenet.ee/w/index.php?title=Apache%27i_veebiserver&amp;diff=2839</id>
		<title>Apache&#039;i veebiserver</title>
		<link rel="alternate" type="text/html" href="https://kuutorvaja.eenet.ee/w/index.php?title=Apache%27i_veebiserver&amp;diff=2839"/>
		<updated>2007-01-26T14:01:19Z</updated>

		<summary type="html">&lt;p&gt;Triinu: /* Lisatingimuste kasutamine */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;===Veebiserveri konfigureerimine ja käivitamine===&lt;br /&gt;
&lt;br /&gt;
Veebiserveri tööd juhib üks konfiguratsioonifail httpd.conf. Sellesse kirjutatake parameetrid üks reale, kusjuures # märgiga algavaid ridu ignoreeritakse. Ridu saab jätkata sisestades kurakallu (\) viimase sümbolina eelmisele reale, tegelikult eelviimasena, viimane on reavahetus :)&lt;br /&gt;
&lt;br /&gt;
Lihtsal juhul võiks olla konfiguratsioonifail selline&lt;br /&gt;
&lt;br /&gt;
 User nobody&lt;br /&gt;
 Group nobody&lt;br /&gt;
 ServerType standalone&lt;br /&gt;
 ServerName www.zoo.tartu.ee&lt;br /&gt;
 ServerRoot &amp;quot;/usr/local/apache&amp;quot;&lt;br /&gt;
 DocumentRoot &amp;quot;/html&amp;quot;&lt;br /&gt;
 DirectoryIndex index.html&lt;br /&gt;
 ErrorLog /var/log/apache/error.log&lt;br /&gt;
 Listen 80&lt;br /&gt;
 Options None&lt;br /&gt;
 &amp;lt;Directory /&amp;gt;&lt;br /&gt;
 AllowOverride None&lt;br /&gt;
 &amp;lt;/Directory&amp;gt;&lt;br /&gt;
&lt;br /&gt;
kus on kasutatud järgmisi direktiive&lt;br /&gt;
&lt;br /&gt;
    * User - kasutaja, kelle õigustes veebiserver töötab&lt;br /&gt;
    * Group - grupp, kelle õigustes veebiserver töötab&lt;br /&gt;
    * ServerType - serveri tüüp, tavaliselt standalone, so mitte inetd abil käivitatav&lt;br /&gt;
    * ServerName - millise nime server arvab endal olevat&lt;br /&gt;
    * ServerRoot - kataloog, mille all serveri programmid asuvad&lt;br /&gt;
    * DocumentRoot - veebifailid, mida külastajaile serveeritakse&lt;br /&gt;
    * DirectoryIndex - faili nimi, mis brauserisse saadetakse, kui ta küsib kataloogi eeldusel, et sellenimeline fail kataloogis leidub&lt;br /&gt;
    * ErrorLog - fail, kuhu saadetakse veateated; kataloog, kus see fail asub peab olema kindlasti olemas!&lt;br /&gt;
    * Listen - port, millel veebiserver ootab päringuid, kõigil võrguseadmetel&lt;br /&gt;
    * Options - väärtus None tagab, et külastajale näidatakse vaid neid veebilehti, mida ta nimeliselt küsib. &lt;br /&gt;
&lt;br /&gt;
Reeglina on veebiserverina töötaval arvutil nö tavaline nimi, näiteks kalake.zoo.tartu.ee ning nimeserveris on talle defineeritud lisaks ka mõned hüüdnimed (CNAMEga). Tavaliselt kasutatakse veebiserveri nime alguses kombinatsiooni www, kokku saab antud juhul www.zoo.tartu.ee, kuid veebiserveri nimi ei pea sugugi algama www-ga olles näiteks see sama kalake.zoo.tartu.ee.&lt;br /&gt;
&lt;br /&gt;
Konfiguratsioonifailis kasutatud kataloogid peavad süsteemis leiduma, toodud näites peavad nad kuuluma lähtudes turvakaalutlustest juurkasutajale; samuti nendest kataloogidest ülevalpool asuvad kataloogid.&lt;br /&gt;
&lt;br /&gt;
Reeglina on süsteemis vaikimisi olemas mitteprivilegeeritud kasutaja nobody grupiga nobody. Võib kasutada seda või luua spetsiaalne kasutaja, näiteks apache grupiga veeb. Veebiserveri mittekäivitumise põhjuseks on tihtipeale vastavate kasutajate puudumine süsteemis.&lt;br /&gt;
&lt;br /&gt;
Näidates võrguseadme nime, vastatakse ainult sellelt seadmelt tulevaile päringutele, näiteks &#039;Listen 193.40.10.1 80&#039;.&lt;br /&gt;
&lt;br /&gt;
===Sektsioon===&lt;br /&gt;
&lt;br /&gt;
 &amp;lt;Directory /&amp;gt;&lt;br /&gt;
 AllowOverride None&lt;br /&gt;
 &amp;lt;/Directory&amp;gt;&lt;br /&gt;
&lt;br /&gt;
tähendab, et kataloogides pole täiendavate vahenditega õigust veebiserveri konfiguratsiooni täpsustada.&lt;br /&gt;
&lt;br /&gt;
Kuigi teatud parameetrite järjekord konfiguratsioonifailis ei ole tähtis, jääb kehtima parameetrile viimasena omistatud väärtus.&lt;br /&gt;
Käivitamine&lt;br /&gt;
&lt;br /&gt;
Veebiserver käivitatakse ja peatatakse käsuga apachectl&lt;br /&gt;
&lt;br /&gt;
 bash# apachectl start&lt;br /&gt;
&lt;br /&gt;
Peatamine toimub käsuga stop&lt;br /&gt;
&lt;br /&gt;
 bash# apachectl stop&lt;br /&gt;
&lt;br /&gt;
Peale konfiguratsioonifaili muutmist kehtestuvad muutused serveri taaskäivitamisel soovitavalt käsuga graceful, või restart&lt;br /&gt;
&lt;br /&gt;
 bash# apachectl graceful&lt;br /&gt;
&lt;br /&gt;
Veebiserver tuleb käivitada juurkasutajaõigustes, kuid ta töötab konfiguratsioonifailis näidatud User ja Group kasutajana. See tähendab, et failisüsteemi osad, mida soovitakse veebi näidata peavad olema vastavatele UNIXi kasutajatele nähtavad. Tavaliselt on nende failide kasutajagrupile other antud lugemisõigus.&lt;br /&gt;
&lt;br /&gt;
Töötavast veebiserverist annab tunnistust see, kui süsteemi protsessitabelis on httpd deemoni nimi, isegi mitu&lt;br /&gt;
&lt;br /&gt;
 bash# ps auxw | grep httpd&lt;br /&gt;
 root   30692  0.0  5.4  4236 3288  ??  Ss    4:39PM   0:00.16 /usr/local/apache/bin/httpd&lt;br /&gt;
 nobody 30840  0.0  5.5  4272 3324  ??  I     5:52PM   0:00.00 /usr/local/apache/bin/httpd&lt;br /&gt;
 nobody 30841  0.0  5.5  4272 3324  ??  I     5:52PM   0:00.00 /usr/local/apache/bin/httpd&lt;br /&gt;
 nobody 30842  0.0  5.5  4272 3324  ??  I     5:52PM   0:00.00 /usr/local/apache/bin/httpd&lt;br /&gt;
 nobody 30843  0.0  5.4  4248 3296  ??  I     5:52PM   0:00.00 /usr/local/apache/bin/httpd&lt;br /&gt;
 nobody 30844  0.0  5.4  4248 3296  ??  I     5:52PM   0:00.00 /usr/local/apache/bin/httpd&lt;br /&gt;
 nobody 30845  0.0  5.4  4256 3300  ??  I     5:52PM   0:00.00 /usr/local/apache/bin/httpd&lt;br /&gt;
&lt;br /&gt;
Aga veel parem kinnitus on, kui olemaks näitega kooskõlas päring http://www.zoo.edu.ee näitab veebilehte, so faili /html/index.html. Samuti saab antud näite rakendamisel näha kasutajate kodulehti eeldusel, et nad asuvad kataloogide ~/public_html all.&lt;br /&gt;
&lt;br /&gt;
Kui veebiserveri käivitamisel ilmneb raskusi, siis tasub uurida vealogi (/var/log/apache/error.log) sisu.&lt;br /&gt;
Automaatne käivitamine&lt;br /&gt;
&lt;br /&gt;
===Veebiressursside kasutusõigus===&lt;br /&gt;
&lt;br /&gt;
Veebiserveri konfigureerimisel on väga oluline näidata, mida vastuseks külastaja päringule tohib teha või saata või kas üldse külastajat teenindada.&lt;br /&gt;
&lt;br /&gt;
===Direktiiv Option===&lt;br /&gt;
&lt;br /&gt;
Direktiivi Options abil saab määratleda, mida kataloogis leiduvate failidega lubatakse teha. Näiteks määrates minimaalsed õigused parameetriga None, saab kataloogis sisalduvate failide poole pöörduda vaid nimeliselt; failide nimekirja ei näidata.&lt;br /&gt;
&lt;br /&gt;
 Options None&lt;br /&gt;
&lt;br /&gt;
===Muud võimalused:===&lt;br /&gt;
&lt;br /&gt;
    * FollowSymLinks - kui brauser esitatud päringus on failinimi viide, siis seda järgitakse vaatamata, kas viidatav fail kuulub samale kasutajale kui&lt;br /&gt;
      viide&lt;br /&gt;
    * SymLinksIfOwnerMatch - kui brauser esitatud päringus on failinimi viide, siis seda järgitakse juhul, kas viidatav fail kuulub samale kasutajale &lt;br /&gt;
      kellele viide&lt;br /&gt;
    * Indexes - näidatakse serveri kataloogi failide nimekirja kui DirectoryIndexis näidatud faile ei leitud&lt;br /&gt;
    * ExecCGI - CGI skriptide kasutamiseks&lt;br /&gt;
    * Includes - SSI failide kasutamiseks&lt;br /&gt;
    * IncludesNOEXEC - SSI failide kasutamiseks, va #exec ja CGI skriptide #include&lt;br /&gt;
    * All - kõik eelnimetatu on lubatud &lt;br /&gt;
&lt;br /&gt;
Korraga võib määratleda ka mitu parameetrit, eraldades nad üksteisest tühikuga.&lt;br /&gt;
&lt;br /&gt;
Kui konfiguratsioonifailis kasutada mitmel Options direktiivi, jääb kehtima viimane. Lisades parameetri algusesse + või - märgi, lisatakse või eemaldatakse vastav toime. Näiteks kasutades direktiive&lt;br /&gt;
&lt;br /&gt;
 Options Indexes Includes FollowSymLinks&lt;br /&gt;
 Options -FollowSymLinks&lt;br /&gt;
&lt;br /&gt;
on toime samaväärne avaldisega&lt;br /&gt;
&lt;br /&gt;
 Options Indexes Includes&lt;br /&gt;
&lt;br /&gt;
Direktiivi Options vaikeväärtus on All.&lt;br /&gt;
&lt;br /&gt;
===Direktiivid Allow, Deny ja Order===&lt;br /&gt;
&lt;br /&gt;
Direktiividega Allow, Deny ning Order abil saab kehtestada, millistelt domeenidelt tulevaid päringuid teenidatakse. Orderi abil seatakse, millises järjekorras kontroll toimub, kusjuures rakendatakse viimast reeglit, millega külastaja domeeninimi klapib. Kui ükski reegel ei klapi, toimitakse vaikimisi nagu viimane Orderi parameeter näitab. Näiteks sellise sektsiooni puhul&lt;br /&gt;
&lt;br /&gt;
 Order Deny,Allow&lt;br /&gt;
 Deny from all&lt;br /&gt;
 Allow from zoo.tartu.ee&lt;br /&gt;
&lt;br /&gt;
Päringut domeenist zoo.tartu.ee teenindatakse, esimene reegel (Deny) keelab kõik, kuid teine (Allow) lubab domeeni zoo.tartu.ee. Kui Order oleks vastupidi, siis lubaks esimene reegel (Allow) zoo.tartu.ee, kuid kehtima jääks viimane reegel (Deny). Reeglite järjekord failis ei loe, kuna selle määrab Order.&lt;br /&gt;
&lt;br /&gt;
Järgmises näites on lubatud päringud vaid tartu.ee domeenist, va alamdomeen zoo.tartu.ee&lt;br /&gt;
&lt;br /&gt;
 Order Allow,Deny&lt;br /&gt;
 Allow from tartu.ee&lt;br /&gt;
 Deny from zoo.tartu.ee&lt;br /&gt;
&lt;br /&gt;
Tõepoolest, päringut foo.tartu.ee domeenist teenindatakse kuna ta klapib esimese (Allow) reegliga, mis lubab ning teisega, mis keelab mitte. Päringuid muudest domeenidest keelatakse, kuna nad ei klapi kummagi reegliga ning vaikimisi rakendatakse viimast Orderi parameetrit - Deny.&lt;br /&gt;
&lt;br /&gt;
Order, Deny ja Allow direktiive saab kasutada vaid direktiivi Directory sees ning Deny ja Allow tuleb eraldada ainult täpselt ühe komaga!&lt;br /&gt;
&lt;br /&gt;
===Veebiressursside grupeerimisvahendid===&lt;br /&gt;
&lt;br /&gt;
Veebiserveri kasutusõigust ning teisi omadusi reguleerivaid parameetreid saab grupeerida järgmiste direktiividega&lt;br /&gt;
&lt;br /&gt;
    * Directory - kataloogis ning selle alla jäävate alamkataloogides sisalduvate failide grupeerimiseks&lt;br /&gt;
    * Files - faili nimede järgi failide grupeerimiseks&lt;br /&gt;
    * Location - URLi ning selle alla jäävate URLide grupeerimiseks &lt;br /&gt;
&lt;br /&gt;
Sellistele gruppidele saab rakendada korraga samu määratlusi, näiteks Option parameetriga.&lt;br /&gt;
&lt;br /&gt;
===Directory direktiiv===&lt;br /&gt;
&lt;br /&gt;
Directory abil saab määrata näidatud kataloogi alla jäävatele failidele ühesuguseid omadusi. Näiteks kehtestame, et kataloogi /html/veeb/kalamaja alla jäävates kataloogides käsitletakse DirectoryIndexina faile index.html ja index.htm&lt;br /&gt;
&lt;br /&gt;
 &amp;lt;Directory /html/veeb/kalamaja&amp;gt;&lt;br /&gt;
 DirectoryIndex index.html index.htm&lt;br /&gt;
 &amp;lt;/Directory&amp;gt;&lt;br /&gt;
&lt;br /&gt;
===Files direktiiv===&lt;br /&gt;
&lt;br /&gt;
Sarnaselt Directory&#039;le saab kehtestada näidatud regulaaravaldisega klappivate failinimedega failidele ühesuguseid omadusi. Näiteks kehtestame, et failides, mille nimi algab tähtedega &amp;quot;e_&amp;quot; ja lõpeb .html-ga, tohivad sisaldada Embperli konstruktsioone&lt;br /&gt;
&lt;br /&gt;
 &amp;lt;Files ~ &amp;quot;^e_.*\.html$&amp;quot;&amp;gt;&lt;br /&gt;
 Options +ExecCGI&lt;br /&gt;
 SetHandler perl-script&lt;br /&gt;
 PerlHandler HTML::Embperl&lt;br /&gt;
 &amp;lt;/Files&amp;gt;&lt;br /&gt;
&lt;br /&gt;
===Location direktiiv===&lt;br /&gt;
&lt;br /&gt;
Sarnaselt Directory direktiivile saab Locationiga kehtestada osale veebikohale samasuguseid omadusi. Location mõjub mitte kataloogistruktuuri, vaid URLi mõttes hulgale elementidele. Näiteks kehtestame, et URL&#039;ist http://kalake.zoo.edu.ee/hobused edasi tohib näha kataloogide nimekirja&lt;br /&gt;
&lt;br /&gt;
 &amp;lt;Location /hobused&amp;gt;&lt;br /&gt;
 Options Indexes&lt;br /&gt;
 &amp;lt;/Location&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Tavaliselt piisab Directory kasutamisest, kuid kuna veebiserveri kataloogi-ja URLihierarhia ei pruugi alati kokku langeda, siis on sellest vahel abi.&lt;br /&gt;
&lt;br /&gt;
===Kataloogipõhine veebiserveri konfigureerimine===&lt;br /&gt;
&lt;br /&gt;
Veebiserveri põhikonfiguratsioonifailis näidatud väärtusi saab iga kataloogi jaoks täpsustavalt määrata kataloogis sisalduva konfiguratsiooni .htaccess faili abil. Selle faili nimi on määratud põhikonfiguratsioonifailis direktiiviga AccessFileName, mis peab esinema Directory sees. Faili süntaks on sama, mis põhikonfiguratsioonifailil. Seda, milliseid omadusi on ludatud .htaccess failiga täpsustada, näitab põhikonfiguratsioonifailis direktiiv AllowOverride; järgmistele parameeritele vastab voli muuta toodud parameetreid&lt;br /&gt;
&lt;br /&gt;
    * AuthConfig - AuthGroupFile, AuthName, AuthType, AuthUserFile, Require jne&lt;br /&gt;
    * FileInfo - AddEncoding, AddLanguage, AddType, DefaultType, ErrorDocument jne&lt;br /&gt;
    * Indexes - DirectoryIndex, AddDescription, AddIcon, AddIconByEncoding, AddIconByType, DefaultIcon, DirectoryIndex, FancyIndexing, HeaderName,&lt;br /&gt;
      IndexIgnore, IndexOptions, ReadmeName jne&lt;br /&gt;
    * Limit - Order, Allow, Deny&lt;br /&gt;
    * Options - Options, XBitHack&lt;br /&gt;
    * None - mitte midagi&lt;br /&gt;
    * All - kõik nimetatud &lt;br /&gt;
&lt;br /&gt;
Vaikimisi toimib parameeter All. Kui ei soovita lasta kasutajatel veebiserverit konfigureerida, siis kasutage peale veebiserveri põhiosa direktiivi&lt;br /&gt;
&lt;br /&gt;
 AllowOverride None&lt;br /&gt;
&lt;br /&gt;
.htaccess failis tohib kasutada direktiivi Files, aga ei saa kasutada Diectory või Location.&lt;br /&gt;
&lt;br /&gt;
Tavaliselt on ohutu ning kasutajaile piisav&lt;br /&gt;
&lt;br /&gt;
 AllowOverride Indexes AuthConfig&lt;br /&gt;
&lt;br /&gt;
===Alias===&lt;br /&gt;
&lt;br /&gt;
Direktiiv Alias võimaldab muuta veebi failile kataloogistruktuuri vastavust URLi struktuurile. Näiteks olgu kataloogis /html/veeb/hobused/2000/tyrinaitus/ehola_talu failid ning soovime neile ligi pääseda URLiga http://www.zoo.tartu.ee/ehola_talu. Kasutame sellist Aliast&lt;br /&gt;
&lt;br /&gt;
 Alias /ehola_talu/ /html/veeb/hobused/2000/tyrinaitus/ehola_talu/&lt;br /&gt;
&lt;br /&gt;
Antud juhul laheneb päring http://www.zoo.tartu.ee/ehola_talu/, kuid mitte http://www.zoo.tartu.ee/ehola_talu.&lt;br /&gt;
&lt;br /&gt;
Lisaks saab Aliasega kaasata veebi faile ning katalooge, mis asuvad failisüsteemi mõttes väljaspool DocumentRootu.&lt;br /&gt;
&lt;br /&gt;
 Alias /valdek/ /html/valdek/veeb/&lt;br /&gt;
&lt;br /&gt;
Aliase süntaks on järgmine&lt;br /&gt;
&lt;br /&gt;
 Alias URLi-tee kataloogi-tee&lt;br /&gt;
&lt;br /&gt;
kus&lt;br /&gt;
&lt;br /&gt;
    * URLi-tee on osa URList, mis jääb peale serverinimi osa, näiteks http://www.zoo.tartu.ee/ehola_talu/ puhul /ehola_talu/&lt;br /&gt;
    * kataloogi-tee on vastava kataloogi nimi &lt;br /&gt;
&lt;br /&gt;
Aliasi saab kasutada peakonfiguratsioonifailis või võrdväärsetes kohtades, näiteks VirtualHost sektsioonis. Aliaste kasutamisel tuleb tavaliselt kasutada kataloogi tee&#039;le vastavaid Directory direktiive, muutmaks sobivaks veebiosa kasutusõigused. Aliased loetakse läbi enne Directory sektsioone.&lt;br /&gt;
&lt;br /&gt;
Aliase kasutamisel tuleb tähele panna, et URLi tee asendatakse igal juhul kataloogiteega. Kas sel juhul, kui päring on pikem, kooskõlas kasutatud näitega päringu http://www.zoo.tartu.ee/ehola_talu/ratsahobused/piiker.html puhul esitatakse fail /html/veeb/hobused/2000/tyrinaitus/ehola_talu/ratsahobused/piiker.html.&lt;br /&gt;
&lt;br /&gt;
Soovides teha paindlikumaid nö ümberkirjutusi, kasutage mod_rewrite&#039;i võimalusi.&lt;br /&gt;
&lt;br /&gt;
===CGI===&lt;br /&gt;
&lt;br /&gt;
CGI kasutamiseks lisage konfiguratsioonifaili rida&lt;br /&gt;
&lt;br /&gt;
 AddHandler cgi-script .cgi .pl&lt;br /&gt;
&lt;br /&gt;
Tulemusena püüab veebiserver käivitada kõiki serveeritavaid .cgi ja .pl lõpuliste nimedega faile, eeldusel, et failile rakendub Optioni parameeter ExecCGI. Käivitamisel tekkiv programmiväljund saadetakse brauserisse, kusjuures see peab algama tuntud Content-type&#039;iga, näiteks text/html. Seda võib teha näiteks Directory abil; kehtestame, et kõikjal veebi faile sisaldavas kataloogis /html/veeb/suhtleja ja selle all asuvad .cgi ja .pl lõpuliste nimedega failid on käivitatavad&lt;br /&gt;
&lt;br /&gt;
 &amp;lt;Directory /suhtleja&amp;gt;&lt;br /&gt;
 Options ExecCGI&lt;br /&gt;
 &amp;lt;/Directory&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Soovides näidata, et vaatamata failinimele tuleb käsitleda faili CGI skriptina, kasutage ScriptAlias direktiivi. Tüüpiliselt määratletakse URLi http://kalake.zoo.tartu.ee/cgi-bin/&#039;le vastavad failid skriptideks&lt;br /&gt;
&lt;br /&gt;
 ScriptAlias /cgi-bin/ /html/veeb/cgi-bin/&lt;br /&gt;
&lt;br /&gt;
Tulemusena, näiteks päringu http://kalake.zoo.tartu.ee/cgi-bin/kasutajatenimikiri.sh puhul käivitatakse fail /html/veeb/cgi-bin/kasutajatenimekiri.sh.&lt;br /&gt;
&lt;br /&gt;
===SSI===&lt;br /&gt;
&lt;br /&gt;
SSI (Server Sides Includes) tehnika võimaldab sisestada brauseri päringus nõutud faili koosseisu muude failide sisu.&lt;br /&gt;
&lt;br /&gt;
SSI kasutamiseks lisage konfiguratsioonifaili rida&lt;br /&gt;
&lt;br /&gt;
 AddType text/html .shtml&lt;br /&gt;
 AddHandler server-parsed .shtml&lt;br /&gt;
&lt;br /&gt;
ning näidake näiteks direktiivide Directory ja Options parameetri Includes abil, milliseid faile tohib server käsitleda SSIdena. Näiteks kehtestame, et kataloogi /html/veeb/uudised all kasutatakse SSId&lt;br /&gt;
&lt;br /&gt;
 &amp;lt;Directory /html/veeb/uudised&amp;lt;&amp;gt;&lt;br /&gt;
 Options IncludesNOEXEC&lt;br /&gt;
 &amp;lt;/Directory&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Tulemusena saab failides, mille nime lõpus on .shtml, kasutada SSI konstruktsioone, va #exec ja CGI skriptide #include.&lt;br /&gt;
&lt;br /&gt;
===Embperl===&lt;br /&gt;
&lt;br /&gt;
Embperl on tehnika, mis võimaldab sisestada HTML koodi sisse Perli konstruktsioone. Selle võimaluse kasutamiseks lisage konfiguratsioonifaili&lt;br /&gt;
&lt;br /&gt;
 &amp;lt;Files ~ &amp;quot;\.html$&amp;quot;&amp;gt;&lt;br /&gt;
 Options ExecCGI&lt;br /&gt;
 SetHandler perl-script&lt;br /&gt;
 PerlHandler HTML::Embperl&lt;br /&gt;
 &amp;lt;/Files&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Tulmusena lahendab veebiserver failides, mille nime lõpetab .html sisalduva Perli koodi.&lt;br /&gt;
&lt;br /&gt;
Muuseas, Embperli rakendamisel on veebiserver ka tavalise HTML süntaksi osas oluliselt rangem. Tüüpiliselt ei meeldi talle [# jne järgnevused, mida kasutatakse Embperli skriptide tähistamiseks. Et neid sümboleid siiski kasutada saada, esitage neid a la &amp;amp;#kood;, näiteks &amp;amp;#60;.&lt;br /&gt;
&lt;br /&gt;
===PHP===&lt;br /&gt;
&lt;br /&gt;
PHP on tehnika, mis võimaldab lisada HTML koodi sisse PHP keele konstruktsioone. Selle võimaluse kasutamiseks lisage konfiguratsioonifaili&lt;br /&gt;
&lt;br /&gt;
 AddType application/x-httpd-php .php&lt;br /&gt;
&lt;br /&gt;
Veebiserverisse konfigureeritud PHP omadusi saab näha PHP skriptiga&lt;br /&gt;
&lt;br /&gt;
 &amp;lt;?&lt;br /&gt;
 phpinfo();&lt;br /&gt;
 ?&amp;gt;&lt;br /&gt;
&lt;br /&gt;
===Serveri kasutajate kodulehed===&lt;br /&gt;
&lt;br /&gt;
Vaikimisi eeldab veebiserver, et näiteks URLile http://www.zoo.tartu.ee/~priit vastab süsteemi kasutaja priit kodukataloogis olev kataloog public_html. Selle kataloogi nime määrab direktiiv UserDir.&lt;br /&gt;
&lt;br /&gt;
===Veebi kaitsmine parooliga===&lt;br /&gt;
&lt;br /&gt;
Apache pakub vahendid veebistruktuuri kaitsmiseks parooliga. Konfiguratsioonifailis näidatakse ära, millist ressurssi kaitsta ning millist autentimissüsteemi kasutada.&lt;br /&gt;
&lt;br /&gt;
Kõige lihtsamal juhul tuleb programmiga htpasswd genereerida lubatud külastajate paroolifail, milles on kirjas kasutajanimed ning vastavad paroolid. See fail on reeglina erinev süsteemi paroolifailist, kus veebiserver töötab. Kui külastaja püüab siseneda kaitstud veebi, avaneb dialoog ning küsitakse tema kasutajanime ning parooli. Sobiva paari sisestamisel lubatakse külastaja veebile ligi, kusjuures kõnealust veebi saab kasutada kuni brauseri sulgemiseni.&lt;br /&gt;
&lt;br /&gt;
Näiteks kaitseme kataloogistruktuuri /html/salajane kirjeldatud paroolikontrolliga&lt;br /&gt;
&lt;br /&gt;
 &amp;lt;Directory /html/salajane&amp;gt;&lt;br /&gt;
 AuthUserFile /usr/local/apache/conf/salajane.paroolifail&lt;br /&gt;
 AuthType Basic&lt;br /&gt;
 AuthName Salajane&lt;br /&gt;
 require valid-user&lt;br /&gt;
 &amp;lt;/Directory&amp;gt;&lt;br /&gt;
&lt;br /&gt;
kus on kasutatud direktiive:&lt;br /&gt;
&lt;br /&gt;
    * AuthUserFile - paroolifailinimi, /usr/local/apache/conf/salajane.paroolifail&lt;br /&gt;
    * AuthType - millist tüüpi autentimisega on tegemist, antud juhul Basic&lt;br /&gt;
    * AuthName - parameetri väärtust näidatakse aknas, kuhu kasutaja sisestab oma veebi kasutajanime ja parooli; sama veebi piires saab sama kasutajanimega&lt;br /&gt;
      seostada erinevaid paroole, mistõttu peab külastaja saama teada, millist parooli konkreetsel juhul tarvitada&lt;br /&gt;
    * require valid-user - sellele ressursile lastakse ligi vaid peale edukat autentimist &lt;br /&gt;
&lt;br /&gt;
Sobiv paroolifail moodustatakse programmiga htpasswd&lt;br /&gt;
&lt;br /&gt;
 bash$ htpasswd -b -c -m salajane.paroolifail priit priiduparool&lt;br /&gt;
&lt;br /&gt;
kus&lt;br /&gt;
&lt;br /&gt;
   1. -b kasutaja parooliks loetakse käsurea viimane sõna (priiduparool)&lt;br /&gt;
   2. -c seda võtit tuleb kasutada vaid siis, kui paroolifaili veel ei eksisteeri; edaspidi peab selle võtme ära jätma, sest muidu kustutatakse olemasoleva&lt;br /&gt;
      paroolifaili sisu&lt;br /&gt;
   3. -m kasutada MD5 krüptimist; jättes selle võtme kirjutamata tekitatakse CRYPT proolid&lt;br /&gt;
   4. järgnevad paroolifaili nimi (salajane.paroolifail) ja kasutajanimi (priit) &lt;br /&gt;
&lt;br /&gt;
Tundub, et peale Directory, saab autentimist kasutada ka Location sektsioonis, mis on veebi suhtes veel asjakohasem.&lt;br /&gt;
&lt;br /&gt;
Paroolifail peab olema loetav sellele kasutajale, kelle õigustes veebiserver töötab (näiteks nobody) ning soovitavalt mitte olema veebiga samas kataloogistruktuuris.&lt;br /&gt;
&lt;br /&gt;
===Logi===&lt;br /&gt;
&lt;br /&gt;
Apache veebiserveriga saab logida tekstifaili erinevatel tingimustel toimunud päringuid ning neid logifaile automaatselt roteerida. Logida saab paraleelselt ka näidatud tingimustele erinevates formaatides erinevatesse failidesse.&lt;br /&gt;
&lt;br /&gt;
Direktiiviga LogFormat kirjeldatakse mida logitakse. Tüüpiliselt defineeritakse formaat nimega tavaline&lt;br /&gt;
&lt;br /&gt;
 LogFormat &amp;quot;%h %l %u %t \&amp;quot;%r\&amp;quot; %&amp;gt;s %b&amp;quot; tavaline&lt;br /&gt;
&lt;br /&gt;
kus&lt;br /&gt;
&lt;br /&gt;
    * %h - maisinanimi, kust päring esitati&lt;br /&gt;
    * %l - kasutajanimi, kes päringu esitas eeldusel, et IdentityCheck tomib; tavaliselt see väli jääb tühjaks, kuna IdentityCheck&#039;i kasutamine võtab&lt;br /&gt;
      tublisti veebi kiirust alla&lt;br /&gt;
    * %u - kui veebiserveri ressurss nõudis autentimist, siis kasutatud kasutajanimi&lt;br /&gt;
    * %t - päringu esitamise aeg&lt;br /&gt;
    * \&amp;quot;%r\&amp;quot; - jutumärkides esitatud päringu esimene rida&lt;br /&gt;
    * %&amp;gt;s - päringule vastuse olek (ingl. k. status)&lt;br /&gt;
    * %b - päringu vastuse maht baitides&lt;br /&gt;
    * tavaline - logiformaadi nimi &lt;br /&gt;
&lt;br /&gt;
Logimine ise toimub direktiiviga CustomLog, näiteks logime, kasutades logiformaati tavaline, faili /var/log/apache/tavaline.log&lt;br /&gt;
&lt;br /&gt;
 CustomLog /var/log/apache/tavaline.log tavaline&lt;br /&gt;
&lt;br /&gt;
Soovides logifaili automaatselt roteerida, kasutage veebiserveriga kaasas olevat programmi rotatelogs. Näiteks moodustame iga nädal uue logi&lt;br /&gt;
&lt;br /&gt;
 CustomLog &amp;quot;|/usr/local/apache/bin/rotatelogs /var/log/apache/tavaline.log 604800&amp;quot; common&lt;br /&gt;
&lt;br /&gt;
Logi faili nimi moodustatakse lisades failinime lõppu aja sekundites, mis on möödunud UNIXi ajastu algusest, so 1970. 1. jaanuar kell 00:00 hommikul.&lt;br /&gt;
&lt;br /&gt;
===Vealogi===&lt;br /&gt;
&lt;br /&gt;
Vealogisse salvestatakse serveri töös toimunud vead, sh näiteks päringud puuduvatele failidele. Logitaset saab reguleerida direktiiviga LogLevel, soovitatakse taset warn&lt;br /&gt;
&lt;br /&gt;
 LogLevel warn&lt;br /&gt;
&lt;br /&gt;
Direktiiviga ErrorLog näidatakse, kuhu logi salvestada&lt;br /&gt;
&lt;br /&gt;
 ErrorLog /var/log/apache/error.log&lt;br /&gt;
&lt;br /&gt;
Logianalüsaatorid&lt;br /&gt;
&lt;br /&gt;
Apache veebiserveri logi analüüsiks sobib kasutada näiteks programmi Webalizer.&lt;br /&gt;
&lt;br /&gt;
===Veebiserveri staatus ja info===&lt;br /&gt;
&lt;br /&gt;
Eeldusel, et veebiserverisse on sissekompilleeritud vastavad moodulid võtmetega --enable-module=status ja --enable-moudule=info, saab näha veebiserveri konfiguratsiooni (info) ning parasjagu olevat seisu (status).&lt;br /&gt;
&lt;br /&gt;
Näidates konfiguratsioonifailis direktiivi ExtendedStatus parameetriks &amp;quot;On&amp;quot;, esitatakse staatus põhjalikumalt.&lt;br /&gt;
&lt;br /&gt;
Nende veebiserveri omaduste nägemiseks peab sisalduma konfiguratsioonifailis kaks sektsiooni&lt;br /&gt;
&lt;br /&gt;
URLi http://www.zoo.tartu.ee/status-info jaoks&lt;br /&gt;
&lt;br /&gt;
 &amp;lt;Location /server-info&amp;gt;&lt;br /&gt;
     SetHandler server-info&lt;br /&gt;
     Order deny,allow&lt;br /&gt;
     Deny from all&lt;br /&gt;
     Allow from .zoo.tartu.ee&lt;br /&gt;
 &amp;lt;/Location&amp;gt;&lt;br /&gt;
&lt;br /&gt;
URLi http://www.zoo.tartu.ee/server-info jaoks&lt;br /&gt;
&lt;br /&gt;
 &amp;lt;Location /server-status&amp;gt;&lt;br /&gt;
     SetHandler server-status&lt;br /&gt;
     Order deny,allow&lt;br /&gt;
     Deny from all&lt;br /&gt;
     Allow from .zoo.tartu.ee&lt;br /&gt;
 &amp;lt;/Location&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Mõlemas sektsioonis on kasutatud Deny ja Allow direktiive, piiramaks nende URLide külastamise õigust. Kuigi sealt midagi väga salajast ei paista, on külastama lubatud vaid zoo.tart.ee domeeni masinastest.&lt;br /&gt;
Veebi-indekseerijad&lt;br /&gt;
&lt;br /&gt;
Apache veebiserver ei sisalda indekseerimisvahendeid, so võimalusi luua serveeritavale veebile otsingumootorit. Küll aga sobib kasutada mõnda olemasolevat veebiindeksaatorit, näiteks Glimpse või HtDig.&lt;br /&gt;
&lt;br /&gt;
Hoopis teine probleem on kuidas kontrollida, mida tohivad teha teised otsingumootorid (tuntud kui robotid või nuhid) teie veebi külastades. Tüüpiliselt tuleb neid kontrollida, kuna nad võivad täita avalikke andmebaase kiiresti vananeva infoga või ebasoovitavalt teie serverit koormata.&lt;br /&gt;
&lt;br /&gt;
===URLi ümberkirjutamine===&lt;br /&gt;
&lt;br /&gt;
Ümberkirjutamise kasutamiseks on vaja mod_rewrite&#039;i toetus serverisse kompilleerida võtmega --enable-module=rewrite.&lt;br /&gt;
&lt;br /&gt;
See tehnika võimaldab suunata serverisse tulevad päringud ümber, jäädes sama serveri piiridesse või välja. Ümbersuunamisi saab konfigureerida peakonfiguratsioonifailist või .htaccess failist.&lt;br /&gt;
&lt;br /&gt;
Ümbersuunamisel saab kasutada tingimusi või teha seda juhuslikult.&lt;br /&gt;
&lt;br /&gt;
Tõenäoliselt on võimalik järgnevalt näidetena toodud tegevusi korraldada ka muude vahenditega, URLi ümberkirjutamine mod_rewrite&#039;ga on selleks üks käepärane vahend.&lt;br /&gt;
&lt;br /&gt;
Ümberkirjutuste tegemiseks tuleb esmalt aktiviseerida ümberkirjutusmehhanism&lt;br /&gt;
&lt;br /&gt;
 RewriteEngine On&lt;br /&gt;
&lt;br /&gt;
Ümberkirjutust ennast teostab direktiiv RewriteRule. Näiteks suuname kõik veebiserverisse kasutajale priit tulevad päringud (http://www.zoo.tartu.ee/~priit) aadressile http://www.priit.ee&lt;br /&gt;
&lt;br /&gt;
 RewriteRule ^/~priit.+ http://www.priit.ee &lt;br /&gt;
&lt;br /&gt;
Direktiivi RewriteRule esimene argument on regulaaravaldis (^/~priit.+) ning kui sellega päring klapib, siis suunatakse brauser teise parameetriga näidatud URLile (http://www.priit.ee). Kasutaja brauseri Location real kirjutatakse URL paratamatult ümber.&lt;br /&gt;
&lt;br /&gt;
Direktiivi süntaks on järmine&lt;br /&gt;
&lt;br /&gt;
 RewriteRule regulaaravaldis asendus [võtmed]&lt;br /&gt;
&lt;br /&gt;
kus&lt;br /&gt;
&lt;br /&gt;
    * regulaararvaldisega kontrollitakse, kas URL klapib ümberkirjutamisreegliga, kusjuures URL on antud juhul see osa päringust, mis jääb paremale&lt;br /&gt;
      http://www.zoo.tartu.ee&#039;st, näite puhul /~priit.&lt;br /&gt;
    * kui URL klappis, siis asendatakse URL asendusega &#039;asendus&#039;&lt;br /&gt;
    * lisaks on mõnel juhul oluline kasutada võtmeid, mis kontrollivad ümberkirjutamise peensusi &lt;br /&gt;
&lt;br /&gt;
^ tähistab, et / peab olema URLi esimene sümbol ning peale priit &#039;t&#039; tähte võib tulla kuitahes palju mistahes sümboleid (.+). Muuseas, antud juhul suunatakse ümber näiteks päring http://www.zoo.tartu.ee/~priit-onvastmees.&lt;br /&gt;
&lt;br /&gt;
Lubatud on kasutada järjest mitmeid asendusi, mil neid rakendatakse järjest, tulemuseks on viimane tehtud ümberkirjutus. Järgmise asenduse regulaaravaldist klapitatakse eelmise ümberkirjutamisel tehtud tulemusega.&lt;br /&gt;
&lt;br /&gt;
Esitame näite sisemise ning välimise ümberkirjutamise kohta. Soovides vastuseks päringule http://www.zoo.tartu.ee/vana.html brauserisse saata lehe uus.html, kusjuures jättes brauseri Location reale esialgse teksti, so http://www.zoo.tartu.ee/vana.html, kasutage ümberkirjutamisreeglit&lt;br /&gt;
&lt;br /&gt;
 RewriteRule    ^vana\.html$  uus.html&lt;br /&gt;
&lt;br /&gt;
Sama, kuid brauseri Location real kajastub ümberkirjutus&lt;br /&gt;
&lt;br /&gt;
 RewriteRule    ^vana\.html$  uus.html [R]&lt;br /&gt;
&lt;br /&gt;
^vana\.html$ tähendab, et asendus toimub, kui päring oli täpselt vana.html, so algas v-ga (^) ja lõppes l-ga ($); punkt on regulaaravaldise erisümbol ja tuleb põgeda (\).&lt;br /&gt;
&lt;br /&gt;
Kirjutades järjest mitu ümberkirjutusreeglit ning soovides, et ümberkirjutamine lõppeks antud reegliga, tuleb reegli lõppu lisada võti L (last).&lt;br /&gt;
&lt;br /&gt;
 RewriteRule ^/~priit.+ http://www.priit.ee [R,L]&lt;br /&gt;
 RewriteRule ^/~nea.+   http://www.nea.ee   [R,L]&lt;br /&gt;
 RewriteRule ^/~inna.+  http://www.inna.ee  [R,L]&lt;br /&gt;
 RewriteRule ^/~mart.+  http://www.mart.ee  [R,L]&lt;br /&gt;
&lt;br /&gt;
Kui aga veebiserverit tõstetakse ühest masinast teise, oletame, et uus töötab, kuid kasutajate kodud on vanas, siis lisage uue konfi selline rida&lt;br /&gt;
&lt;br /&gt;
 RewriteRule   ^/~(.+)  http://vana.zoo.edu.ee/~$1  [R,L]&lt;br /&gt;
&lt;br /&gt;
Siin on kasutatud regulaaravaldist koos asendamisega. $1 asendatakse tekstiga, mis klappis kasutatud regulaaravaldises avaldisega (.+). Praktiliselt näiteks&lt;br /&gt;
&lt;br /&gt;
===Lisatingimuste kasutamine===&lt;br /&gt;
&lt;br /&gt;
Direktiiv RewriteRule teostab ümberkirjutusi niikuinii tingimusi kasutades regulaaravaldise abil. Peale selle saab seada direktiiviga RewriteCond lisatingimusi. Näiteks sõltuvalt serveri kellaajast, saadetakse brauserile üks või teine veeb&lt;br /&gt;
&lt;br /&gt;
 RewriteEngine on&lt;br /&gt;
 RewriteCond   %{TIME_HOUR}%{TIME_MIN} &amp;gt;0700&lt;br /&gt;
 RewriteCond   %{TIME_HOUR}%{TIME_MIN} &amp;lt;1900&lt;br /&gt;
 RewriteRule   ^index\.html$             paev.html&lt;br /&gt;
 &lt;br /&gt;
 RewriteRule   ^index\.html$             oo.html&lt;br /&gt;
&lt;br /&gt;
%{TIME_HOUR} asendatakse päringu sooritamise kellaaja tunniväärtusega. Oluline on kirjutada &amp;lt; ja 0700 järjest, kusjuues toimub leksikograafiline stringide, mitte arvude võrdlus.&lt;br /&gt;
&lt;br /&gt;
Kui brauser esitab veebiserverile päringu päeval, siis toimub ümberkirjutus index.html -&amp;gt; paev, kuna esimese direktiivi RewriteRule regulaaravaldis klappis URLiga ning kõik eelnenud lisatingimused olid täidetud. Seejärel klapitatakse teist RewriteRule&#039;i eelmise väljundiga, so paev.html - ei klapi ning midagi ei kirjutata ümber.&lt;br /&gt;
&lt;br /&gt;
Lisatingimusi on sobiv kasutada ka brauserite eristamiseks.&lt;br /&gt;
&lt;br /&gt;
 RewriteCond  %{HTTP_USER_AGENT} Mozilla/4*&lt;br /&gt;
 RewriteRule  ^leht.html$                leht.moz.html [L]&lt;br /&gt;
 &lt;br /&gt;
 RewriteCond  %{HTTP_USER_AGENT} Lynx.*&lt;br /&gt;
 RewriteRule  ^leht.html$                leht.lynx.html [L]&lt;br /&gt;
&lt;br /&gt;
Sõltuvalt päringu tegija aadressist, saab esitada erinevat veebi.&lt;br /&gt;
&lt;br /&gt;
 RewriteCond  %{REMOTE_ADDR}  ^192.168.1.3$ &lt;br /&gt;
 RewriteRule  ^leht.html$      192.168.1.3.html [L]&lt;br /&gt;
&lt;br /&gt;
===Ümberkirjutusalus===&lt;br /&gt;
&lt;br /&gt;
Kui te tegutsete sügavamal URLi-struktuuri sees, kasutage RewriteRule&#039;i juurika ümbernimetamiseks direktiivi RewriteBase. Näiteks kirjutatakse URL http://www.zoo.tartu.ee/~priit/lemmikud/hobused.html ümber URLiks http://www.zoo.tartu.ee/~priit/lemmikud/kabjaksed.html&lt;br /&gt;
&lt;br /&gt;
 RewriteBase   /~priit/lemmikud&lt;br /&gt;
 RewriteRule   ^hobused.html$  kabjaksed.html &lt;br /&gt;
&lt;br /&gt;
===Ümerbkirjutustabel===&lt;br /&gt;
&lt;br /&gt;
Esitatud päringu juhuslikult valitud URLile ümbersuunamiseks on sobiv kasutada direktiivi RewriteMap. RewriteMap pakub võimaluse salvestada tekstifaili hulga URLe mille poole saab ümberkirjutusreeglist pöörduda. Näiteks loome olukorra kus päringule http://www.zoo.tartu.ee/juhuslik vastatakse juhuslikult valitud veebilehega.&lt;br /&gt;
&lt;br /&gt;
Kirjeldame tabelikirjeldusfailis vl.txt juhuslike veebilehed nimed&lt;br /&gt;
&lt;br /&gt;
 bash# cat /usr/local/apache/vl.txt&lt;br /&gt;
 veebilehed 1.html|2.html|3.html|4.html|5.html|6.html|7.html&lt;br /&gt;
&lt;br /&gt;
ning lisame veebiserveri konfiguratsioonifaili read&lt;br /&gt;
&lt;br /&gt;
 RewriteMap vl rnd:/usr/local/apache/vl.txt&lt;br /&gt;
 RewriteRule   ^/juhus$   /home/html/juhus/${vl:veebilehed|html.html}&lt;br /&gt;
&lt;br /&gt;
Ümberkirjutustabeli süntaks on selline&lt;br /&gt;
&lt;br /&gt;
RewriteMap tablelinimi tabelitüüp:tabelikirjeldusfail&lt;br /&gt;
&lt;br /&gt;
kus&lt;br /&gt;
&lt;br /&gt;
    * tabelinimi - on kooskõlas ümberkirjutusreeglis kasutatud nimega&lt;br /&gt;
    * tabelitüüp - rnd (random) näitab et&lt;br /&gt;
    * tabelikirjeldusfail - failis kirjeldatakse tabeli sisu, näiteks juhusliku puhul peab eraldama andmed |-ga (loogiline OR) &lt;br /&gt;
&lt;br /&gt;
Ümberkirjutusreegeli asenduses kasutatud muutujat ${vl:veebilehed|html.html} väärtustatakse ümberkirjutustabeli vl võtme veeblilehed abil. Kui sellist ümberkirjutustabelit mingil põhjusel pole on muutuja väärtus html.html.&lt;br /&gt;
&lt;br /&gt;
===Ümberkirjutuslogi===&lt;br /&gt;
&lt;br /&gt;
Ümberkirjutamise tööleseadmisel ning toimuvate ümberkirjutuste jälgimiseks saab kasutada direktiive RewriteLog ja RewriteLogLevel&lt;br /&gt;
&lt;br /&gt;
 RewriteLogLevel 3&lt;br /&gt;
 RewriteLog /var/log/apache/rewrite.log&lt;br /&gt;
&lt;br /&gt;
===Veebiserveri konfiguratsioonifaili lugemine===&lt;br /&gt;
&lt;br /&gt;
Lihtasamatel juhtudel pole see oluline millises järjekorras veebiserver direktiivides esitatud reegleid kehtestab. Näiteks kui konfiguratsioonifailis ei sisaldugi Location ja Files sektsioone. Kuid soovides kasutada veebiseverit paindlikumalt tuleb järjekorraga arvestada.&lt;br /&gt;
&lt;br /&gt;
Direktiivide puhul ei hooli Apache&#039;i suurtest ja väikestest tähtedes, kuid parameetrite puhul on see tihti oluline.&lt;br /&gt;
&lt;br /&gt;
Eeldusel, et te paigutate kogu konfiguratsiooni ühte faili sisalduvad seal kaks osa&lt;br /&gt;
&lt;br /&gt;
    * põhiosa - kirjeldatakse veebiserveri üldisi omadusi, näiteks millise kasutaja õigustes ta töötab&lt;br /&gt;
    * ressursside määrangud - kehtestatakse reeglid, kuidas veebiserver faile serveerib, näiteks käsitleb .php lõpulisi faile PHP skriptidena &lt;br /&gt;
&lt;br /&gt;
Üldosa direktiivide järjekord pole oluline, kui sama direktiiv on väärtustatud mitu korda, jääb kehtima viimane väärtus.&lt;br /&gt;
&lt;br /&gt;
Kui ressursside omadusi määratakse grupeerimisvahendite abil, siis sõltumate konfigureerimisfailis esinemise järjekorrast loetakse neid sellises järjekorras: Directory, Files, Location&lt;br /&gt;
&lt;br /&gt;
Directory sees võivad olla kirjeldatud omakorda Files sektsioonid.&lt;br /&gt;
&lt;br /&gt;
Directory sees on lubatud kasutada järgmisi direktiive:&lt;br /&gt;
&lt;br /&gt;
    * DirectoryIndex&lt;br /&gt;
    * Options&lt;br /&gt;
    * Order, Allow, Deny&lt;br /&gt;
    * AllowOverride&lt;br /&gt;
    * AddHandler&lt;br /&gt;
    * AddType &lt;br /&gt;
&lt;br /&gt;
Files sektsioonis on lubatud kasutada praktiliselt neid samu direktiive mida sektsioonis Directory eeldusel, et neid on mõistlik rakendada failidele. Ilmselt ei saa kasutada näiteks direktiivi DirectoryIndex küll aga näiteks Allow ja Deny.&lt;br /&gt;
&lt;br /&gt;
Location sektsioonis on lubatud kasutada praktiliselt neid samu direktiive mida sektsioonis Directory. Kuna Locationit rakedatakse kõige viimasena, siis ei saa seal näiteks kasutada Options direktiivi küll aga näiteks Allow ja Deny&#039;id.&lt;br /&gt;
&lt;br /&gt;
===Veebiserveri turvalisus===&lt;br /&gt;
&lt;br /&gt;
Veebiserveri kasutamisel arvestage, et iseenesest on veebiserver programm, mis teeb teie arvuti failid kättesaadavaks HTTP protokolli kasutavaile klientidele so brauseritele.&lt;br /&gt;
&lt;br /&gt;
Kuigi veebiserver tuleb käivitada juurkasutaja õigustes, toimetab ta edasi konfiguratsioonifailis näidatud kasutajana (User, Group direktiivid).&lt;br /&gt;
&lt;br /&gt;
Siiski, kui te kasutate konfiguratsioonifailis teatud kohtades IO ümbersuunamist, näiteks logimise juures, siis seda teeb Apache juurkasutajana.&lt;br /&gt;
&lt;br /&gt;
Vältimaks ebameeldivaid üllatusi, veenduge, et veebiserveri juurikas ning selle alla jäävad kataloogid on piisavalt kaitstud, so kasutajatel pole neisse kirjutamisõigust. Veebiserver (/usr/local/apache/bin/httpd) ja muud temaga seotud failid, näiteks rotatelogs kuuluvad juurkasutajale ning on tavakasutajaile ning grupile others vaid käivitatavad. Tavaliselt piisab nende tingimuste täitmiseks anda käsud&lt;br /&gt;
&lt;br /&gt;
 bash# cd /usr/local/apache&lt;br /&gt;
 bash# chown 0 bin conf logs&lt;br /&gt;
 bash# chgrp 0  bin conf logs&lt;br /&gt;
 bash# chmod 755 bin conf logs&lt;br /&gt;
 &lt;br /&gt;
 bash# chown 0 /usr/local/apache/bin/httpd&lt;br /&gt;
 bash# chgrp 0 /usr/local/apache/bin/httpd&lt;br /&gt;
 bash# chmod 511 /usr/local/apache/bin/httpd&lt;br /&gt;
&lt;br /&gt;
Lisaks, mõelge järele, kas te peate kasutajaile lubama käivitada CGI skripte, ning andmebaase ning otsustage millistel tingimustel, samuti kataloogipõhine veebiserveri konfigureerimisvõimalus. Näiteks lubage kasutajatel CGI skripte tarvida ainult kataloogist    ~/public_html/cgi-bin&lt;br /&gt;
&lt;br /&gt;
 &amp;lt;Directory /usr/home/*/public_html/cgi-bin&amp;gt;&lt;br /&gt;
 AddHandler cgi-script .cgi&lt;br /&gt;
 Options +ExecCGI&lt;br /&gt;
 &amp;lt;/Directory&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Heal juhul saab veebiserveri tööleseadmise eel otsustada, milliste omadustega peab ta olema. Reeglina ei soovitata lihtsalt sisse kompileerida toetust, mida praktiliselt ei tarvitata. Näiteks, kui te olete kindel, et pole vajadust server-info ja server-status&#039;e järele, siis jätke vastavad moodulid välja. Näidake seda Apache ./configure skripti juures vastavate võtmetega --disable-module=info --disable-module=status.&lt;br /&gt;
&lt;br /&gt;
===Virtuaalveebiserverid===&lt;br /&gt;
&lt;br /&gt;
Ühte ja sama Apache veebiserverit saab tööle seada nii, et ta serveerib erinevaid andmeid sõltuvalt millise nimega tema poole pöörduti. Asjakorraldust nimetatakse virtuaaseteks veebiserveriteks, kuna füüsiliselt on tegu ühe arvutiga, kuid külastajaile jäetakse mulje, et neid on mitu.&lt;br /&gt;
&lt;br /&gt;
Virtuaalseid veebiservereid on kolme sorti:&lt;br /&gt;
&lt;br /&gt;
    * pordipõhised - sõltuvalt külastaja poolt kastatud pordist serveeritakse erinevat veebi&lt;br /&gt;
    * IP-põhised - sõltuvalt külastaja poolt kasutatud IP aadressist serveeritakse erinevat veebi&lt;br /&gt;
    * nimepõhised - sõltuvalt külastaja poolt kasutatud DNSi nimest serveeritakse erinevat veebi; reeglina vastavad erinevad nimed samale IP aadressile so on kirjeldatud CNAMEdena &lt;br /&gt;
&lt;br /&gt;
Põhimõtteliselt on võimalik kasutada neid virtuaalservereid ka kombineeritult korraga.&lt;br /&gt;
&lt;br /&gt;
Erijuht virtuaalveebi serveerida on käivitada mitu eksemplari httpd servereid, iga oma konfiguratsiooniga. Kuna see võimalus on suhteliselt ebaefektiivne ning ei paku olulisi täiendavaid võimalusi, siis seda me ei käsitle.&lt;br /&gt;
&lt;br /&gt;
Virtuaalserveri sektsioonis (VirtualHost) saab kasutada paljusid direktiive, mida peaserveri puhul sh direktiive Options, Alias, Directory, Location, Files. Samuti direktiive, mis reguleerivad SSI, CGI, PHP, Emperli, ümberkirjutamise ja logi kasutamist. Kui direktiivi ei näidata, kasutataks põhikonfiguratsiooni väärtus, kui seal seda samuti pole, siis vaikeväärtust.&lt;br /&gt;
&lt;br /&gt;
===Pordipõhised virtuaalveebiserverid===&lt;br /&gt;
&lt;br /&gt;
Kasutamaks erinevaid veebiseveri konfiguratsioone sõltuvalt sellest, millisele pordile päring tuli, kasutage direktiive Listen ja VirtualHost. Näiteks teenindab veebiserveri konfiguratsioonifaili põhiosale vastav server kõiki päringuid va neid, mis on suunatud aadressi 193.40.50.1 (www.zoo.edu.ee) pordile 8080 või pordile 8081. Viimast kahte teenindatakse vastaval VirtualHosti sektsioonile. Näiteks seame lisaks põhiosale tööle kaks alternatiivset dokumendijuurikat ja logi&lt;br /&gt;
&lt;br /&gt;
...&lt;br /&gt;
 Listen 80&lt;br /&gt;
 Listen 193.40.50.1:8080&lt;br /&gt;
 Listen 193.40.50.1:8081&lt;br /&gt;
 &amp;lt;VirtualHost 193.40.50.1:8080&amp;gt;&lt;br /&gt;
    ServerAdmin mart@zoo.edu.ee&lt;br /&gt;
    DocumentRoot /www/mardizoo&lt;br /&gt;
    ErrorLog /var/logs/mardizoo.error.log&lt;br /&gt;
    CustomLog /var/logs/mardizoo.log common&lt;br /&gt;
  &amp;lt;/VirtualHost&amp;gt;&lt;br /&gt;
 &lt;br /&gt;
 &amp;lt;VirtualHost 193.40.50.1:8081&amp;gt;&lt;br /&gt;
    ServerAdmin priit@zoo.edu.ee&lt;br /&gt;
    DocumentRoot /www/priiduzoo&lt;br /&gt;
    ErrorLog /var/logs/priituzoo.error.log&lt;br /&gt;
    CustomLog /var/logs/priiduzoo.log common&lt;br /&gt;
 &amp;lt;/VirtualHost&amp;gt;&lt;br /&gt;
&lt;br /&gt;
kusjuures peakonfiguratsiooni on lisatud vastavad Listen direktiivid.&lt;br /&gt;
&lt;br /&gt;
Brauseris tuleb päringud esitada vastavalt http://www.zoo.edu.ee:8080 või http://www.zoo.edu.ee:8081.&lt;br /&gt;
&lt;br /&gt;
===IP-põhised virtuaalveebiseverid===&lt;br /&gt;
&lt;br /&gt;
IP-põhised virtuaalveebiserverite kasutamisel on veebiserveril mitu IP aadressi. St masinal on mitu võrgukaarti või on kasutatud IP-aliasingut.&lt;br /&gt;
&lt;br /&gt;
IP-põhiste virtuaalveebiserverite kasutamisel näidake direktiivi VirtualHost juures ära IP aadress, ning samas sektsioonis kirjeldage kõnealuse veebiserveri omadused. Näiteks kui masinal on kaks võrgukaarti IP aadressidega 193.40.10.1 ning 193.40.50.1 kasutage sektsioone&lt;br /&gt;
&lt;br /&gt;
 &amp;lt;VirtualHost 193.40.50.1&amp;gt;&lt;br /&gt;
    ServerName www.zoo.tartu.ee&lt;br /&gt;
    ServerAdmin priit@zoo.tartu.ee&lt;br /&gt;
    DocumentRoot /www/tartuzoo&lt;br /&gt;
    ErrorLog /var/logs/tartuzoo.error.log&lt;br /&gt;
    CustomLog /var/logs/tartuzoo.log common&lt;br /&gt;
 &amp;lt;/VirtualHost&amp;gt;&lt;br /&gt;
 &lt;br /&gt;
 &amp;lt;VirtualHost 193.40.10.1&amp;gt;&lt;br /&gt;
    ServerName www.zoo.edu.ee&lt;br /&gt;
    ServerAdmin mart@zoo.edu.ee&lt;br /&gt;
     DocumentRoot /www/eduzoo&lt;br /&gt;
     ErrorLog /var/logs/eduzoo.error.log&lt;br /&gt;
     CustomLog /var/logs/eduzoo.log common&lt;br /&gt;
 &amp;lt;/VirtualHost&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Peakonfiguratsiooni osa järgi teenindatakse neid päringuid, millel ei leidu sobivat virtuaalserverit. Näiteks kui masinal on veel kolmas võrguseade ning päring siseneb selle aadressile.&lt;br /&gt;
&lt;br /&gt;
Virtuaalserveri direktiivi juurde võib kirjutada ka mitu IP aadressi, mispuhul kasutatakse kõnealust serverit neile kõigile tulnud päringutele vastamisel.&lt;br /&gt;
&lt;br /&gt;
===Nimepõhised virtuaalveebiserverid===&lt;br /&gt;
&lt;br /&gt;
Nimepõhisete virtuaalveebiserverite kasutamine eeldab, et ühele IP aadressile (193.40.50.1) on nimesüsteemis (DNS) seatud näiteks CNAMEiga vastavusse mitu domeenime (www.zoo.tartu.ee, post.zoo.tartu.ee).&lt;br /&gt;
&lt;br /&gt;
Kui soovite kasutada enam kui ühte veebiserverit, siis on soovitav kõik veebiserverid konfigureerida virtuaalseteks. Kusjuures põhiserverile ei vastagi DocumentRoot&#039;i.&lt;br /&gt;
&lt;br /&gt;
Nimepõhiste virtuaalveebiserverite kasutamine deklareeritakse peakonfiguratsiooni osas direktiiviga NameVirtualHost. Direktiivi järel näidatakse IP aadress, millele tulnud päringute teenindamisel kasutatakse sobivat VirtualHosti sektsiooni. Näiteks&lt;br /&gt;
&lt;br /&gt;
 NameVirtualHost 193.40.50.1&lt;br /&gt;
&lt;br /&gt;
puhul kasutatakse aadressile 193.40.50.1 saabunud päringute töötlemiseks sobiva domeeninimega (ServerName) VirtualHost sektsiooni.&lt;br /&gt;
&lt;br /&gt;
Erinevad virtuaalserverid kirjeldatakse direktiiviga VirtualHost, näiteks sarnase sektsiooniga&lt;br /&gt;
&lt;br /&gt;
 &amp;lt;VirtualHost 193.40.50.1&amp;gt;&lt;br /&gt;
     ServerName www.zoo.tartu.ee&lt;br /&gt;
     ServerAdmin priit@zoo.tartu.ee&lt;br /&gt;
     DocumentRoot /www&lt;br /&gt;
     ErrorLog /var/logs/www.error.log&lt;br /&gt;
     CustomLog /var/logs/www.log common&lt;br /&gt;
 &amp;lt;/VirtualHost&amp;gt;&lt;br /&gt;
 &lt;br /&gt;
 &amp;lt;VirtualHost 193.40.50.1&amp;gt;&lt;br /&gt;
     ServerName post.zoo.tartu.ee&lt;br /&gt;
     ServerAdmin post@zoo.tartu.ee&lt;br /&gt;
     DocumentRoot /post&lt;br /&gt;
     ErrorLog /var/logs/post.error.log&lt;br /&gt;
     CustomLog /var/logs/post.log common&lt;br /&gt;
 &amp;lt;/VirtualHost&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Kui serveril on mitu võrguaadressi, siis võib kasutada direktiivi NameVirtualHost mitu korda ning lisada vastavad sektsioonid, kuid lühem on asendada IP aadress täringa (*)&lt;br /&gt;
&lt;br /&gt;
 NameVirtualHost *&lt;br /&gt;
 &lt;br /&gt;
 &amp;lt;VirtualHost *&amp;gt;&lt;br /&gt;
     ServerName www.zoo.tartu.ee&lt;br /&gt;
     ServerAdmin priit@zoo.tartu.ee&lt;br /&gt;
     DocumentRoot /www&lt;br /&gt;
     ErrorLog /var/logs/www.error.log&lt;br /&gt;
     CustomLog /var/logs/www.log common&lt;br /&gt;
 &amp;lt;/VirtualHost&amp;gt;&lt;br /&gt;
 &lt;br /&gt;
 &amp;lt;VirtualHost *&amp;gt;&lt;br /&gt;
     ServerName post.zoo.tartu.ee&lt;br /&gt;
     ServerAdmin post@zoo.tartu.ee&lt;br /&gt;
     DocumentRoot /post&lt;br /&gt;
     ErrorLog /var/logs/post.error.log&lt;br /&gt;
     CustomLog /var/logs/post.log common&lt;br /&gt;
 &amp;lt;/VirtualHost&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Päringuid, mis saabuvad direktiiviga NameVirtualHost näidatud aadressile ei teenindata IP-põhiste sektsioonide ega peaserveri konfiguratsiooni alusel.&lt;br /&gt;
&lt;br /&gt;
===Kasulikud lisamaterjalid===&lt;/div&gt;</summary>
		<author><name>Triinu</name></author>
	</entry>
</feed>