Linux palvelimet h3

h3

Tee viisi vapaavalintaista kohtaa. Säädä vaikeustaso oikeaksi: jos olet ihan alussa ja tämä on haastavaa, tee helpoimmat a b c d i. Jos osaat jo perusteet, tee useampia tai vaikeampia kohtia. Tarkoitus on, että tehtävät tehtyäsi osaat enemmän kuin osasit ennen.

a) Asenna Apache, laita käyttäjien kotisivut (http://example.com/~tero) toimimaan. Testaa esimerkkikotisivulla.

b) Surffaa oman palvelimesi weppisivuja. Etsi Apachen lokista esimerkki onnistuneesta (200 ok) sivulatauksesta ja epäonnistuneesta (esim 404 not found) sivulatauksesta. Analysoi rivit.Tee jokin seuraavista (yksi riittää, useampi vapaaehtoisena lisätehtävänä):

c) Tee virhe weppipalvelimella ajettavaan koodiin (esim PHP tai Python), etsi se lokista ja analysoi tuo lokirivi

d) Tee virhe johonkin Apachen asetustiedostoon, etsi ja analysoi tuo rivi. Etsimiseen sopivat esimerkiksi Apachen omat lokit, syslog sekä ‘apache2ctl configtest’.

i) Kuinka monta eri HTTP Status:ta (200, 404, 500…) saat aiheutettua lokeihin? Selitä, miten aiheutit tilanteet ja analysoi yksi rivi kustakin statuksesta.

a) Apachen asennus

Aloitin käynnistämällä xubuntun livetikultani. Avasin komentokehotteen ja kirjoitin ensimmäiseksi sinne “setxkbmap fi”, jotta näppäimistö menee suomeksi. Tämän jälkeen kirjoitin komentokehotteeseen “sudo apt-get update”, sillä sain viimeiset päivitykset paketeille haettua.

Nyt pystyin asentamaan apachen komennolla “sudo apt-get -y apache2”. Latauksessa ei mennyt kuin sekunteja. Kun lataus oli valmis, avasin nettiselaimen ja kirjoitin osoitteeksi “localhost”. Tästä pystyin päätelemään että Apache toimi, sillä kotisivulla näkyi Apachen oletussivu.

WhatsApp Image 2018-02-06 at 09.32.08

Nyt piti käyttäjän kotisivut saada näkymään. Ne pystyy aktivoimaan komennolla “sudo a2enmod userdir”. Apache piti uudelleenkäynnistää, jotta tiedot päivittyvät, uudelleenkäynnistys onnistui komennolla “sudo systemctl restart apache2.service”.

Tämän jälkeen menin kotihakemistooni ja loin sinne kansion public_html komennolla “mkdir public_html”. Menin kansioon “cd public_html” ja loin sinne tekstitiedoston “sudo nano index.html”. Sinne tein nopeasti pienen html sivun.

Tämän jälkeen annoin komennon “whoami” ja sieltä tuli vastaukseksi “xubuntu”. Jotta voisin kokeilla näkyykö käyttäjille omat kotisivut, kirjoitin osoitteeksi “localhost/~xubuntu” ja kotisivulla näkyi tekemäni html sivu.

WhatsApp Image 2018-02-06 at 19.25.01

 

b) Apachen loki

Apachen lokit löytyvät “/var/log/apache2” . Kirjoittamalla komennon “cd /var/log/apache2” pääsin sisään kansioon missä lokit olivat. Apache2 kansio piti sisällään access.log, error.log ja other_vhosts_access.log. Näistä haluamme seurata access.logia. Kirjoittamalla komennon “tail -f access.log ” pystyy seuraamaan lokitapahtumia.

WhatsApp Image 2018-02-06 at 10.21.14

Alimmat rivit access.logista

Onnistunut toimenpide:

Menin osoitteeseen “localhost/~xubuntu” ja sain tämän kyseisen viestin

127.0.0.1 – – [06/Feb/2018:08:17:43 +0000] “GET /~xubuntu/ HTTP/1.1” 200 475 “-” “Mozilla/5.0 (X11; Ubuntu; Linux x86_64; rv:54.0) Gecko/20100101 Firefox/54.0″

127.0.0.1 käyttäjän ip osoite, tässä tilanteessa localhost, päivämäärä ja kellonaika +aikavyöhyke (jostain syystä aikavyöhyke on väärin ja kello xubuntussa näyttää 2 tuntia myöhempää aikaa),GET en ole aivan varma, ~xubuntu on käyttäjä, HTTP/1.1 protokolla, 200 475 (200 kertoo onnistuneesta tapahtumasta) 475 en ole aivan varma mitä tarkoittaa, Mozilla/5.0 selaimen tietoja versio ainakin, X11; Ubuntu; Linux x86_64; rv:54.0 en ole aivan varma alusta mutta Ubuntu;linux x86_64 kertoo käyttöjärjestelmän tietoja, Gecko/20100101 Firefox/54.0” kertoo lisätietoa selaimesta, Gecko on selainmoottori ja Firefox/54.0 varmaan selaimen versio.

Epäonnistunut toimenpide:

Menin osoitteeseen “localhost/~enolekirjoilla” ja sain tämän viestin

127.0.0.1 – – [06/Feb/2018:08:18:07 +0000] “GET /~enolekirjoilla HTTP/1.1” 404 505 “-” “Mozilla/5.0 (X11; Ubuntu; Linux x86_64; rv:54.0) Gecko/20100101 Firefox/54.0”

Jossa on lähestulkoon samat tiedot kuin ylemmässä, mutta tässä on koodi “404 505”, 404 kyseistä asiaa ei löydy, 505 HTTP protokollan versiota ei tueta, tässä myös näkyy eri nimi millä yritin päästä kotisivuilleni (enolekirjoilla) ja sen takia tämä virheviesti tulikin näkyviin.

c) Virhe weppipalvelimella PHP

Ensimmäiseksi asensin PHP:n komennolla “sudo apt-get -y install libapache2-mod-php” ja sen jälkeen käynnistin Apachen uudestaan komennolla “sudo systemctl restart apache2.service”. Tämän jälkeen menin hakemistoon “cd /etc/apache2”. Sitten kirjoitin komennon “grep -ir php” mikä etsii rivit missä on sana php.

WhatsApp Image 2018-02-06 at 10.57.32

Tuossa näkyy että “Running PHP scripts in user directories is disabled by default”, joten tiedostoa tuli muokata että PHP olisi päällä. Eli komennolla “sudo nano mods-available/php7.0.conf” pääsin käsiksi asetustiedostoihin.

WhatsApp Image 2018-02-06 at 11.01.18

Kuten ohjeessa sanotaan, muuttamalla alemmat rivit kommenteiksi saat PHP:n käyttöön, joten laitoin risuaidat alimpien rivien eteen jolloin PHP:n pitäisi toimia, tallensin tiedoston ja menin takaisin kotihakemistoon. Vielä komennolla “apachectl configtest” pystyin testaamaan onko asetustiedosto ok. Sanoi että OK, jonka jälkeen vielä käynnistin Apachen uudestaan.

Tämän jälkeen muutin tekemäni html sivun nimeä hieman, sillä vaihdoin “index.html” -> “index.php” jotta PHP toimisi. Komennolla “mv index.html index.php” nimi muuttui helposti.

WhatsApp Image 2018-02-06 at 19.37.16

Kuten kuvassa näkyy PHP toimii sillä laskutoimitus on laskettuna sivulla. Nyt haluamme taas seurata lokeja, mutta nyt seuraamme error.logia. Komennolla “cd /var/log/apache2” pääsemme Apachen lokeihin ja sitten komennolla “tail -f error.log” voimme seurata error.logia reaaliajassa.

Sen jälkeen menin takaisin kotihakemistooni “cd ..” ja sieltä sitten “cd public_html” jossa sijaitsi tekemäni “index.php”. “sudo edit index.php” komennolla pääsen taas muokkaamaan tiedostoa. Koska haluttiin saada virheilmoitus niin lisäsin tuohon PHP:n “print” kohtaan kaksi p:tä.

WhatsApp Image 2018-02-06 at 19.38.29

Kuten kuvassa näkyy, kaikki muu tulee sivulle näkyviin paitsi PHP laskutoimitus.

Error.logissa tuli seuraava ilmoitus:

[Tue Feb 06 17:38:59.942521 2018] [:error] [pid 16620] [client 127.0.0.1:34392] PHP Fatal error: Uncaught Error: Call to undefined function ppprint() in /home/xubuntu/public_html/index.php:11\nStack trace:\n#0 {main}\n thrown in /home/xubuntu/public_html/index.php on line 11

Siinä näkyy päivämäärä kellonaika, virhe,  [pid 16620] en ole aivan varma, käyttäjä, ja virheilmoitus, missä tämä kyseinen tiedosto on ja millä rivillä virhe on (11).

d) Apache asetustiedosto virhe

Menin Apachen asetustiedostoihin komennolla “cd /etc/apache2”. Komennolla “ls” näkee mitä kansio piti sisällään. Päätin editoida “apache2.conf” tiedostoa “sudo edit apache2.conf”. Kävin lisäämässä jollekkin riville “tuhotaan kaikki” jonka jälkeen tallensin tiedoston. Tämän jälkeen annoin komennon “apache2ctl configtest” ja sain ilmoituksen:

AH00526: Syntax error on line 183 of /etc/apache2/apache2.conf:
Invalid command ‘Tuhotaan’, perhaps misspelled or defined by a module not included in the server configuration
Action ‘configtest’ failed.
The Apache error log may have more information.

AH00526 jokin virheilmoitus, kertoo millä rivillä ja missä tiedostossa virhe on.

i) HTTP-statukset

200 = OK eli suoritettu oikein, 404 = kyseistä juttua ei löydy, 505 = Ei tueta tätä HTTP protokolla versiota, 475 = en tiedä

Lähteitä:

http://terokarvinen.com/2017/aikataulu-%E2%80%93-linux-palvelimet-ict4tn021-7-ti-ja-6-to-alkukevat-2018-5-op

https://en.wikipedia.org/wiki/List_of_HTTP_status_codes

https://httpstatuses.com/

 

Advertisements

Leave a Reply

Fill in your details below or click an icon to log in:

WordPress.com Logo

You are commenting using your WordPress.com account. Log Out /  Change )

Google+ photo

You are commenting using your Google+ account. Log Out /  Change )

Twitter picture

You are commenting using your Twitter account. Log Out /  Change )

Facebook photo

You are commenting using your Facebook account. Log Out /  Change )

w

Connecting to %s