Linux Palvelimet Harjoitus 3

Linux Palvelimet kurssin harjoitukset Tero Karvisen opastamana.


Harjoitus suoritettu Xubuntu 16.0.4.3 LTS (amd64) käyttöjärjestelmällä  laitteella Lenovo Ideapad 700.


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

Käytän Teron Apache Web Serverin asennus ohjetta apuna.

1. Asennan Apachen ajamallalla komennon

$ sudo apt-get -y install apache2

apache2asennus


2. Testaa webbipalvelinta

Avaa Selain, esim Firefox ja  suuntaa sivulle http://localhost

homepagelocalhost.png

Toimii, tosin Apachen oma esimerkkisivu on viime lähiopetustunnilla tullut jo sörkittyä pois. Kokeilen myös IP-osoitteellani. Ensin tarkastan komentokehotteen avulla että mikä on osoitteeeni.

$ ip addr

Tämä antaa tulokseksi 192.168.0.16. Kokeillaan seilaimessa.

iptoimiimmyos.png

Todetaan että toimii localhostilla sekä IP-osoitteella.


3. Otetaan seuraavaksi käyttöön userdir moduuli. Ottaessani sen käyttöön joudun myös käynnistämään palvelimen uudestaan jotta muutokset tulevat voimaan.

$ sudo a2enmod userdir
$ sudo systemctl restart apache2.service

Tämän jälkeen voimme luoda jokaiselle käyttäjälle omat käyttäjät kotihakemiston alle public_html nimiseen kansioon. Tämä kansio luodaan seuraavassa kohdassa.


4. Luodaan kansio nimeltään public_html kotihakemiston alle. Ensin tarkastetaan että varmasti ollaan kotihakemistossa ja sitten luodaan uusi kansio. Tämän tehtyäsi voit vielä tarkistaa että kansio on ilmestynyt omalle paikalle.

$ cd
$ pwd
/home/ksyrjanen
$ mkdir public_html
$ ls
Documents | Music     | Public   | Templates
Desktop   | Downloads | Pictures | public_html | Videos

Tässä vaiheessa kaikki OK.

Tarkastetaan mikä minun nimeni ja kokeillaan surffata kyseiselle sivulle joka omaa nimeni päätteenä.

$ whoami
ksyrjanen

Tämä selvä. Otetaan selaimella yhteys sivulle http://localhost/~ksyrjanen/.

publicksyrjanen.png

Toimii.  Luon ja lisään testisivut public_html kansioon nanoa käyttäen.  Tarkistan vielä että html tekstini on validi käyttäen w3:sen validaattoria.

validi.png

Hyvältä näyttää! Testataan vielä kerran.

sivutoimii.png

Check!


b) Surffaa oman palvelimesi weppisivuja. Etsi Apachen lokista esimerkki onnistuneesta (200 ok) sivulatauksesta ja epäonnistuneesta (esim 404 not found) sivulatauksesta. Analysoi rivit.

Tarkastan Apachen loki tapahtumia komennolla,

sudo tail -2 /var/log/apache2access.log

Terminaalissa näkyy kaksi viimeisintä loki merkintää tail -2 johdosta.

apacheaccesslog.png

  1. Ensimmäinen lokimerkintä,
127.0.0.1 - - [05/Feb/2018:11:28:35 +0200] "GET /~ksyrjanen/ HTTP/1.1" 200 541 "-" "Mozilla/5.0 (X11; Ubuntu; Linux x86_64; rv:58.0) Gecko/20100101 Firefox/58.0"

pitää sisällään onnistuneen (200) tapahtuman Apache-demonilla.

127.0.0.1 on pyynnön lähettäjä eli localhost.

[05/Feb/2018:11:28:35 +0200] Päivämäärä sekä aika (UTC +2 Helsinki).

“GET /~ksyrjanen/ HTTP/1.1” HTTP pyyntö  käyttäjän ksyrjanen kotisivulle.

200 Onnistunut sivulataus.

Mozilla/5.0 Selain, (X11; Ubuntu; Linux x86_64; rv:58.0) Käyttöjärjestelmä sekä prosessorin arkitehtuuri, Gecko/20100101 Selaimen “moottori”, Firefox/58.0 Selaimen versio.


2. Toinen lokimerkintä,

127.0.0.1 - - [05/Feb/2018:11:28:42 +0200] "GET /~ksyrjane/ HTTP/1.1" 404 500 "-" "Mozilla/5.0 (X11; Ubuntu; Linux x86_64; rv:58.0) Gecko/20100101 Firefox/58.0"

pitää sisällään epäonnistuneen (404 Not Found) tapahtuman Apache-demonilla.

127.0.0.1 on pyynnön lähettäjä eli localhost.

[05/Feb/2018:11:28:42 +0200] Päivämäärä sekä aika (UTC +2 Helsinki).

“GET /~ksyrjane/ HTTP/1.1” HTTP pyyntö käyttäjän ksyrjane kotisivulle, jota ei ole olemassa.

404 Epäonnistunut sivulataus.

Mozilla/5.0 Selain, (X11; Ubuntu; Linux x86_64; rv:58.0) Käyttöjärjestelmä sekä prosessorin arkitehtuuri, Gecko/20100101 Selaimen “moottori”, Firefox/58.0 Selaimen versio.


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

Asennan PHP:n komennolla,

sudo apt-get install php7.0 libapache2-mod-php7.0

Tämä asentaa PHP7.0 version.

Teen index.php tiedoston public_html kansioon, mutta lisään sinne virheen jonka pitäisi näkyä lokitiedostossa error.log,

<?php phpiinfo(); ?>

Ei toiminut. PHP:n asetustiedostot ovat pielessä.

Otan PHP:n käyttöön muokkaamalla asetustiedostoa.

sudoedit /etc/apache2/mods-available/php7.0.conf

Siellä kommentoin ulos 5 viimeistä riviä.

phpconffit

Ja testataan uudestaan avaamalla selaimessa, localhost/~ksyrjanen ja vastassa on tyhjä sivu. Otan lokitiedoston auki,

tail -1 /var/log/apache2/error.log

komennolla ja vastaan tulee virheilmoitus ajettavasta php-tiedostostani.

[Mon Feb 05 13:22:03.700611 2018] [:error] [pid 11713] [client 127.0.0.1:38368] PHP Fatal error: Uncaught Error: Call to undefined function phpiinfo() in /home/ksyrjanen/public_html/index.php:1\nStack trace:\n#0 {main}\n thrown in /home/ksyrjanen/public_html/index.php on line 1

[Mon Feb 05 13:22:03.700611 2018] Päivämäärä ja aika.

[:error] Virheilmoitus, [pid 11713]  prosessin ID, [client 127.0.0.1:38368] Client IP eli localhost.

PHP Fatal error: Uncaught Error: Call to undefined function phpiinfo() in /home/ksyrjanen/public_html/index.php:1\nStack trace:\n#0 {main}\n , tarkempi virheilmoitus funktiosta joka ei toiminut.

thrown in /home/ksyrjanen/public_html/index.php on line 1 , tiedosto sekä tarkennus rivistä jolla virhe tapahtui.


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

Avasin Apachen asetustiedoston /etc/apache2/apache2.conf ja kommentoin ulos useita rivejä jotta saisin virheilmoituksen luotua error.logiin.

#User ${APACHE_RUN_USER}
#Group ${APACHE_RUN_GROUP}
#IncludeOptional mods-enabled/*.load
#IncludeOptional mods-enabled/*.conf
#HostnameLookups Off

Kommentoin ulos nämä viisi riviä ja tallensin apache2.conf tiedoston ja käynnistän Apachen uudestaan komennolla,

sudo systemctl restart appache2.service

Error.logiin en saa luotua virheilmoitusta mutta apache2ctl configtest ajettua tulee vastaan tämmönen,

ksyrjanen@peili:~$ sudo apache2ctl configtest
AH00534: apache2: Configuration error: No MPM loaded.
Action 'configtest' failed.
The Apache error log may have more information.-code'.

Error.logista en saa mitään irti ja mitä tuosta virheilmoituksesta saan irti niin asetustiedosto testi epäonnistui.


f) Tee palvelimella ajettava weppiohjelma, joka tekee käyttäjälle jonkin yksinkertaisen laskun (esim. painoindeksi BMI)

Tein simppelin laskurin nanolla joka laskee kuinka monta päivää 1 Periodin loppuun on.

laskuri

Joka näyttää tältä,

laskuritulostus


 

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 )

Connecting to %s

Powered by WordPress.com.

Up ↑

%d bloggers like this: