Apache2

Tehtävänanto on:

”a) Asenna Apache, laita käyttäjien kotisivut (http://example.com/~tero) toimimaan. Testaa esimerkkikotisivulla. Tämä a-kohta on vaihdettu.

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

Teen tehtävän käyttäen DigitalOceanin virtuaali palvelinta. Alla näkyy valitsemani käyttöjärjestelmä ja palvelimen resurssit.

1.PNG

Olen tehnyt ennen tehtävän aloittamista olen tehnyt palvelimelle käyttäjän jolle olen antanut sudo oikeudet tällöin minun ei tarvitse käyttää root tunnusta.

Aloitan antamalla komennon sudo apt update joka päivittää ohjelmisto luottelon tiedot. Sitten asennan apachen komennolla sudo apt install -y apache2. Testaan apachen toimivuuden menemällä selaimella palvelimen ip osoitteeseen.

2.PNG

Kun menen osoitteeseen huomaan että siellä näkyy apachen oletus sivu joten totean että apache toimii.

Seuraavaksi haluan että käyttäjä voisi tehdä nettisivut ilman sudo oikeuksia joten annan komennon sudo a2enmod userdir joka antaa käyttäjän julkaista sivut kotihakemistosta.

3.PNG

Kun ajan komennon palvelin ilmoittaa että minun pitää kaynnistää apache2 demoni uudelleen. Käynnistän Apachen uudelleen sudo oikeuksilla koska olen aikaisemmin laittanut tuon saman asetuksen päälle. Komento uudelleen käynnistykselle on sudo service apache2 restart.  Nyt testaan toimiiko luomani käyttäjän sivut. Osoite on http://IP-OSOITE/~KÄYTTÄJÄTUNNUS. Tässä tapauksessa käyttäjätunnus on oma nimemi Eemeli.

4.PNG

Kun menin sille sivulle tuli ilmoitus. Katson lokista olisiko siellä apua.

5.PNG

Tuo toiseksi viimeinen kohta on se jota haen, koska huomaan että siellä on ”/~eemeli” johon halusin mennä.

84.250.185.37 – – [13/Sep/2017:08:56:50 +0000] ”GET /~eemeli HTTP/1.1” 404 501 ”-” ”Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/61.0.3163.79 Safari/537.36”

Analysoin tuon kohdan ensin on ip osoite josta on otettu yhteyttä. Sitten tulee aika jolloin on otettu yhteyttä. Tuo seuraavana oleva GET tarkoittaa että yhteyden ottaja haluaisi jotain palvelimelta seuraavaksi tulee osoite jota se hauaisi ja HTTP/1.1 tarkoittaa tapaa jolla se haluaisi sen tiedon. Nuo 404 ja 501 ovat apache koodeja jotka tässä tarkoituksessa ovat molemmat virheitä. 404 tarkoittaa, että tuollaista sivua jota yhteyden ottaja hauaisi ei ole tällä palvelimella. 501 tarkoittaa että palvelin ei tunnista metodia.

Mutta tiedä miksi virhe tulee koska en ole tehnyt koti hakemistoon kansiota public_html ja sinne tiedosto index.html. Teen kotihakemistoon kansion nimeltä public_html ja teen sinne tiedoston index.html.

6.PNG

Nyt sivulla näkyy pelkästää ”Hello World!!!”, koska kirjoitin index.html tiedostoon niin. Katsotaan mitä tuonäyttä lokissa.

7.PNG

84.250.185.37 – – [13/Sep/2017:09:16:29 +0000] ”GET /~eemeli/ HTTP/1.1” 200 296 ”-” ”Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/61.0.3163.79 Safari/537.36”

Nyt lokissa näkyy seuraavanlainen kohta. se on melkolailla samanlainen kun oli virheitä erona on uudet koodit 200 ja 296. 200 on merkki onnistuneesta HTTP pyynnnöstä. 296:n en löytänyt vastausta etsi hakusanoilla apache2 code 296.

Seuraavaksi kokelen php:tä. Valitsin php-tehtävän koska olen käyttänyt pythonia ja flaskia aikaisemmin. Tässä on tehtävänanto:

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

Sovellan koodia joka löytyy php.net:n sivulta. Linkki sinne on TÄSSÄ.

Ensin pitää tietysti asentaa php:n tarvitsemat paketit. Tarvittavat paketit asennetaan seuraavalla komennolla sudo apt-get install -y php libapache2-mod-php. Apache modificaatioissa pitää muuttaa tiedostoa /ect/apache2/mods-available/php7.0.conf tiedostosta seuraavaa kohtaa:

<IfModule mod_userdir.c>
<Directory /home/*/public_html>
php_admin_flag engine Off
</Directory>
</IfModule>

seuraavanlaiseksi:

<IfModule mod_userdir.c>
<Directory /home/*/public_html>
#php_admin_flag engine Off
</Directory>
</IfModule>

Tämä saa aikaan että kotihakemistoissa pystyy ajamaan php-tiedostoja

Php-koodi kirjoitetaan public_hml kansioon. Kirjoitan index.html tiedostoon:

<form action=”action.php” method=”post”>
<p>Your weight: <input type=”text” name=”weight” /></p>
<p>Your height: <input type=”text” name=”height” /></p>
<p><input type=”submit” /></p>
</form>

Siitä huomaa, se käynnistää tiedoston nimeltä action.php. Siitä tulee seuraavanlainen:

Your weight index is:
<?php echo $_POST[’weight’] / $_POST[’height’] / $_POST[’height’] ;?>

Kun menee käyttäjän sivulle tulee näkyviin seuraavanlainen sivu:

8.PNG

Kun on antanut tiedot ja painaa lähetä tulee seuraavan lainen sivu:

9.PNG

 

 

Lähteet:

http://terokarvinen.com/2017/aikataulu-linux-palvelimet-ict4tn021-4-ti-ja-5-to-alkusyksy-2017-5-op

http://terokarvinen.com/2008/install-apache-web-server-on-ubuntu-4

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

http://php.net/manual/en/tutorial.forms.php

https://askubuntu.com/questions/705880/how-to-install-php-7

Mainokset

Yksi vastaus artikkeliiin “Apache2

Vastaa

Täytä tietosi alle tai klikkaa kuvaketta kirjautuaksesi sisään:

WordPress.com-logo

Olet kommentoimassa WordPress.com -tilin nimissä. Log Out /  Muuta )

Google+ photo

Olet kommentoimassa Google+ -tilin nimissä. Log Out /  Muuta )

Twitter-kuva

Olet kommentoimassa Twitter -tilin nimissä. Log Out /  Muuta )

Facebook-kuva

Olet kommentoimassa Facebook -tilin nimissä. Log Out /  Muuta )

Muodostetaan yhteyttä palveluun %s