Apache web serveri labor

Laboris õpime häälestama http serverit erinevates režiimides.

Uuri täpsemalt:
Apache HTTP Server Version 2.4 Documentation
HTTPD - Apache2 Web Server
Howto Create Name Based and IP Based Virtual hosts in Apache
Kui tekivad probleemid uuri /var/log/apache2 katalogi sisu

Tähistused

Install

Installime apache kasutaja "root" õigustes
root# apt-get install apache2

Kui soovime lisada http serverile php funktsionaalsust siis installime juurde php
root# apt-get install php5

Veebi lehe kontrollimiseks käsureast saab installida text browseri käsuga:
root# apt-get install links lynx

Linux serveri vaikimisi HTML veebileht

kasutaja "root" õigustes
Vaikimisi leheküljed paigutatakse katalogi /var/www
Testiks tuleks luua fail index.html
root# cd /var/www
root# touch index.html
root# nano index.html
Ja lisame sinna mingisuguse rea teksti selle kasutaja ja masina eristamiseks:
Mina olen peeter masinal Teder

Salvestame sisu vajutades F2, Y ja Enter-it

Pöördudes localhost-i poole web browseriga saame kontrollida tulemust
Käivitame browseri ja trükime sinna
http://localhost

Linux serveri vaikimisi PHP veebileht

kasutaja "root" õigustes
kui eksisteerib index.html ta tuleks nimetada ümber

root# cd /var/www
root# mv index.html index2.html


PHP testiks tuleb luua fail index.php
root# touch index.php
root# nano index.php
Ja lisame sinna mingisuguse rea teksti selle kasutaja ja masina eristamiseks:
<?php echo "Mina olen kasutaja masinal Server"; ?>

Salvestame sisu vajutades F2, Y ja Enter-it

Kontrollime tulemust
http://localhost

Kasutaja isiklik veebileht

Anname võimaluse tavakasutajatele näitada oma veebi.
Selleks tuleb teha olles "root" õigustes järgmist:
root# cd /etc/apache2/mods-enabled
Tekitame lingi võimalikest moodulitest lubatud moodulite katalogi:
root# sudo ln -s ../mods-available/userdir.conf userdir.conf
root# sudo ln -s ../mods-available/userdir.load userdir.load

Sama asja parem versioon 5 aastastele lastele:
root# sudo ln -s /etc/apache2/mods-available/userdir.conf /etc/apache2/mods-enabled/userdir.conf
root# sudo ln -s /etc/apache2/mods-available/userdir.load /etc/apache2/mods-enabled/userdir.load

Restardime http serveri:
root$ service apache2 restart
NB! Kui server ei restardi või tekib vea teade siis uuri apache serveri logisid error.log ja access.log katalogis /var/log/apache2

Olles "root" kasutaja õigustes loome kasutaja "peeter" (juhul kui seda kasutajat ei ole)
root# useradd -m -s /bin/bash peeter
Tuleks kontrollida et /home/kasutaja katalogi õigused oleks 755
root# chmod 755 /home/peeter

Logime sisse kasutajana "peeter"
root# su peeter
Lähme loodud kasutaja kodu kausta
peeter# cd /home/peeter
Loome spetsiaalse veebi kausta
peeter$ mkdir public_html
Määrame sellele kaustale juurdepääsu õigused
peeter$ chmod 755 public_html

kasutaja "peeter" õigustes
Loome sellesse katalogi test faili:
peeter$ cd $HOME/public_html
peeter$ touch index.html
peeter$ nano index.html
Ja lisame sinna mingisuguse rea teksti selle kasutaja ja masina eristamiseks:
Mina olen peeter masinal Teder

Salvestame sisu vajutades F2, Y ja Enter-it

Pöördudes localhost-i poole web browseriga saame kontrollida tulemust
Käivitame browseri ja trükime sinna
http://localhost/~peeter

Kui linuxel on määratud ka välisinterfeisi aadress ja firewalli reegel lubab pöördumist 80 porti saame pöörduda ka naaber arvutist selle lehe poole.
Linuxi IP aadressi saad kätte terminalist järgmise käsuga:
root# /sbin/ifconfig | grep inet
Näiteks:
http://172.21.7.202/~peeter

Kasutaja saab käivitada käsureast:
peeter$ links http://localhost/~peeter

Name Based Virtual hosting

Iga kasutaja saab paigutada oma kodulehe serverisse ja näidata seda lehte veebis unikaalse hosti nime alt. Ühes serveris võib asuda sõltuvalt koormusest kõmneid või sadu veebilehekülgesid.

Vaata täpsemalt Apache virtual hosts leheküljelt

Näiteks loome uue kasutaja "peeter" kodukatalogiga /home/peeter kes soovib avaldada oma kodulehte aadressil www.peeter.tpt
Kasutaja "peeter" õigustes tema kodukatalogis loome katalogi "log" ja "www" kuhu paigutame index.html faili sisuga
Mina olen virtual host peeter masinal Teder
Näiteks:
Lähme kasutaja kodukatalogi
peeter$ cd $HOME
Kontrollime kus me asume
peeter$ pwd
Loome kaks katalogi
peeter$ mkdir www log
Vaatame üle kasutaja kodukatalogi sisu
peeter$ ls

Lähme www alamkatalogi
peeter$ cd www

Loome html faili
peeter$ touch index.html
Redigeerime paigutades ülal toodud sisu Mina olen virtual host peeter masinal Teder
peeter$ nano index.html

Nimelahendus

Loome võimaluse pöörduda selle faili poole domeeni ja hosti nime kaudu, nagu peeter.tpt või www.peeter.tpt
kasutaja "root" õigustes
Kontrollime süsteemi nimelahenduse reegleid linuxis:
# cat /etc/host.conf
oder hosts,bind
multi on

Kui näed jada hosts,bind see tähendab et nimelahendusel alguses kontrollitakse hosts failis nimelahendust ja see järel pöördutakse DNS nimelahenduse poole.

Enne oma kodulehe kasutamist domeeni nimega tuleb lehekülg testida läbi lokaalselt oma serveris.
Valime domeeni nime peeter.tpt ja hosti nimeks www.peeter.tpt ja mõlemad lahendame 127.0.0.1 aadressiks.
Selleks lisame uue kirje /etc/hosts faili.
NB! ärge kustutage localhost kirjet selles failis!!!

127.0.0.1    www.peeter.tpt peeter.tpt

root# nano /etc/hosts

Kontrollime nimelahendust ping käsuga
root# ping www.peeter.tpt
root# ping peeter.tpt

Apache configureerimine

Selleks et kasutaja saaks pöörduda oma lehekülje poole eelnevalt mainitud konfiguratsiooniga interneti nimega kasutades nimelahendust tuleks konfigureerida apache ümber. Alljärgnevat NUHUTATUD TEXT tuleb teha kui õpetaja nõuab.

Alljärgnevaid operatsioone saab sooritada "root" kasutaja või sudo kasutaja vastavate õigustega.
lisame-muudame faili /etc/apache2/apache2.conf rea NameVirtualHost ip.address:port

Näiteks:
NameVirtualHost 172.21.7.86:80

Jätkame.
Loome faili /etc/apache2/sites-available/peeter.tpt kus me kirjeldame uue virtual hosti serveri nime, aliase, adminni emaili, juurkatalogi ja logifailide asukoha.
*.80 ütleb et see virtual host võtab päringuid vastu kõikidele serveri IP aadressitele pordile 80.
root# touch /etc/apache2/sites-available/peeter.tpt
root# nano /etc/apache2/sites-available/peeter.tpt
Lisame sinna järgmise konfiguratsiooni
<VirtualHost *:80>
ServerName  peeter.tpt
ServerAlias www.peeter.tpt
ServerAdmin peeter@peeter.tpt
DocumentRoot /home/peeter/www
ErrorLog /home/peeter/log/error.log
TransferLog /home/peeter/log/access.log
</VirtualHost>

Salvestame vajutades F2, Y ja Enter-it

Loome lingi /etc/apache2/sites-enabled katalogi
$ sudo ln -s /etc/apache2/sites-available/peeter.tpt /etc/apache2/sites-enabled/peeter.tpt
Restardime apache serveri
$ service apache2 restart
Kontrollime toimet käivitades käsureast samas masinas:
# links http://www.peeter.tpt
ja
# links http://peeter.tpt

Logifailid

NB! Kui server ei restardi või tekib vea teade siis uuri apache serveri logisid error.log ja access.log katalogis /var/log/apache2 ja ka virtual serveri log katalogis.
Logi faili viimase 20 rea vaatamine
$ tail -20 /var/log/apache2/access.log
$ tail -20 /var/log/apache2/error.log
Jooksva logi vaatamine
$ tail -f /var/log/apache2/access.log
$ tail -f /var/log/apache2/error.log

Ülesanne

NB! Enne alustamist kontrolli/tee korda oma interneti ühendus/interfeis
Probleemide tekkimisel uuri systeemi ja vastava deemoni logisid

Paigutada kasutaja kodulehekülg virtual hostingusse nägu eelnevas näites.