Erinevus lehekülje "Apache" redaktsioonide vahel

Allikas: Kuutõrvaja
(Uus lehekülg: '{{Täienda}} Apache'i veebiserver Sissejuhatus Käesoleva pala eesmärk on abistada teid saada operatsioonisüsteem Linuxiga tööle Apache veebiserver. Veebiserver on selline pr...')
 
3. rida: 3. rida:
 
Apache'i veebiserver
 
Apache'i veebiserver
  
Sissejuhatus
+
===Sissejuhatus===
  
 
Käesoleva pala eesmärk on abistada teid saada operatsioonisüsteem Linuxiga tööle Apache veebiserver. Veebiserver on selline programm, mis võimaldab arvutis leiduvaid teatud faile näidata brauserisse, kui brauser neid küsib. Nagu nimi ütleb on veebiserver server, brauseri kohta võib öelda klient.
 
Käesoleva pala eesmärk on abistada teid saada operatsioonisüsteem Linuxiga tööle Apache veebiserver. Veebiserver on selline programm, mis võimaldab arvutis leiduvaid teatud faile näidata brauserisse, kui brauser neid küsib. Nagu nimi ütleb on veebiserver server, brauseri kohta võib öelda klient.
11. rida: 11. rida:
 
Kuna Apache'i veebiserver on väga levinud tarkvara, siis on ta suure tõenäosusega juba teie süsteemi installeeritud ja jääb vaid üle ta kasutusele võtta. Otsige oma süsteemist faili httpd, mille abil toimub veebiserveri töö juhtimine
 
Kuna Apache'i veebiserver on väga levinud tarkvara, siis on ta suure tõenäosusega juba teie süsteemi installeeritud ja jääb vaid üle ta kasutusele võtta. Otsige oma süsteemist faili httpd, mille abil toimub veebiserveri töö juhtimine
  
bash# find / -name httpd
+
bash# find / -name httpd
 
See võib võtta mõni minut aega. Faili leidmisel antakse teile teada, millises kataloogis ta asub. Näiteks väljundi hulgas on selline rida
 
See võib võtta mõni minut aega. Faili leidmisel antakse teile teada, millises kataloogis ta asub. Näiteks väljundi hulgas on selline rida
  
/usr/local/apache/bin/httpd
+
/usr/local/apache/bin/httpd
 
Antud juhul on teil veebiserveri tarkvara juba olemas ning asub kataloogis /usr/local/apache. Tarkvara ei ole vaja paigalda, jätkake lugemist punktist Veebiserveri konfigureerimine. Võimalik, et veebiserveri käivitamine ja seiskamine toimub teie süsteemis kuidagi teisiti kui on kirjdatud punktis Veebiserveri käivitamine.
 
Antud juhul on teil veebiserveri tarkvara juba olemas ning asub kataloogis /usr/local/apache. Tarkvara ei ole vaja paigalda, jätkake lugemist punktist Veebiserveri konfigureerimine. Võimalik, et veebiserveri käivitamine ja seiskamine toimub teie süsteemis kuidagi teisiti kui on kirjdatud punktis Veebiserveri käivitamine.
  
 
Kui te faili httpd ei leidnud, siis tõenäoliselt ei ole teie arvutisse veebiserverit installeeritud. Jätkake lugemist järgmisest punktist.
 
Kui te faili httpd ei leidnud, siis tõenäoliselt ei ole teie arvutisse veebiserverit installeeritud. Jätkake lugemist järgmisest punktist.
  
Ettevalmistused veebiserveri paigaldamiseks
+
===Veebiserveri paigaldamine algkoodist===
 +
 
 +
====Ettevalmistused veebiserveri paigaldamiseks algkoodist====
  
 
Enne veebiserveri installeerimise juurde asumist veenduge, et teil on süsteemis piisavalt vaba ruumi. Järgnevas paigaldame Apache'i kataloogi /usr/local/apache ning ainult tarkvara võtab alla viie MB ruumi. Kui te otsustate paigutada ka põhiveebi ja logid sama kataloogi alla, on see maht suurem ja suurenev.
 
Enne veebiserveri installeerimise juurde asumist veenduge, et teil on süsteemis piisavalt vaba ruumi. Järgnevas paigaldame Apache'i kataloogi /usr/local/apache ning ainult tarkvara võtab alla viie MB ruumi. Kui te otsustate paigutada ka põhiveebi ja logid sama kataloogi alla, on see maht suurem ja suurenev.
25. rida: 27. rida:
 
Näites pakime veebiserveri lähtetekstid lahti kataloogis /usr/src ning ka kompileerime seal. Selleks kulub ca 12 MB. Vaadakse oma ressursse käsuga df
 
Näites pakime veebiserveri lähtetekstid lahti kataloogis /usr/src ning ka kompileerime seal. Selleks kulub ca 12 MB. Vaadakse oma ressursse käsuga df
  
Filesystem          1k-blocks      Used Available Use% Mounted on
+
Filesystem          1k-blocks      Used Available Use% Mounted on
/dev/sda2              3470679  2948079    343074  90% /
+
/dev/sda2              3470679  2948079    343074  90% /
/dev/sda3              598665    500281    67459  88% /var
+
/dev/sda3              598665    500281    67459  88% /var
/dev/hdb3              9875164  9631024    244140  98% /home
+
/dev/hdb3              9875164  9631024    244140  98% /home
/dev/hdb2              6851880  6727492        0 100% /mnt
+
/dev/hdb2              6851880  6727492        0 100% /mnt
 +
 
 
Toodud näite puhul asub kataloog /usr ilmselt juurfailisüsteemiga samal partitsioonil /dev/sda2, millele vastab esimene rida. Seal on vaba ruumi üle kolmesaja MB mida on enam kui piisav.
 
Toodud näite puhul asub kataloog /usr ilmselt juurfailisüsteemiga samal partitsioonil /dev/sda2, millele vastab esimene rida. Seal on vaba ruumi üle kolmesaja MB mida on enam kui piisav.
  
Veebiserveri kasutaja
+
====Veebiserveri kasutaja====
  
 
Apache veebiserver teenindab külastajaid tavaliselt spetsiaalse tavakasutaja õigustes, vaikimisi on selleks kasutaja nobody grupiga nobody. Reeglina on seesugune kasutaja teie süsteemis olemas, kontrolliks küsige arvutilt, mis gruppi kasutaja nobody kuulub
 
Apache veebiserver teenindab külastajaid tavaliselt spetsiaalse tavakasutaja õigustes, vaikimisi on selleks kasutaja nobody grupiga nobody. Reeglina on seesugune kasutaja teie süsteemis olemas, kontrolliks küsige arvutilt, mis gruppi kasutaja nobody kuulub
  
bash# groups nobody
+
bash# groups nobody
nobody : nogroup nobody
+
nobody : nogroup nobody
 
Antud juhul vastati, et gruppidesse nogroup ning nobody, mis on piisav.
 
Antud juhul vastati, et gruppidesse nogroup ning nobody, mis on piisav.
  
 
Kui seda kasutajat pole või soovite panna veebiserveri käima mõne teise kasutajana, siis moodustage esmalt talle grupp, näiteks grupp nimega veeb
 
Kui seda kasutajat pole või soovite panna veebiserveri käima mõne teise kasutajana, siis moodustage esmalt talle grupp, näiteks grupp nimega veeb
  
bash# groupadd veeb
+
bash# groupadd veeb
 
ning selle grupiga uus kasutaja, näiteks apache
 
ning selle grupiga uus kasutaja, näiteks apache
  
bash# useradd -g veeb -m -d /usr/local/apache apache
+
bash# useradd -g veeb -m -d /usr/local/apache apache
 
Kas süsteemis on kompileerimiseks vajalikud vahendid
 
Kas süsteemis on kompileerimiseks vajalikud vahendid
  
 
Ilmselt peavad teie süsteemis leiduma kompileerimiseks vajalikud vahendid. Veenduge, et teil on olemas C kompilaator, näiteks küsige talt, mis versiooniga on tegu
 
Ilmselt peavad teie süsteemis leiduma kompileerimiseks vajalikud vahendid. Veenduge, et teil on olemas C kompilaator, näiteks küsige talt, mis versiooniga on tegu
  
bash# gcc --version
+
bash# gcc --version
egcs-2.91.66
+
egcs-2.91.66
 +
 
 
Praktiliselt pole oluline versiooni number, peamine, et midagi vastatakse. Kui teil kompilaator puudub, siis on teil kaks võimalust, kas paigaldada kompilaator või veebiserver oma distributsiooni paketist. Neid teemasid käesolevas palas ei käsitleta.
 
Praktiliselt pole oluline versiooni number, peamine, et midagi vastatakse. Kui teil kompilaator puudub, siis on teil kaks võimalust, kas paigaldada kompilaator või veebiserver oma distributsiooni paketist. Neid teemasid käesolevas palas ei käsitleta.
  
Tuuma include failid
+
====Tuuma include failid====
  
 
Lisaks on tarvis, et teie süsteemis leiduksid kasutatavale tuumale vastavad tuuma lähtetekstide include failid. Kontrollige, et viide /usr/include/linux -> /usr/src/linux/include/linux/ on olemas
 
Lisaks on tarvis, et teie süsteemis leiduksid kasutatavale tuumale vastavad tuuma lähtetekstide include failid. Kontrollige, et viide /usr/include/linux -> /usr/src/linux/include/linux/ on olemas
  
bash# ls -l /usr/include/linux/
+
bash# ls -l /usr/include/linux/
lrwxrwxrwx  1 root    root          28 Oct 12 16:55 /usr/include/linux -> /usr/src/linux/include/linux/
+
lrwxrwxrwx  1 root    root          28 Oct 12 16:55 /usr/include/linux -> /usr/src/linux/include/linux/  
 
ning viidatud kataloogis leiduv faile
 
ning viidatud kataloogis leiduv faile
  
bash# ls -l /usr/src/linux/include/linux/
+
bash# ls -l /usr/src/linux/include/linux/
total 3108
+
total 3108
-rw-r--r--  1 523      523          4645 Dec 11 02:49 16c552.h
+
-rw-r--r--  1 523      523          4645 Dec 11 02:49 16c552.h
-rw-r--r--  1 523      523          7295 Dec 23 17:33 a.out.h
+
-rw-r--r--  1 523      523          7295 Dec 23 17:33 a.out.h
-rw-r--r--  1 523      523          7497 Dec 11 02:49 ac97_codec.h
+
-rw-r--r--  1 523      523          7497 Dec 11 02:49 ac97_codec.h
-rw-r--r--  1 523      523          2589 Dec 23 17:33 acct.h
+
-rw-r--r--  1 523      523          2589 Dec 23 17:33 acct.h
-rw-r--r--  1 523      523          1371 Dec 11 02:49 adfs_fs.h
+
-rw-r--r--  1 523      523          1371 Dec 11 02:49 adfs_fs.h
-rw-r--r--  1 523      523          497 Dec 11 02:49 adfs_fs_i.h
+
-rw-r--r--  1 523      523          497 Dec 11 02:49 adfs_fs_i.h
-rw-r--r--  1 523      523          1064 Dec 11 02:49 adfs_fs_sb.h
+
-rw-r--r--  1 523      523          1064 Dec 11 02:49 adfs_fs_sb.h
-rw-r--r--  1 523      523          4470 Dec 23 17:36 affs_fs.h
+
-rw-r--r--  1 523      523          4470 Dec 23 17:36 affs_fs.h
....
+
....
Tarkvara kopeerimine ja paigaldamine
+
 
 +
====Tarkvara kopeerimine ja paigaldamine====
  
 
Veebiserveri paigaldamiseks kopeerige programmi lähteteksid kataloogi /usr/src.
 
Veebiserveri paigaldamiseks kopeerige programmi lähteteksid kataloogi /usr/src.
79. rida: 84. rida:
 
Seejärel sisenege kataloogi /usr/src ning pakkige lähtetekstide arhiiv lahti
 
Seejärel sisenege kataloogi /usr/src ning pakkige lähtetekstide arhiiv lahti
  
bash# cd /usr/src
+
bash# cd /usr/src
bash# tar zxvf apache_1.3.14.tar.gz
+
bash# tar zxvf apache_1.3.14.tar.gz
 
Sisenege Apache lähtetekstide kataloogi ning eelkonfigureerige veebiserver
 
Sisenege Apache lähtetekstide kataloogi ning eelkonfigureerige veebiserver
  
bash# cd apache_1.3.14
+
bash# cd apache_1.3.14
bash# ./configure
+
bash# ./configure
..
+
..
...
+
...
Creating Makefile in src/main
+
Creating Makefile in src/main
Creating Makefile in src/lib/expat-lite
+
Creating Makefile in src/lib/expat-lite
Creating Makefile in src/modules/standard
+
Creating Makefile in src/modules/standard
bash#
+
bash#
 
Kui see samm lõppes ilma veateateta, siis andke tarkvara kompilleerimisks käsk
 
Kui see samm lõppes ilma veateateta, siis andke tarkvara kompilleerimisks käsk
  
bash# make
+
bash# make
..
+
..
...
+
...
 
     -e 's%@LIBS_SHLIB@%%g' && chmod a+x apxs
 
     -e 's%@LIBS_SHLIB@%%g' && chmod a+x apxs
make[2]: Leaving directory /usr/src/apache_1.3.14/src/support'
+
make[2]: Leaving directory /usr/src/apache_1.3.14/src/support'
<=== src/support
+
<=== src/support
make[1]: Leaving directory /usr/src/apache_1.3.14'
+
make[1]: Leaving directory /usr/src/apache_1.3.14'
<=== src
+
<=== src
bash#
+
bash#
 
lõpuks paigaldage tarkvara
 
lõpuks paigaldage tarkvara
  
bash# make install
+
bash# make install
..
+
..
...
+
...
make[1]: Leaving directory /usr/src/apache_1.3.14'
+
make[1]: Leaving directory /usr/src/apache_1.3.14'
+--------------------------------------------------------+
+
+--------------------------------------------------------+
| You now have successfully built and installed the      |
+
| You now have successfully built and installed the      |
| Apache 1.3 HTTP server. To verify that Apache actually |
+
| Apache 1.3 HTTP server. To verify that Apache actually |
| works correctly you now should first check the        |
+
| works correctly you now should first check the        |
| (initially created or preserved) configuration files  |
+
| (initially created or preserved) configuration files  |
|                                                        |
+
|                                                        |
|  /usr/local/apache/conf/httpd.conf
+
|  /usr/local/apache/conf/httpd.conf
|                                                        |
+
|                                                        |
| and then you should be able to immediately fire up    |
+
| and then you should be able to immediately fire up    |
| Apache the first time by running:                      |
+
| Apache the first time by running:                      |
|                                                        |
+
|                                                        |
|  /usr/local/apache/bin/apachectl start
+
|  /usr/local/apache/bin/apachectl start
|                                                        |
+
|                                                        |
| Thanks for using Apache.      The Apache Group        |
+
| Thanks for using Apache.      The Apache Group        |
|                                http://www.apache.org/  |
+
|                                http://www.apache.org/  |
+--------------------------------------------------------+
+
+--------------------------------------------------------+
bash#
+
bash#
 +
 
 
Seesugune teade tähistab õnnelikku lõppu. Tarkvara on edukalt paigaldatud.
 
Seesugune teade tähistab õnnelikku lõppu. Tarkvara on edukalt paigaldatud.
  
Veebiserveri konfigureerimine
+
===Veebiserveri konfigureerimine===
  
 
Veebiserveri tööd juhib üks konfiguratsioonifail /usr/local/apache/conf/httpd.conf. Sellesse kirjutatake direktiivid üks reale, kusjuures # märgiga algavaid ridu ignoreeritakse. Ridu saab jätkata sisestades kurakallu (\) viimase sümbolina eelmisele reale, tegelikult eelviimasena, viimane on reavahetus :) Olemasolev sellenimeline fail httpd.conf jätke alles, sealt on hea hiljem asja edasi uurida, liigutage teise nime alla
 
Veebiserveri tööd juhib üks konfiguratsioonifail /usr/local/apache/conf/httpd.conf. Sellesse kirjutatake direktiivid üks reale, kusjuures # märgiga algavaid ridu ignoreeritakse. Ridu saab jätkata sisestades kurakallu (\) viimase sümbolina eelmisele reale, tegelikult eelviimasena, viimane on reavahetus :) Olemasolev sellenimeline fail httpd.conf jätke alles, sealt on hea hiljem asja edasi uurida, liigutage teise nime alla
  
bash# cd /usr/local/apache/conf
+
bash# cd /usr/local/apache/conf
bash# mv httpd.conf httpd.conf.orig
+
bash# mv httpd.conf httpd.conf.orig
 
Seejärel kasutage näiteks tekstiredaktorit Joe
 
Seejärel kasutage näiteks tekstiredaktorit Joe
  
bash# joe httpd.conf
+
bash# joe httpd.conf
 
ning sisestage alustuseks selline tekst
 
ning sisestage alustuseks selline tekst
  
User nobody
+
User nobody
Group nobody
+
Group nobody
ServerType standalone
+
ServerType standalone
Listen 80
+
Listen 80
ServerName www.zoo.tartu.ee
+
ServerName www.zoo.tartu.ee
ServerRoot "/usr/local/apache"
+
ServerRoot "/usr/local/apache"
DocumentRoot "/usr/local/apache/htdocs"
+
DocumentRoot "/usr/local/apache/htdocs"
DirectoryIndex index.html
+
DirectoryIndex index.html
TransferLog /usr/local/apache/logs/kasutuslogi.log
+
TransferLog /usr/local/apache/logs/kasutuslogi.log
ErrorLog /usr/local/apache/logs/vealogi.log
+
ErrorLog /usr/local/apache/logs/vealogi.log
Options None
+
Options None
<Directory />
+
<Directory />
AllowOverride None
+
AllowOverride None
</Directory>
+
</Directory>
 
On kasutatud järgmisi direktiive
 
On kasutatud järgmisi direktiive
  
User - kasutaja, kelle õigustes veebiserver töötab
+
*User - kasutaja, kelle õigustes veebiserver töötab
Group - grupp, kelle õigustes veebiserver töötab
+
*Group - grupp, kelle õigustes veebiserver töötab
ServerType - serveri tüüp, tavaliselt standalone so mitte inetd abil käivitatav
+
*ServerType - serveri tüüp, tavaliselt standalone so mitte inetd abil käivitatav
ServerName - millise nime server arvab endal olevat
+
*ServerName - millise nime server arvab endal olevat
ServerRoot - kataloog, mille all serveri programmid asuvad
+
*ServerRoot - kataloog, mille all serveri programmid asuvad
DocumentRoot - peaveebi kataloog, seal asuvaid faile serveeritakse päringu http://www.zoo.tartu.ee/ esitanud külastajale
+
*DocumentRoot - peaveebi kataloog, seal asuvaid faile serveeritakse päringu http://www.zoo.tartu.ee/ esitanud külastajale
DirectoryIndex - faili nimi, mis brauserisse saadetakse, kui ta küsib kataloogi eelusel, et sellenimeline fail kataloogis leidub
+
*DirectoryIndex - faili nimi, mis brauserisse saadetakse, kui ta küsib kataloogi eelusel, et sellenimeline fail kataloogis leidub
Transferlog - kasutuslogi, fail kuhu saadatakse andmed veebiserverile tulnub päringute kohta
+
*Transferlog - kasutuslogi, fail kuhu saadatakse andmed veebiserverile tulnub päringute kohta
ErrorLog - vealogi, fail kuhu saadetakse veateated; kataloog, kus see fail asub peab olema kindlasti olemas!
+
*ErrorLog - vealogi, fail kuhu saadetakse veateated; kataloog, kus see fail asub peab olema kindlasti olemas!
Listen - port millel veebiserver ootab päringuid, kõigil võrguseadmetel
+
*Listen - port millel veebiserver ootab päringuid, kõigil võrguseadmetel
Options - väärtus None tagab, et külastajale näidatakse vaid neid veebilehti, mida ta nimeliselt küsib.
+
*Options - väärtus None tagab, et külastajale näidatakse vaid neid veebilehti, mida ta nimeliselt küsib.
 +
 
 
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.
 
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.
  
173. rida: 180. rida:
 
Sektsioon
 
Sektsioon
  
<Directory />
+
<Directory />
AllowOverride None
+
AllowOverride None
</Directory>
+
</Directory>
 
tähendab, et kataloogides pole täiendavate vahenditega õigust veebiserveri kofiguratsiooni täpsustada. Sellist sektsiooni on väga oluline kasutada, kuna vaikimisi on kataloogipõhine veebiserveri konfigureerimine lubatud.
 
tähendab, et kataloogides pole täiendavate vahenditega õigust veebiserveri kofiguratsiooni täpsustada. Sellist sektsiooni on väga oluline kasutada, kuna vaikimisi on kataloogipõhine veebiserveri konfigureerimine lubatud.
  
 
Kuigi teatud parameetrite järjekord konfiguratsioonifailis ei ole tähtis jääb kehtima parameetrile viimasena omistatud väärtus.
 
Kuigi teatud parameetrite järjekord konfiguratsioonifailis ei ole tähtis jääb kehtima parameetrile viimasena omistatud väärtus.
  
Veebiserveri käivitamine
+
===Veebiserveri käivitamine===
  
 
Siin punktis toodud näited sobivad eelkõige, kui te olete Apache'i veebiserveri eeltoodud juhiste järgi ise kompleerinud. Konfigureeritud veebiserveri käivitamiseks andke käsk
 
Siin punktis toodud näited sobivad eelkõige, kui te olete Apache'i veebiserveri eeltoodud juhiste järgi ise kompleerinud. Konfigureeritud veebiserveri käivitamiseks andke käsk
  
bash# /usr/local/apache/bin/apachectl start
+
bash# /usr/local/apache/bin/apachectl start
 
Kui see käsk annab veateate, et server juba töötab, siis peatage ta käsuga stop
 
Kui see käsk annab veateate, et server juba töötab, siis peatage ta käsuga stop
  
bash# /usr/local/apache/bin/apachectl stop
+
bash# /usr/local/apache/bin/apachectl stop
 
ning proovige ta uuesti käivitada.
 
ning proovige ta uuesti käivitada.
  
 
Peale konfiguratsioonifaili muutmist kehtestuvad muutused serveri taaskäivitamisel soovitavalt käsuga graceful, või restart
 
Peale konfiguratsioonifaili muutmist kehtestuvad muutused serveri taaskäivitamisel soovitavalt käsuga graceful, või restart
  
bash# /usr/local/apache/bin/apachectl graceful
+
bash# /usr/local/apache/bin/apachectl graceful
 
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.
 
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.
  
 
Töötavast veebiserverist annab tunnistust see, kui süsteemi protsessitabelis on httpd deemoni nimi, isegi mitu
 
Töötavast veebiserverist annab tunnistust see, kui süsteemi protsessitabelis on httpd deemoni nimi, isegi mitu
  
bash# ps auxw | grep httpd
+
bash# ps auxw | grep httpd
root      198  0.0  0.4  4100 1608 ?        S    Jan19  0:00 /usr/local/apache/bin/httpd
+
root      198  0.0  0.4  4100 1608 ?        S    Jan19  0:00 /usr/local/apache/bin/httpd
nobody  12837  0.0  0.5  4140 1820 ?        S    10:17  0:00 /usr/local/apache/bin/httpd
+
nobody  12837  0.0  0.5  4140 1820 ?        S    10:17  0:00 /usr/local/apache/bin/httpd
nobody  12838  0.0  0.5  4140 1812 ?        S    10:17  0:00 /usr/local/apache/bin/httpd
+
nobody  12838  0.0  0.5  4140 1812 ?        S    10:17  0:00 /usr/local/apache/bin/httpd
nobody  12839  0.0  0.5  4140 1816 ?        S    10:17  0:00 /usr/local/apache/bin/httpd
+
nobody  12839  0.0  0.5  4140 1816 ?        S    10:17  0:00 /usr/local/apache/bin/httpd
nobody  12840  0.0  0.5  4128 1804 ?        S    10:17  0:00 /usr/local/apache/bin/httpd
+
nobody  12840  0.0  0.5  4128 1804 ?        S    10:17  0:00 /usr/local/apache/bin/httpd
nobody  12841  0.0  0.5  4140 1816 ?        S    10:17  0:00 /usr/local/apache/bin/httpd
+
nobody  12841  0.0  0.5  4140 1816 ?        S    10:17  0:00 /usr/local/apache/bin/httpd
nobody  12843  0.0  0.5  4128 1804 ?        S    10:19  0:00 /usr/local/apache/bin/httpd
+
nobody  12843  0.0  0.5  4128 1804 ?        S    10:19  0:00 /usr/local/apache/bin/httpd
nobody  12844  0.0  0.5  4128 1804 ?        S    10:19  0:00 /usr/local/apache/bin/httpd
+
nobody  12844  0.0  0.5  4128 1804 ?        S    10:19  0:00 /usr/local/apache/bin/httpd
nobody  12942  0.0  0.5  4128 1808 ?        S    10:54  0:00 /usr/local/apache/bin/httpd
+
nobody  12942  0.0  0.5  4128 1808 ?        S    10:54  0:00 /usr/local/apache/bin/httpd
nobody  13001  0.0  0.5  4128 1804 ?        S    11:08  0:00 /usr/local/apache/bin/httpd
+
nobody  13001  0.0  0.5  4128 1804 ?        S    11:08  0:00 /usr/local/apache/bin/httpd
 +
 
 
Aga veel parem kinnitus on, kui olemaks näitega kooskõlas päring http://www.zoo.edu.ee/ näitab veebilehte, so faili /usr/local/apache/htdocs/index.html. Samuti saab antud näite rakendamisel näha kasutajate kodulehti eeldusel, et nad asuvad kataloogide ~/public_html all.
 
Aga veel parem kinnitus on, kui olemaks näitega kooskõlas päring http://www.zoo.edu.ee/ näitab veebilehte, so faili /usr/local/apache/htdocs/index.html. Samuti saab antud näite rakendamisel näha kasutajate kodulehti eeldusel, et nad asuvad kataloogide ~/public_html all.
  
218. rida: 226. rida:
 
Kui selline meetod ei andnud tulemusi, lisage selline rida näiteks faili /etc/rc.d/rc.local
 
Kui selline meetod ei andnud tulemusi, lisage selline rida näiteks faili /etc/rc.d/rc.local
  
/usr/local/apache/bin/apachectl start
+
/usr/local/apache/bin/apachectl start
 
ning katsetage taas.
 
ning katsetage taas.
  
Veebiserveri kasutamine
+
===Veebiserveri kasutamine===
  
 
Näitena esitatud konfiguratsioon võimadab nii põhiveebi, kui kasutajate veebe serveerida. Instrueerige kasutajaid, et nad teeksid oma kodukataloogi kataloogi public_html ning paigutaksid oma veebi failid sinna.
 
Näitena esitatud konfiguratsioon võimadab nii põhiveebi, kui kasutajate veebe serveerida. Instrueerige kasutajaid, et nad teeksid oma kodukataloogi kataloogi public_html ning paigutaksid oma veebi failid sinna.
231. rida: 239. rida:
 
Järgnevalt selgitame näidete varal, kuidas reguleerida ligipääsu erinevatele veebi osadele. Tavaliselt kasutatakse direktiivi Directory, et näidata millisele kataloogile ning selle alla jäävaile failidele ning alamkataloogidele tehtud määrang kehtib.
 
Järgnevalt selgitame näidete varal, kuidas reguleerida ligipääsu erinevatele veebi osadele. Tavaliselt kasutatakse direktiivi Directory, et näidata millisele kataloogile ning selle alla jäävaile failidele ning alamkataloogidele tehtud määrang kehtib.
  
Veebile ligipääsu kontrollimine
+
===Veebile ligipääsu kontrollimine===
  
 
Veebiserveri konfiguratsioonifailis saab näidata, millistelt aadressidelt külastajaid teenindatakse või ei teenindata. Näiteks järgmine sektsioon lubab kataloogi /usr/local/apache/htdocs/omadele alla jäävale veebile ligipääseda vaid külastajaid, kes kuuluvad domeeni zoo.tartu.ee
 
Veebiserveri konfiguratsioonifailis saab näidata, millistelt aadressidelt külastajaid teenindatakse või ei teenindata. Näiteks järgmine sektsioon lubab kataloogi /usr/local/apache/htdocs/omadele alla jäävale veebile ligipääseda vaid külastajaid, kes kuuluvad domeeni zoo.tartu.ee
  
<Directory /usr/local/apache/htdocs/omadele>
+
<Directory /usr/local/apache/htdocs/omadele>
Order Deny,Allow
+
Order Deny,Allow
Deny from all
+
Deny from all
Allow from zoo.tartu.ee
+
Allow from zoo.tartu.ee
</Directory>
+
</Directory>
Kataloogi-indeks
+
 
 +
===Kataloogi-indeks===
  
 
Direktiiviga DirectoryIndex saab kontrollida, milline kataloogis sisalduv fail saadetakse brauserisse, kui päring esitati sellele kataloogile. Näiteks oletame, et teil on kataloogis /usr/local/apache/htdocs/eluolu mitmeid faile ning olete seadnud selle kataloogi kataloogi-indeksi väärtuseks index.html index.htm
 
Direktiiviga DirectoryIndex saab kontrollida, milline kataloogis sisalduv fail saadetakse brauserisse, kui päring esitati sellele kataloogile. Näiteks oletame, et teil on kataloogis /usr/local/apache/htdocs/eluolu mitmeid faile ning olete seadnud selle kataloogi kataloogi-indeksi väärtuseks index.html index.htm
  
<Directory /usr/local/apache/htdocs/eluolu>
+
<Directory /usr/local/apache/htdocs/eluolu>
DirectoryIndex index.html index.htm
+
DirectoryIndex index.html index.htm
</Directory>
+
</Directory>
 
Esimeses järjekorras püüab sel juhul veebiserver leida faili index.html; kui sellist ei leidu, siis index.htm ning saata brauserisse.
 
Esimeses järjekorras püüab sel juhul veebiserver leida faili index.html; kui sellist ei leidu, siis index.htm ning saata brauserisse.
  
Direktiiv Options
+
===Direktiiv Options===
  
 
Jätkates eelmise punkti näidet, kuna direktiivi Options väärtus on konfiguratsioonifaili algul seatud None'ks, siis index.html või index.htm faili mitteleidmisel saadetakse brauserisse veateade. Kui aga eluolu Directoy sektsiooni lisada direktiiv 'Opions Indexes'
 
Jätkates eelmise punkti näidet, kuna direktiivi Options väärtus on konfiguratsioonifaili algul seatud None'ks, siis index.html või index.htm faili mitteleidmisel saadetakse brauserisse veateade. Kui aga eluolu Directoy sektsiooni lisada direktiiv 'Opions Indexes'
  
<Directory /usr/local/apache/htdocs/eluolu>
+
<Directory /usr/local/apache/htdocs/eluolu>
Options Indexes
+
Options Indexes
DirectoryIndex index.html index.htm
+
DirectoryIndex index.html index.htm
</Directory>
+
</Directory>
 
siis näidatakse külastajale kataloogi failide nimekirja.
 
siis näidatakse külastajale kataloogi failide nimekirja.
  
Veebiserveri logi
+
===Veebiserveri logi===
  
 
Veebiserveri toimimise analüüsimiseks on sobiv kasutada logi. Esitatud näiteks salvestatakse kahte sorti logi
 
Veebiserveri toimimise analüüsimiseks on sobiv kasutada logi. Esitatud näiteks salvestatakse kahte sorti logi
  
kasutuslogi - registreeritakse teenindatud päringud
+
*kasutuslogi - registreeritakse teenindatud päringud
vealogi - töös esinevate vigade registreerimiseks
+
*vealogi - töös esinevate vigade registreerimiseks
Kasutuslogi
+
 
 +
====Kasutuslogi====
  
 
Kasutuslogisse registreeritakse andmed veebiserverisse tulnud päringute kohta. Kasutuslogi faili nimi määratakse konfiguratsioonifailis direktiiviga TransferLog
 
Kasutuslogisse registreeritakse andmed veebiserverisse tulnud päringute kohta. Kasutuslogi faili nimi määratakse konfiguratsioonifailis direktiiviga TransferLog
  
TransferLog /var/log/apache/kasutuslogi.log
+
TransferLog /var/log/apache/kasutuslogi.log
 
Näiteks seesugune rida kasutuslogis
 
Näiteks seesugune rida kasutuslogis
  
275. rida: 285. rida:
 
tähendab
 
tähendab
  
ppp20.isp.tartu.ee - maisinanimi kust päring esitati
+
*ppp20.isp.tartu.ee - maisinanimi kust päring esitati
- - kasutajanimi kes päringu esitas eeldusel, tavaliselt tühi, kuna külastaja tuvastamine pole lihtne
+
*- - kasutajanimi kes päringu esitas eeldusel, tavaliselt tühi, kuna külastaja tuvastamine pole lihtne
- - kui veebiserveri ressurss nõudis autentimist, siis kasutatud kasutajanimi
+
*- - kui veebiserveri ressurss nõudis autentimist, siis kasutatud kasutajanimi
[20/Jan/2001:09:49:47 +0100] - päringu esitamise aeg
+
*[20/Jan/2001:09:49:47 +0100] - päringu esitamise aeg
"GET /ilupilt.gif HTTP/1.0" - jutumärkides esitatud päringu esimene rida
+
*"GET /ilupilt.gif HTTP/1.0" - jutumärkides esitatud päringu esimene rida
200 - päringule vastuse olek (ingl. k. status), 200 tähendab, et päringut teenindati
+
*200 - päringule vastuse olek (ingl. k. status), 200 tähendab, et päringut teenindati
2780- päringu vastuse maht baitides
+
*2780- päringu vastuse maht baitides
 +
 
 
pidevalt kasvava faili lisanduvaid ridu on mõnus vaadata selliselt programmiga Tail
 
pidevalt kasvava faili lisanduvaid ridu on mõnus vaadata selliselt programmiga Tail
  
bash# tail -f /var/log/apache/kasutuslogi.log
+
bash# tail -f /var/log/apache/kasutuslogi.log
Vealogi
+
====Vealogi====
  
 
Vealogisse saadetakse teated serveri käivitamise kohta ning töös esinevate tõrgete kohta. Kui serveri konfiguratsioonifailis on väga tõsised vead, näiteks süntaksivead, siis server ei käivitugi. Vähemtõsiste vigade kohta tulevad teated siia. Neid maksab tähele panna ning võimalusel midagi ette võtta. Tavaliselt saab veateatest järeldada, mis pahasti on.
 
Vealogisse saadetakse teated serveri käivitamise kohta ning töös esinevate tõrgete kohta. Kui serveri konfiguratsioonifailis on väga tõsised vead, näiteks süntaksivead, siis server ei käivitugi. Vähemtõsiste vigade kohta tulevad teated siia. Neid maksab tähele panna ning võimalusel midagi ette võtta. Tavaliselt saab veateatest järeldada, mis pahasti on.
  
Nõuded veebis esitatavate failide õigustele
+
===Nõuded veebis esitatavate failide õigustele===
  
 
Direktiiviga DocumentRoot saab näidata veebiserverile, millises kataloogis asuvad põhiveebile vastavad failid. Kui te näiteks otsustate hoida põhiveebi kataloogis /html, siis peavad sellel kataloogil, seal sisalduvatel failidel ja kataloogidel olema sellised õigused et kasutaja, kelle õigustes veebiserver töötab omab neile ligipääsu. Ning muidugi tuleb muutma konfiguratsioonifaili direktiiv DocumentRoot vastavaks.
 
Direktiiviga DocumentRoot saab näidata veebiserverile, millises kataloogis asuvad põhiveebile vastavad failid. Kui te näiteks otsustate hoida põhiveebi kataloogis /html, siis peavad sellel kataloogil, seal sisalduvatel failidel ja kataloogidel olema sellised õigused et kasutaja, kelle õigustes veebiserver töötab omab neile ligipääsu. Ning muidugi tuleb muutma konfiguratsioonifaili direktiiv DocumentRoot vastavaks.
297. rida: 308. rida:
 
Niisiis, näiteks otsustati hoida peaveebi kataloogis /html ning sellega lasta edasi tegeleda süsteemi kasutajal priit grupiga users. Esmalt teeme priidu kataloogi /html ja selle alla jäävate failide omanikuks ning siis anname neile failidele priidu suhtes kõik õigused (7) ning teistele sama masina kasutajatele sh veebiserverile vastavale kasuajale vaid lugemise ja käivitamise õiguse (55)
 
Niisiis, näiteks otsustati hoida peaveebi kataloogis /html ning sellega lasta edasi tegeleda süsteemi kasutajal priit grupiga users. Esmalt teeme priidu kataloogi /html ja selle alla jäävate failide omanikuks ning siis anname neile failidele priidu suhtes kõik õigused (7) ning teistele sama masina kasutajatele sh veebiserverile vastavale kasuajale vaid lugemise ja käivitamise õiguse (55)
  
bash# chown -R priit.users /html
+
bash# chown -R priit.users /html
bash# chmod -R 755 /html
+
bash# chmod -R 755 /html
 
Peaveebiga võib tegeleda ka mitu kasutajat, oluline on, et veebile vastavad failid oleks ligipääsetavad sellele kasutajale, kelle õigustes veebserver töötab. NB! Lisaks sellele, et veebi failid ise peavad olema ligipääsetavad, peavad olema seda ka kõik kataloogid alates süsteemi juurikast kuni failini!
 
Peaveebiga võib tegeleda ka mitu kasutajat, oluline on, et veebile vastavad failid oleks ligipääsetavad sellele kasutajale, kelle õigustes veebserver töötab. NB! Lisaks sellele, et veebi failid ise peavad olema ligipääsetavad, peavad olema seda ka kõik kataloogid alates süsteemi juurikast kuni failini!
  
 
Peaveebi peab saama näha, kui brauseriga esitada päring http://www.zoo.tartu.ee/.
 
Peaveebi peab saama näha, kui brauseriga esitada päring http://www.zoo.tartu.ee/.
  
Süsteemi kasutajate veebid
+
===Süsteemi kasutajate veebid===
  
 
Vaikimisi on ette nähtud, et kasutajad tekitavad oma kodukataloogi kataloogi public_html ning hoiavad seal oma veebile vastavaid faile. Faili õiguste suhtes kehtib sama nõue - kasutaja, kelle õigustes veebiserver töötab peab omama neile ligipääsu. Tavaliselt sobib veebi failidele ja kataloogidele omistada õigused 755
 
Vaikimisi on ette nähtud, et kasutajad tekitavad oma kodukataloogi kataloogi public_html ning hoiavad seal oma veebile vastavaid faile. Faili õiguste suhtes kehtib sama nõue - kasutaja, kelle õigustes veebiserver töötab peab omama neile ligipääsu. Tavaliselt sobib veebi failidele ja kataloogidele omistada õigused 755
  
bash# chmod -R 755 public_html
+
bash# chmod -R 755 public_html
 
Kasutaja veebi näidatakse vastuseks sarnasele brauseri päringule http://www.zoo.tartu.ee/~mart/.
 
Kasutaja veebi näidatakse vastuseks sarnasele brauseri päringule http://www.zoo.tartu.ee/~mart/.
  
314. rida: 325. rida:
 
Nimelt, reeglina on süsteemi kasutaja kodukataloog kasutaja oma, kuid mitmetel Linuxitel on sellele määratud ebasobivad õigused. Näiteks Slackware Linuxil on vaikimisi kasutaja kodukataloogil õigused 755, mis on liiga palju, kuna grupile ja kõigile on lubatud kasutaja kodukataloogi siseneda ning seal lugeda. RedHati mõnel versioonil on aga õigused 750, mis on veebi jaoks liiga vähe, kuna kõigil, näiteks kasutajale kelle õigustes töötab veebiserver pole õigust kasutaja kodukataloogi siseneda. Kokkuvõttes tundub, et kõige õigem on anda kasutaja kodukataloogile õigused 711
 
Nimelt, reeglina on süsteemi kasutaja kodukataloog kasutaja oma, kuid mitmetel Linuxitel on sellele määratud ebasobivad õigused. Näiteks Slackware Linuxil on vaikimisi kasutaja kodukataloogil õigused 755, mis on liiga palju, kuna grupile ja kõigile on lubatud kasutaja kodukataloogi siseneda ning seal lugeda. RedHati mõnel versioonil on aga õigused 750, mis on veebi jaoks liiga vähe, kuna kõigil, näiteks kasutajale kelle õigustes töötab veebiserver pole õigust kasutaja kodukataloogi siseneda. Kokkuvõttes tundub, et kõige õigem on anda kasutaja kodukataloogile õigused 711
  
bash# chmod 711 /home/mart
+
bash# chmod 711 /home/mart
 
mis tähendab, et kasutajal endal on kõik õigused ning teistel on õigus vaid siseneda.
 
mis tähendab, et kasutajal endal on kõik õigused ning teistel on õigus vaid siseneda.
  
 
Süsteemi kasutajate kodukataloog /home on tavaliselt loabitid 755
 
Süsteemi kasutajate kodukataloog /home on tavaliselt loabitid 755
  
bash# ls -ld /home
+
bash# ls -ld /home
drwxr-xr-x  15 root    root        4096 Jan 20 16:25 /home
+
drwxr-xr-x  15 root    root        4096 Jan 20 16:25 /home
Veebiserveri turvalisus
+
===Veebiserveri turvalisus===
  
 
Veebiserveri kasutamisel arvestage, et iseenesest on veebiserver programm, mis teeb teie arvuti failid kättesaadavaks HTTP protokolli kasutavaile klientidele so brauseritele.
 
Veebiserveri kasutamisel arvestage, et iseenesest on veebiserver programm, mis teeb teie arvuti failid kättesaadavaks HTTP protokolli kasutavaile klientidele so brauseritele.
331. rida: 342. rida:
 
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
 
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
  
bash# cd /usr/local/apache
+
bash# cd /usr/local/apache
bash# chown 0 bin conf logs
+
bash# chown 0 bin conf logs
bash# chgrp 0  bin conf logs
+
bash# chgrp 0  bin conf logs
bash# chmod 755 bin conf logs
+
bash# chmod 755 bin conf logs
 
 
bash# chown 0 /usr/local/apache/bin/httpd
 
bash# chgrp 0 /usr/local/apache/bin/httpd
 
bash# chmod 511 /usr/local/apache/bin/httpd
 
Kasulikud lisamaterjalid
 
  
 +
bash# chown 0 /usr/local/apache/bin/httpd
 +
bash# chgrp 0 /usr/local/apache/bin/httpd
 +
bash# chmod 511 /usr/local/apache/bin/httpd
 +
===Kasulikud lisamaterjalid===
  
 
Apache'i veebiserver  
 
Apache'i veebiserver  

Redaktsioon: 6. juuni 2011, kell 16:27

                                        Roheline.jpg Toores. Ehk seda pala võib täiendada.

Apache'i veebiserver

Sissejuhatus

Käesoleva pala eesmärk on abistada teid saada operatsioonisüsteem Linuxiga tööle Apache veebiserver. Veebiserver on selline programm, mis võimaldab arvutis leiduvaid teatud faile näidata brauserisse, kui brauser neid küsib. Nagu nimi ütleb on veebiserver server, brauseri kohta võib öelda klient.

Tavaliselt seatakse veebiserver tööle arvutisse, millel on võrguühendus olemas. Lisaks veebiserverile võivad seal samas arvutis olla ka muud serverid, näiteks e-posti ja failiserver ning kasutajate kodukataloogid. Veebiserveri seadistamiseks, konfigureerimiseks ja käivitamiseks on teil tarvis kõnealusele arvutile ligipääsu juurkasutaja õigustes. Tingimata ei ole see vajalik, kuid eeldame, et te sooritate kõik tekstis kirjeldatud sammud juurkasutajana.

Kuna Apache'i veebiserver on väga levinud tarkvara, siis on ta suure tõenäosusega juba teie süsteemi installeeritud ja jääb vaid üle ta kasutusele võtta. Otsige oma süsteemist faili httpd, mille abil toimub veebiserveri töö juhtimine

bash# find / -name httpd

See võib võtta mõni minut aega. Faili leidmisel antakse teile teada, millises kataloogis ta asub. Näiteks väljundi hulgas on selline rida

/usr/local/apache/bin/httpd

Antud juhul on teil veebiserveri tarkvara juba olemas ning asub kataloogis /usr/local/apache. Tarkvara ei ole vaja paigalda, jätkake lugemist punktist Veebiserveri konfigureerimine. Võimalik, et veebiserveri käivitamine ja seiskamine toimub teie süsteemis kuidagi teisiti kui on kirjdatud punktis Veebiserveri käivitamine.

Kui te faili httpd ei leidnud, siis tõenäoliselt ei ole teie arvutisse veebiserverit installeeritud. Jätkake lugemist järgmisest punktist.

Veebiserveri paigaldamine algkoodist

Ettevalmistused veebiserveri paigaldamiseks algkoodist

Enne veebiserveri installeerimise juurde asumist veenduge, et teil on süsteemis piisavalt vaba ruumi. Järgnevas paigaldame Apache'i kataloogi /usr/local/apache ning ainult tarkvara võtab alla viie MB ruumi. Kui te otsustate paigutada ka põhiveebi ja logid sama kataloogi alla, on see maht suurem ja suurenev.

Näites pakime veebiserveri lähtetekstid lahti kataloogis /usr/src ning ka kompileerime seal. Selleks kulub ca 12 MB. Vaadakse oma ressursse käsuga df

Filesystem           1k-blocks      Used Available Use% Mounted on
/dev/sda2              3470679   2948079    343074  90% /
/dev/sda3               598665    500281     67459  88% /var
/dev/hdb3              9875164   9631024    244140  98% /home
/dev/hdb2              6851880   6727492         0 100% /mnt

Toodud näite puhul asub kataloog /usr ilmselt juurfailisüsteemiga samal partitsioonil /dev/sda2, millele vastab esimene rida. Seal on vaba ruumi üle kolmesaja MB mida on enam kui piisav.

Veebiserveri kasutaja

Apache veebiserver teenindab külastajaid tavaliselt spetsiaalse tavakasutaja õigustes, vaikimisi on selleks kasutaja nobody grupiga nobody. Reeglina on seesugune kasutaja teie süsteemis olemas, kontrolliks küsige arvutilt, mis gruppi kasutaja nobody kuulub

bash# groups nobody
nobody : nogroup nobody

Antud juhul vastati, et gruppidesse nogroup ning nobody, mis on piisav.

Kui seda kasutajat pole või soovite panna veebiserveri käima mõne teise kasutajana, siis moodustage esmalt talle grupp, näiteks grupp nimega veeb

bash# groupadd veeb

ning selle grupiga uus kasutaja, näiteks apache

bash# useradd -g veeb -m -d /usr/local/apache apache

Kas süsteemis on kompileerimiseks vajalikud vahendid

Ilmselt peavad teie süsteemis leiduma kompileerimiseks vajalikud vahendid. Veenduge, et teil on olemas C kompilaator, näiteks küsige talt, mis versiooniga on tegu

bash# gcc --version
egcs-2.91.66

Praktiliselt pole oluline versiooni number, peamine, et midagi vastatakse. Kui teil kompilaator puudub, siis on teil kaks võimalust, kas paigaldada kompilaator või veebiserver oma distributsiooni paketist. Neid teemasid käesolevas palas ei käsitleta.

Tuuma include failid

Lisaks on tarvis, et teie süsteemis leiduksid kasutatavale tuumale vastavad tuuma lähtetekstide include failid. Kontrollige, et viide /usr/include/linux -> /usr/src/linux/include/linux/ on olemas

bash# ls -l /usr/include/linux/
lrwxrwxrwx   1 root     root           28 Oct 12 16:55 /usr/include/linux ->  /usr/src/linux/include/linux/ 

ning viidatud kataloogis leiduv faile

bash# ls -l /usr/src/linux/include/linux/
total 3108
-rw-r--r--   1 523      523          4645 Dec 11 02:49 16c552.h
-rw-r--r--   1 523      523          7295 Dec 23 17:33 a.out.h
-rw-r--r--   1 523      523          7497 Dec 11 02:49 ac97_codec.h
-rw-r--r--   1 523      523          2589 Dec 23 17:33 acct.h
-rw-r--r--   1 523      523          1371 Dec 11 02:49 adfs_fs.h
-rw-r--r--   1 523      523           497 Dec 11 02:49 adfs_fs_i.h
-rw-r--r--   1 523      523          1064 Dec 11 02:49 adfs_fs_sb.h
-rw-r--r--   1 523      523          4470 Dec 23 17:36 affs_fs.h
....

Tarkvara kopeerimine ja paigaldamine

Veebiserveri paigaldamiseks kopeerige programmi lähteteksid kataloogi /usr/src.

Seejärel sisenege kataloogi /usr/src ning pakkige lähtetekstide arhiiv lahti

bash# cd /usr/src
bash# tar zxvf apache_1.3.14.tar.gz

Sisenege Apache lähtetekstide kataloogi ning eelkonfigureerige veebiserver

bash# cd apache_1.3.14
bash# ./configure
..
...
Creating Makefile in src/main
Creating Makefile in src/lib/expat-lite
Creating Makefile in src/modules/standard
bash#

Kui see samm lõppes ilma veateateta, siis andke tarkvara kompilleerimisks käsk

bash# make
..
...
   -e 's%@LIBS_SHLIB@%%g' && chmod a+x apxs
make[2]: Leaving directory /usr/src/apache_1.3.14/src/support'
<=== src/support
make[1]: Leaving directory /usr/src/apache_1.3.14'
<=== src
bash#

lõpuks paigaldage tarkvara

bash# make install
..
...
make[1]: Leaving directory /usr/src/apache_1.3.14'
+--------------------------------------------------------+
| You now have successfully built and installed the      |
| Apache 1.3 HTTP server. To verify that Apache actually |
| works correctly you now should first check the         |
| (initially created or preserved) configuration files   |
|                                                        |
|   /usr/local/apache/conf/httpd.conf
|                                                        |
| and then you should be able to immediately fire up     |
| Apache the first time by running:                      |
|                                                        |
|   /usr/local/apache/bin/apachectl start
|                                                        |
| Thanks for using Apache.       The Apache Group        |
|                                http://www.apache.org/  |
+--------------------------------------------------------+
bash#

Seesugune teade tähistab õnnelikku lõppu. Tarkvara on edukalt paigaldatud.

Veebiserveri konfigureerimine

Veebiserveri tööd juhib üks konfiguratsioonifail /usr/local/apache/conf/httpd.conf. Sellesse kirjutatake direktiivid üks reale, kusjuures # märgiga algavaid ridu ignoreeritakse. Ridu saab jätkata sisestades kurakallu (\) viimase sümbolina eelmisele reale, tegelikult eelviimasena, viimane on reavahetus :) Olemasolev sellenimeline fail httpd.conf jätke alles, sealt on hea hiljem asja edasi uurida, liigutage teise nime alla

bash# cd /usr/local/apache/conf
bash# mv httpd.conf httpd.conf.orig

Seejärel kasutage näiteks tekstiredaktorit Joe

bash# joe httpd.conf

ning sisestage alustuseks selline tekst

User nobody
Group nobody
ServerType standalone
Listen 80
ServerName www.zoo.tartu.ee
ServerRoot "/usr/local/apache"
DocumentRoot "/usr/local/apache/htdocs"
DirectoryIndex index.html
TransferLog /usr/local/apache/logs/kasutuslogi.log
ErrorLog /usr/local/apache/logs/vealogi.log
Options None
<Directory />
AllowOverride None
</Directory>

On kasutatud järgmisi direktiive

  • User - kasutaja, kelle õigustes veebiserver töötab
  • Group - grupp, kelle õigustes veebiserver töötab
  • ServerType - serveri tüüp, tavaliselt standalone so mitte inetd abil käivitatav
  • ServerName - millise nime server arvab endal olevat
  • ServerRoot - kataloog, mille all serveri programmid asuvad
  • DocumentRoot - peaveebi kataloog, seal asuvaid faile serveeritakse päringu http://www.zoo.tartu.ee/ esitanud külastajale
  • DirectoryIndex - faili nimi, mis brauserisse saadetakse, kui ta küsib kataloogi eelusel, et sellenimeline fail kataloogis leidub
  • Transferlog - kasutuslogi, fail kuhu saadatakse andmed veebiserverile tulnub päringute kohta
  • ErrorLog - vealogi, fail kuhu saadetakse veateated; kataloog, kus see fail asub peab olema kindlasti olemas!
  • Listen - port millel veebiserver ootab päringuid, kõigil võrguseadmetel
  • Options - väärtus None tagab, et külastajale näidatakse vaid neid veebilehti, mida ta nimeliselt küsib.

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.

Konfiguratsioonifailis kasutatud kataloogid peavad süsteemis leiduma, toodud näites peavad nad kuuluma lähtudes turvakaalutlustest juurkasutajale; samuti nendest kataloogidest ülevalpool asuvad kataloogid.

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.

Sektsioon

<Directory />
AllowOverride None
</Directory>

tähendab, et kataloogides pole täiendavate vahenditega õigust veebiserveri kofiguratsiooni täpsustada. Sellist sektsiooni on väga oluline kasutada, kuna vaikimisi on kataloogipõhine veebiserveri konfigureerimine lubatud.

Kuigi teatud parameetrite järjekord konfiguratsioonifailis ei ole tähtis jääb kehtima parameetrile viimasena omistatud väärtus.

Veebiserveri käivitamine

Siin punktis toodud näited sobivad eelkõige, kui te olete Apache'i veebiserveri eeltoodud juhiste järgi ise kompleerinud. Konfigureeritud veebiserveri käivitamiseks andke käsk

bash# /usr/local/apache/bin/apachectl start

Kui see käsk annab veateate, et server juba töötab, siis peatage ta käsuga stop

bash# /usr/local/apache/bin/apachectl stop

ning proovige ta uuesti käivitada.

Peale konfiguratsioonifaili muutmist kehtestuvad muutused serveri taaskäivitamisel soovitavalt käsuga graceful, või restart

bash# /usr/local/apache/bin/apachectl graceful

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.

Töötavast veebiserverist annab tunnistust see, kui süsteemi protsessitabelis on httpd deemoni nimi, isegi mitu

bash# ps auxw | grep httpd
root       198  0.0  0.4  4100 1608 ?        S    Jan19   0:00 /usr/local/apache/bin/httpd
nobody   12837  0.0  0.5  4140 1820 ?        S    10:17   0:00 /usr/local/apache/bin/httpd
nobody   12838  0.0  0.5  4140 1812 ?        S    10:17   0:00 /usr/local/apache/bin/httpd
nobody   12839  0.0  0.5  4140 1816 ?        S    10:17   0:00 /usr/local/apache/bin/httpd
nobody   12840  0.0  0.5  4128 1804 ?        S    10:17   0:00 /usr/local/apache/bin/httpd
nobody   12841  0.0  0.5  4140 1816 ?        S    10:17   0:00 /usr/local/apache/bin/httpd
nobody   12843  0.0  0.5  4128 1804 ?        S    10:19   0:00 /usr/local/apache/bin/httpd
nobody   12844  0.0  0.5  4128 1804 ?        S    10:19   0:00 /usr/local/apache/bin/httpd
nobody   12942  0.0  0.5  4128 1808 ?        S    10:54   0:00 /usr/local/apache/bin/httpd
nobody   13001  0.0  0.5  4128 1804 ?        S    11:08   0:00 /usr/local/apache/bin/httpd

Aga veel parem kinnitus on, kui olemaks näitega kooskõlas päring http://www.zoo.edu.ee/ näitab veebilehte, so faili /usr/local/apache/htdocs/index.html. Samuti saab antud näite rakendamisel näha kasutajate kodulehti eeldusel, et nad asuvad kataloogide ~/public_html all.

Kui veebiserveri käivitamisel ilmneb raskusi, siis tasub uurida vealogi (/var/log/apache/error.log) sisu.

Veebiserveri automaatne käivitamine

Kui teie süsteemis juba oli veebiserveri installeeritud, siis tõenäoliselt käivitatakse ta automaatselt süsteemi algkäivitamisel. Sarnaselt, tihti on süsteemi algkäivitusskriptid nii seatud, et kui arvutis leidub veebiserver, siis see ka käivitatakse. Katsetage!

Kui selline meetod ei andnud tulemusi, lisage selline rida näiteks faili /etc/rc.d/rc.local

/usr/local/apache/bin/apachectl start

ning katsetage taas.

Veebiserveri kasutamine

Näitena esitatud konfiguratsioon võimadab nii põhiveebi, kui kasutajate veebe serveerida. Instrueerige kasutajaid, et nad teeksid oma kodukataloogi kataloogi public_html ning paigutaksid oma veebi failid sinna.

Näiteks kasutaja fail /home/mart/public_html/mart.jpg on veebist ligipääsetav URLi http://www.zoo.tartu.ee/~mart/mart.jpg abil.

Põhiveebile vastab kataloog /usr/local/apache/htdocs. Näiteks põhiveebi fail /usr/local/apache/htdocs/grupipilt.jpg on ligipääsetav URLi http://www.zoo.tartu.ee/grupiplt abil.

Järgnevalt selgitame näidete varal, kuidas reguleerida ligipääsu erinevatele veebi osadele. Tavaliselt kasutatakse direktiivi Directory, et näidata millisele kataloogile ning selle alla jäävaile failidele ning alamkataloogidele tehtud määrang kehtib.

Veebile ligipääsu kontrollimine

Veebiserveri konfiguratsioonifailis saab näidata, millistelt aadressidelt külastajaid teenindatakse või ei teenindata. Näiteks järgmine sektsioon lubab kataloogi /usr/local/apache/htdocs/omadele alla jäävale veebile ligipääseda vaid külastajaid, kes kuuluvad domeeni zoo.tartu.ee

<Directory /usr/local/apache/htdocs/omadele>
Order Deny,Allow
Deny from all
Allow from zoo.tartu.ee
</Directory>

Kataloogi-indeks

Direktiiviga DirectoryIndex saab kontrollida, milline kataloogis sisalduv fail saadetakse brauserisse, kui päring esitati sellele kataloogile. Näiteks oletame, et teil on kataloogis /usr/local/apache/htdocs/eluolu mitmeid faile ning olete seadnud selle kataloogi kataloogi-indeksi väärtuseks index.html index.htm

<Directory /usr/local/apache/htdocs/eluolu>
DirectoryIndex index.html index.htm
</Directory>

Esimeses järjekorras püüab sel juhul veebiserver leida faili index.html; kui sellist ei leidu, siis index.htm ning saata brauserisse.

Direktiiv Options

Jätkates eelmise punkti näidet, kuna direktiivi Options väärtus on konfiguratsioonifaili algul seatud None'ks, siis index.html või index.htm faili mitteleidmisel saadetakse brauserisse veateade. Kui aga eluolu Directoy sektsiooni lisada direktiiv 'Opions Indexes'

<Directory /usr/local/apache/htdocs/eluolu>
Options Indexes
DirectoryIndex index.html index.htm
</Directory>

siis näidatakse külastajale kataloogi failide nimekirja.

Veebiserveri logi

Veebiserveri toimimise analüüsimiseks on sobiv kasutada logi. Esitatud näiteks salvestatakse kahte sorti logi

  • kasutuslogi - registreeritakse teenindatud päringud
  • vealogi - töös esinevate vigade registreerimiseks

Kasutuslogi

Kasutuslogisse registreeritakse andmed veebiserverisse tulnud päringute kohta. Kasutuslogi faili nimi määratakse konfiguratsioonifailis direktiiviga TransferLog

TransferLog /var/log/apache/kasutuslogi.log

Näiteks seesugune rida kasutuslogis

ppp20.isp.tartu.ee - - [20/Jan/2001:09:49:47 +0100] "GET /ilupilt.gif HTTP/1.0" 200 2780 tähendab

  • ppp20.isp.tartu.ee - maisinanimi kust päring esitati
  • - - kasutajanimi kes päringu esitas eeldusel, tavaliselt tühi, kuna külastaja tuvastamine pole lihtne
  • - - kui veebiserveri ressurss nõudis autentimist, siis kasutatud kasutajanimi
  • [20/Jan/2001:09:49:47 +0100] - päringu esitamise aeg
  • "GET /ilupilt.gif HTTP/1.0" - jutumärkides esitatud päringu esimene rida
  • 200 - päringule vastuse olek (ingl. k. status), 200 tähendab, et päringut teenindati
  • 2780- päringu vastuse maht baitides

pidevalt kasvava faili lisanduvaid ridu on mõnus vaadata selliselt programmiga Tail

bash# tail -f /var/log/apache/kasutuslogi.log

Vealogi

Vealogisse saadetakse teated serveri käivitamise kohta ning töös esinevate tõrgete kohta. Kui serveri konfiguratsioonifailis on väga tõsised vead, näiteks süntaksivead, siis server ei käivitugi. Vähemtõsiste vigade kohta tulevad teated siia. Neid maksab tähele panna ning võimalusel midagi ette võtta. Tavaliselt saab veateatest järeldada, mis pahasti on.

Nõuded veebis esitatavate failide õigustele

Direktiiviga DocumentRoot saab näidata veebiserverile, millises kataloogis asuvad põhiveebile vastavad failid. Kui te näiteks otsustate hoida põhiveebi kataloogis /html, siis peavad sellel kataloogil, seal sisalduvatel failidel ja kataloogidel olema sellised õigused et kasutaja, kelle õigustes veebiserver töötab omab neile ligipääsu. Ning muidugi tuleb muutma konfiguratsioonifaili direktiiv DocumentRoot vastavaks.

Kuigi peaveebile (http://www.zoo.tartu.ee/) vastavad failid ei ole ehk sisuliselt ühegi kasutaja omad, on praktiline, kui nende ettevalmistamisega tegeldakse süsteemi tavakasutaja, mitte juurkasutaja õigustes.

Niisiis, näiteks otsustati hoida peaveebi kataloogis /html ning sellega lasta edasi tegeleda süsteemi kasutajal priit grupiga users. Esmalt teeme priidu kataloogi /html ja selle alla jäävate failide omanikuks ning siis anname neile failidele priidu suhtes kõik õigused (7) ning teistele sama masina kasutajatele sh veebiserverile vastavale kasuajale vaid lugemise ja käivitamise õiguse (55)

bash# chown -R priit.users /html
bash# chmod -R 755 /html

Peaveebiga võib tegeleda ka mitu kasutajat, oluline on, et veebile vastavad failid oleks ligipääsetavad sellele kasutajale, kelle õigustes veebserver töötab. NB! Lisaks sellele, et veebi failid ise peavad olema ligipääsetavad, peavad olema seda ka kõik kataloogid alates süsteemi juurikast kuni failini!

Peaveebi peab saama näha, kui brauseriga esitada päring http://www.zoo.tartu.ee/.

Süsteemi kasutajate veebid

Vaikimisi on ette nähtud, et kasutajad tekitavad oma kodukataloogi kataloogi public_html ning hoiavad seal oma veebile vastavaid faile. Faili õiguste suhtes kehtib sama nõue - kasutaja, kelle õigustes veebiserver töötab peab omama neile ligipääsu. Tavaliselt sobib veebi failidele ja kataloogidele omistada õigused 755

bash# chmod -R 755 public_html

Kasutaja veebi näidatakse vastuseks sarnasele brauseri päringule http://www.zoo.tartu.ee/~mart/.

Kui kasutajad kurdavad, et nad on oma veebi korralikult kõiki nõudeid järgides üles seadnud, kuid ometi ei ole see külastatav, siis tihtipeale on põhjus veebikataloogist üles poole jäävate kataloogide õigustes.

Nimelt, reeglina on süsteemi kasutaja kodukataloog kasutaja oma, kuid mitmetel Linuxitel on sellele määratud ebasobivad õigused. Näiteks Slackware Linuxil on vaikimisi kasutaja kodukataloogil õigused 755, mis on liiga palju, kuna grupile ja kõigile on lubatud kasutaja kodukataloogi siseneda ning seal lugeda. RedHati mõnel versioonil on aga õigused 750, mis on veebi jaoks liiga vähe, kuna kõigil, näiteks kasutajale kelle õigustes töötab veebiserver pole õigust kasutaja kodukataloogi siseneda. Kokkuvõttes tundub, et kõige õigem on anda kasutaja kodukataloogile õigused 711

bash# chmod 711 /home/mart

mis tähendab, et kasutajal endal on kõik õigused ning teistel on õigus vaid siseneda.

Süsteemi kasutajate kodukataloog /home on tavaliselt loabitid 755

bash# ls -ld /home
drwxr-xr-x  15 root     root         4096 Jan 20 16:25 /home

Veebiserveri turvalisus

Veebiserveri kasutamisel arvestage, et iseenesest on veebiserver programm, mis teeb teie arvuti failid kättesaadavaks HTTP protokolli kasutavaile klientidele so brauseritele.

Kuigi veebiserver tuleb käivitada juurkasutaja õigustes, toimetab ta edasi konfiguratsioonifailis näidatud kasutajana (User, Group direktiivid). Siiski, veebiserver teeb ka teatud muid toimingud juurkasutaa õigustes, näiteks kirjutab logi.

Näiteks üks võimalik stsenaarium pahalasest süsteemi kasutaja käitumiseks eeldusel, et ta saab veebiserveri konfiguratsioonifaili kirjutada on suunata logi mõne tundliku faili peale - /etc/passwd. Ilmselt te igal arvuti algkäivitamisel ei loe läbi kõiki konfiguratsioonifaile ning kuna logitakse juurkasutaja õigustes, siis pole mingit põhjust, miks veebiserver ei peaks hakkama kirjutama /etc/passwd faili.

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

bash# cd /usr/local/apache
bash# chown 0 bin conf logs
bash# chgrp 0  bin conf logs
bash# chmod 755 bin conf logs
bash# chown 0 /usr/local/apache/bin/httpd
bash# chgrp 0 /usr/local/apache/bin/httpd
bash# chmod 511 /usr/local/apache/bin/httpd

Kasulikud lisamaterjalid

Apache'i veebiserver Failiõigused Kasutajate administreerimine Apache'i enda dokumentatsioon