Tehtävät:

1. Tee Apachelle nimipohjainen virtuaalipalvelin (name based virtual host). Voit esimerkiksi laittaa samaan IP-osoitteeseen kaksi nimeä.

2. Tee erilaisia virheitä Apachen lokiin ja analysoi niihin liittyvät rivit.

———-

Tämän tehtävän tekoon koneena toimi:

HP Elitebook 2560p (kannettava tietokone)
Prosessori: Intel(R) Core(TM) i5-2450M CPU @ 2.50GHz
Muistit: 8099 MiB
Kovalevy: 500gt Hitachi (SCSI)

Käyttöjärjestelmänä asennettu Xubuntu Ubuntu 12.04 (precise) (kernel: 3.2.0-35-generic)

———-

1. Tee Apachelle nimipohjainen virtuaalipalvelin (name based virtual host). Voit esimerkiksi laittaa samaan IP-osoitteeseen kaksi nimeä.

1.1 Apachen asennus

Koska tehtävä vaatii Apachen ja sitä todennäköisesti sitä kaikilla ei ole (oletuksena) niin laitan vielä kertauden vuoksi ohjeet (komennot järjestyksessä) miten Apache asennetaan nopeasti ja helposti.

$ sudo apt-get update    [lataa uusimmat versiot paketeista ja päivittää]

$ sudo apt-get install apache2   [asentaa apachen uusimman version]

$ sudo a2enmod userdir   [enabloi käyttäjähakemiston public_html]

$ sudo service apache2 restart    [Apachen uudelleenkäynnistys kun muutokset tehty]

Nyt Apachen näyttää käyttäjien public_html kansion sisällön, kun se on luotu kotihakemistoon. Tätä voidaan testata kirjautumalla jonkun käyttäjän tunnuksilla ja luomalla kansio public_html  komennolla:

$ mkdir public_html 

Public_html kansiota voidaan testata lisäämällä index.html tiedoston sinne sisältöineen komennolla:

$ nano public_html/index.html

index.html tiedoston tallennuksen jälkeen Apachen toimivuutta voidaan kokeilla selaimella:  http://localhost/~käyttäjä/ tai ulkoinen ip/~käyttäjä jolloin index.html sisältö näkyi selaimessa.

miika

———

1.2 Kansion luonti omaan kotihakemistoon (Apachen virtuaalipalvelinta varten)

$ mkdir /public_html/miikakulmala.com

———

1.3 Seuraavaksi kun kansio oli luotu siirryin muokkaamaan /etc/hosts tiedostoa komennolla:

$ sudo nano /etc/hosts

Komennon jälkeen nano näytti /etc/hosts tiedoston sisällön, jossa ei ollut aluksi määrittelyitä muutakun localhostille.

etchosts

Lisäsin /etc/hosts tiedostoon 2 riviä:

127.0.1.1 http://www.miikakulmala.com [osoite viittaa paikalliseen ip-osoitteeseen]

127.0.1.1 miikakulmala.com  [osoite viittaa paikalliseen ip-osoitteeseen]

1.4 Seuraavaksi ryhdyin muokkaamaan Apache:n asetustiedostoja, jossa Apachelle määritellään virtuaaliset osoitteet. (Apachen asetuskansio sites-available)

$ cd /etc/apache2/sites-available/

Jossa loin uuden kopion default tiedostosta.

$ sudo cp default miikakulmala.com

Ja muokkasin nanolla miikakulmala.com sisältöä:

$ sudo nano miikakulmala.com

Jonka jälkeen lisäsin nämä rivit tiedostoon miikakulmala.com

jepjep

Hieman pintaa syvemmältä mitä nämä rivit sisältävät:

<Virtualhost *:80> = Sisältää virtuaalipalvelimen määrittelyt TCP portille 80 ja * kertoo, että tämä asetus koskee kaikkia koneen ip-osoitteita.

ServerName http://www.miikakulmala.com = Virtuaalipalvelimen/hostin nimi (jolle osoitettuun HTTP liikenteeseen tämä asetettu virtuaalipalvelin vastailee).

ServerAlias miikakulmala.com = Vaihtoehtoinen nimi johon virtuaalipalvelin vastailee myös.

DocumentRoot = viittaa tiedostojärjestelmän polkuun, missä virtuaalipalvelimen tiedostot sijaitsee.

1.5 Tämän jälkeen lisäsin /home/kulmmii/public_html/miikakulmala.com kansioon tiedoston index.html , jonne Tero Karvisen lyhyt html5 koodinpätkä, jonka jälkeen sivu näyttäytyisi kunnolla ja validisti heti alkuunsa.

1.6 Ennen varsinaisen osoitteen ja sivun kokeilua täytyi uusi Apachen virtuaalipalvelin vielä ottaa käyttöön komennolla:

$ sudo a2ensite miikakulmala.com

jonka jälkeen Apachen uudelleenkäynnistys täytyi tehdä:

$ sudo service apache2 reload

1.7 Kun Apachen asetukset oli asetettu, virtuaalipalvelin otettu käyttöön ja Apache käynnistettu uudelleen oli aika kokeilla mitä linuxin firefox sanoo osoitteelle http://www.miikakulmala.com

ja tässä tulos:

miikakulmalacom

Osoite: http://miikakulmala.com toimi myös ja ohjasi samalle sivulle. Eli homma näyttäisi toimivan.

———-

Testimielessä kokeilin tehdä myös toiselle uudelle käyttäjälle oman Apachen virtuaalihostin miikameikalainen.com samalla tavalla kun aikaisemminkin ja tuntu toimivan.
miikameikalainenweb

Muutin vielä testimielessä ip-osoitteet /etc/hosts tiedostoon 127.0.1.1 -> 192.168.1.75, jotta voin kokeilla myös muilla lähiverkon koneilla.

Copypastea nykyisestä /etc/hosts tiedostosta:

miika@wizard:~$ cat /etc/hosts
127.0.0.1    localhost
127.0.1.1    wizard
192.168.1.75    www.miikakulmala.com
192.168.1.75    miikakulmala.com
192.168.1.75    miikameikalainen.com
192.168.1.75    www.miikameikalainen.com

ja Apachen sites-available kansiossa oleva miikameikalainen.com (käytännössä sama kuin miikakulmala.com sisältö paitsi osoitteet eri ja DocumentRoot ohjaa eri käyttäjän public_html/ )
miika@wizard:~$ cat /etc/apache2/sites-available/miikameikalainen.com
<VirtualHost *:80>
ServerName http://www.miikameikalainen.com
ServerAlias miikameikalainen.com
DocumentRoot /home/miika/public_html/miikameikalainen.com
</VirtualHost>

Toisella lähiverkon koneella (missä on Windows 8) kokeiltuani huomasin, että Apachen palvelin toimii ainoastaan 192.168.1.75, jolloin selaimeen tulee “It works!” teksti. Kokeilin myös http://miikakulmala.com ja http://miikameikalainen.com, mutta syystä tai toisesta en saanut niitä toimimaan. Ehkä Soneran tarjoaman Thomson TG789vn modeemireitittimen asetuksista täytyisi vaihtaa jotakin DNS:n hallinnasta, jotta ne (Apachen virtuaaliset hostit) saisi toimintaan myös muille koneille.

———–

2. Tee erilaisia virheitä Apachen lokiin ja analysoi niihin liittyvät rivit.

2.1 Virhe 404 – Not found

Jossa kokeilin mennä http://miikameikalainen.com/apuva osoitteeseen.

notfound

Apachen /var/log/apache2/error.log tiedosto sanoo näin:

[Mon Feb 04 20:49:45 2013] [error] [client 192.168.1.75] File does not exist: /home/miika/public_html/miikameikalainen.com/apuva

Lähteet:

Karvinen, Tero 2012a. Short HTML5 page. http://terokarvinen.com/2012/short-html5-page

http://terokarvinen.com/2012/aikataulu-linux-palvelimena-ict4tn003-7-ict4tn003-kevaalla-2013

http://httpd.apache.org/docs/2.4/vhosts/examples.html