Linux palvelimet h3

Alkuperäinen päivämäärä: 5.2.2018

H3

a) Apache asennettiin jo viime oppitunnilla. Sen toiminen voidaan tarkistaa kirjoittamalla selaimeen osoite localhost. Selaimeen ilmestyy valkoinen sivu, jossa on teksti Hello world! Sivu siis toimii. Seuraavaksi voimme tarkistaa käyttäjien sivujen toiminnan lisäämällä localhostin perään \~mvaltonen, jolloin koko osoite on siis localhost\~mvaltonen. Sivustolle tulee näkyviin tervehdys, sekä numero, joka on PHP testin laskema lasku.

h3a1

b) Surffataan palvelimen sivuja, ja luodaan onnistunut ja epäonnistunut merkintä sivunlatauksesta.

Onnistunut merkinnän saan aikaan, kun haen vaikka käyttäjän mvaltonen sivua, localhost/~mvaltonen.

Lokitiedosto löytyy /var/log/apache2/access.log, tiedostoa voimme tarkkailla komennolla tail -f access.log.

Lokin uusin merkintä onnistuneesta sivun hausta on seuraava:

127.0.0.1 – – [05/Feb/2018:02:19:26 +0200] “GET /~mvaltonen/ HTTP/1.1” 200 644 “-” “Mozilla/5.0 (X11; Ubuntu; Linux x86_64; rv:58.0) Gecko/20100101 Firefox/58.0”

Aloitetaan rivin kääntäminen. 127.0.0.1 tarkoittaa osoitetta, josta otetaan yhteyttä. Tässä tapauksessa kyse on paikallisesta tietokoneesta, eli localhostista.

Seuraavaksi kirjataan tapahtuman päivämäärä ja aika.

GET /~mvaltonen/ tarkoittaa, että webpalvelimelta haetaan sivua /~mvaltonen, eli tietyn käyttäjän sivua. HTTP/1.1” liittyy luultavasti protokollan versioon, tässä tapauksessa yleiseen versioon 1.1.

200 ja 644 arvelen liittyvän vastauskoodeihin. Tiedän, että 200 tarkoittaa sitä, että haku onnistui. 644 en osaa sanoa mitään, enkä nopeasti löytänyt netistä mitään tietoa, mikä paljastaisi, että onko se edes vastauskoodi.

Mozilla/5.0 (X11; Ubuntu; Linux x86_64; rv:58.0) liittyy koneen, joka ottaa yhteyttä, tietoihin. Haku siis tehtiin Mozilla Firefoxilla. 5.0 liittyy ehkä johonkin Firefoxin versiotietoihin, mutta en osaa sanoa tarkkaan miten. X11 liittyy ehkä tietokoneen käytössäolevaan desktoppiin, mutta en ole tästä lainkaan varma. Ubuntu sen sijaan kertoo käytetyn distribuution, Xubuntuhan on käsittääkseni Ubuntu, mutta eri desktopilla. Tämän perusteella uskon X11:n liittyvän desktoppiin jotenkin. Linux x86_64; rv:58.0 kertoo, että käytössä on 64-bittinen Linux. Rv:58.0 liittyy luultavasti selaimen versioon. Gecko/20100101 Firefox/58.0 uskon liittyvän jotenkin selaimen järjestelmiin ja versioihin, mutta en tunne selainta niin hyvin, että osaisin varmuudella sanoa.

Seuraavaksi luodaan vielä epäonnistunut merkintä. Yritän luoda merkintää hakemalla sivua, jota ei ole olemassa. Esimerkiksi localhost/blaa. Ilmestyi merkintä:

127.0.0.1 – – [05/Feb/2018:02:41:08 +0200] “GET /blaa HTTP/1.1” 404 494 “-” “Mozilla/5.0 (X11; Ubuntu; Linux x86_64; rv:58.0) Gecko/20100101 Firefox/58.0”

Merkintä on pitkälti samanlainen kuin aiempi. “GET /blaa on kuitenkin muuttunut, koska nyt haetaan sivua blaa, eikä mvaltonen -käyttäjäsivua. Myös vastauskoodit ovat muuttuneet, 404 ja 494.

404 luultavasti monelle tuttu ja tarkoittaa, että sivua ei löytynyt. 494 ei näytä viittaavan mihinkään vastauskoodiin, kuten aiemmassa kohdassa 644, joten en osaa edes arvata mihin numero liittyy. Muu pysyy samana, koska sivua hakeva laite on sama.

c) Seuraavaksi tarkoitus on luoda virhe webpalvelimen lokiin. Käyttäjän mvaltonen sisältää hieman PHP:ta, joten luodaan virhe sillä. Tällä hetkellä koodipätkä on seuraava: <?php print(5*25); ?>. Koodi laskee sivulle laskutoimituksen 5*25. Rikotaan koodipätkä muuttamalla kertomerkki * kirjaimeksi k.Sivun päivittämisen jälkeen onkin vastassa tyhjä sivu. Jotain on siis mennyt pieleen.

Lokitiedosto löytyy sijainnista /var/log/apache2/error.log. Lokitiedoston viimeinen viesti on seuraava:

[Mon Feb 05 00:38:31.996641 2018] [:error] [pid 1577] [client 127.0.0.1:33356] PHP Parse error: syntax error, unexpected ‘k25’ (T_STRING) in /home/mvaltonen/public_html/index.php on line 7

Aloitetaan rivin kääntäminen. Ensiksi kerrotaan tapahtuman ajankohta, eli siis viikonpäivä, kuukausi, päivä, sekä tarkka kellonaika. Kellonajasta mainittakoon, että on hyvä tarkistaa, että loki kirjoitetaan oikealla aikavyöhykkeellä. Tässä tapauksessa kellonaika on oikein.

Seuraavaksi luultavasti kirjataan lokimerkinnän syy, joka on [:error], eli merkintä johtuu jostakin virheestä.

[pid 1577] erittelee prosessin, joka on prosessi 1577. Tarkistan asian kuitenkin mielenkiinnosta sovelluksella htop, joka näyttää prosessit samaan tyyliin kuin top. Prosessi 1577 liityy komentoon /usr/bin/apache2 -k start, joten voin tämänkin perusteella olla varma, että virhe koskee webpalvelinta.

[client 127.0.0.1:33356] tarkoittaa kohdetta, jossa virhe on tapahtunut. Virhe on tapahtunut osoitteessa 127.0.0.1, eli paikallisessa tietokoneessa, eli localhostissa. Porttinumeroa en tosin ymmärrä, en osaa sanoa miten se liittyy. Ehkä 33356 on portti, jonka kautta käyttäjän \~mvaltonen sivu pyörii.

Seuraavana päästään itse virheeseen: PHP Parse error:, eli PHP-koodia ei pystytä lukemaan oikein, Syntax error kertoo meille, että koodin syntaksissa on vikaa. Virhe siis luultavasti johtuu siitä, että koodi on kirjoitettu väärin. Virhe koodin kääntämisessä on tapahtunut kohdassa k25, eli kun on luettu koodia <?php print(5k25); ?>, kääntäjä ei tiedä mitä numeron 5 jälkeen tapahtuu.

T_STRING merkitystä en osaa tarkentaa kovin tarkkaan, mutta voisin arvata sen liittyvän siihen, että virhe on tekstipätkässä, eli stringissä.

Lopuksi loki kertoo vielä, missä koodi, jota yritetään lukea sijaitsee, eli \home\valtonen\public_html\index.php, ja täsmentää vielä lopuksi että tekstitiedoston rivillä 7.

Ennen kohdan lopettamista korjaan tehdyn virheen, etten joskus ihmettele sivun toimimattomuutta kun en muista mitään.

e) Tehtävässä e lähden asentamaan PhpMyAdminia, jotta tietokantoja voidaan tarkastella graafisesti.

Lähden liikkeelle etsimällä netistä tietoa, PhpMyAdminin ennakkovaatimuksista. Ohjelma vaatii toimiakseen tarpeeksi uudet versiot MySQL:stä sekä PHP:stä. Asennetut versiot voidaan tarkistaa komennoilla php -v sekä mysql -V. Huom! Iso V MySQL:n kohdalla.

h3a2

PhpMyAdmin vaatii kustakin vähintään versiot 5, mutta kuten kuvasta näkyy, asennetut versiot kelpaavat helposti.

Aloitan asennuksen komennolla sudo apt-get install -y phpmyadmin. Asennus kuitenkin keskeytyi, ohjelma pyytää valitsemaan, mille webpalvelimelle PhpMyAdmin halutaan asentaa. Vaihtoehtoina ovat apache2 ja lighttpd. Valitaan apache2 painamalla välilyöntiä ja enter.

h3a3

Hetken kuluttua asennus kysyi, että haluanko konfiguroida PhpMyAdminin itse, vai haluanko että se hoituu itsestään. Teksti sanoo, että konfigurointi kannattaa tehdä itse vain, jos tietää mitä tekee, joten valitaan automaattinen konfigurointi valinnalla Yes. Tämän jälkeen kysytään uutta salasanaa PhpMyAdminille. Jätin ikkunan tyhjäksi, jotta asennus generoisi siihen itse sattumanvaraisen salasanan.

h3a4

Asennuksen jälkeen PhpMyAdmin löytyy osoitteesta localhost/phpmyadmin. Palveluun kirjaudutaan sisään aiemmin tehdyillä MySQL tunnuksilla, eli omalla käyttäjänimellä ja arvotulla salasanalla.

h3a5

Testinä lisään yhden rivin tietokantaan linux. Rivi lisätään painamalla yläpalkista Insert. Function kentät jätän tyhjäksi, mutta id kenttään tulee 4, sillä lisättävä rivi on tietokannan neljäs rivi. Lisään vielä nimen, ja rivi on lisätty onnistuneesti, kun painetaan vielä inserttiä.

f) Seuraavaksi tehdään sivulle pieni ohjelma, joka suorittaa jonkin toimenpiteen nappia painettaessa. Kirjoitin lyhyen testiohjelman, joka ottaa käyttäjän syöttämät numerot ja näyttää ne peräkkäin. Lisäsin koodin /home/mvaltonen/public_html/index.php tiedostoon, johon aiemmatkin testit, kuten PHP -lasku tehtiin. Halutessasi voit ladata koodin täältä: https://www.dropbox.com/s/lrkigba072gblq9/testaus.html?dl=1 (GPLv3)

Kun käyttäjä syöttää sivulle numerot ja painaa nappia, ilmestyvät numerot peräkkäin, ohjelma siis toimii.

h3a6

This entry was posted in Uncategorised. Bookmark the permalink.

Leave a Reply

Your email address will not be published. Required fields are marked *

This site uses Akismet to reduce spam. Learn how your comment data is processed.