Harjoitus 3

·        Tätä dokumenttia saa kopioida ja muokata GNU General Public License (versio 2 tai uudempi) mukaisesti. http://www.gnu.org/licenses/gpl.html

·        Pohjana Tero Karvinen 2012: Linux kurssi, http://terokarvinen.com

Apachen asennus

Harjoitus 3:n teko aloitettu su 3.2.1019 noin klo 20.13.
Tehtävän tekemisen aloitin päivittämällä ohjelma lähteet.

$ sudo apt update
Aachen asensin komennolla:
$  sudo apt-get install apache2

Testasin Apachen toiminan kirjoittamalla selaimen osoiteriville “localhost” ja Apachen aloitussivu tuli esille = Apache asennettu onnistuneesti.

Apachen testisivu

Tämän jälkeen tein public_html kansion käyttäjäni koti hakemistoon komennolla:
$ mkdir public_html

Jotta käyttäjät voivat tehdä omaan koti hakemistoon web sivustoja public_html kansioon, ajoin komennon
$ sudo a2enmod userdir
, jonka jälkeen pitää Apache käynnistää uudelleen komennolla:
$ sudo systemctl restart apache2

Apachen uudelleen käynnistyksen jälkeen siirryin aikaisemmin tekemääni public_html kansioon, johon tein itselleni html testisivuston nanolla. Tämän jälkeen testasin toimintaa kirjoittamalla selaimen osoiteriville “http://localhost/~nikke/” ja testisivu näkyi odotetusti.

Testisivu

Apachen lokiin onnistunut ja epäonnistunut merkintä

Apachen logia monitoroin “livenä”
$ sudo tail -f /var/log/apache2/access.log
komennolla. Päivittämällä “http://localhost/~nikke/” sivuston loki antaa seuraavanlaisen merkinnän;

::1 – – [03/Feb/2019:21:10:47 +0200] ”GET /~nikke/ HTTP/1.1” 200 478 ”-” ”Mozilla/5.0 (X11; Linux x86_64) AppleWebKit/537.36 (KHTML, like Gecko) Ubuntu Chromium/71.0.3578.98 Chrome/71.0.3578.98 Safari/537.36”

Lokista löytyy päivämäärä ja kellonaika, “GET” -pyyntö, jolla selain on pyytänyt  /~nikke hakemistosta index sivua, HTTP protokolla ja versio 1.1, seuraava numero 200 on merkki onnistuneesta sivun latauksesta, “478” tarkoittaa ilmeisesti vastauksen pituutta, koska se ei muutu lokissa, vaikka sivustoa lataa. Loput lokista on lähinnä selaimen ja alustan tietoja eli ns. user agentteja, löysin netistä sivuston, joka avaa user agentin tietoja ja alla olevassa kuvassa on minun agentin tiedot.

User Agent Info

Seuraavaksi aiheutin 404 Not Found errorin lokiin kirjoittamalla osoitteen, jolle ei löydy nettisivua (http://localhost/~nikke/testi). Tästä seurasi alla oleva virhe.

404

::1 – – [03/Feb/2019:21:36:04 +0200] ”GET /~nikke/testi HTTP/1.1” 404 502 ”-” ”Mozilla/5.0 (X11; Linux x86_64) AppleWebKit/537.36 (KHTML, like Gecko) Ubuntu Chromium/71.0.3578.98 Chrome/71.0.3578.98 Safari/537.36”

Tässä ei oikeastaan muutu muuta, kuin kellonaika ja tulee tämä http 404 error ja vastauksen pituus on eri.

Virhe web-palvelimella ajettavaan koodiin

Ensin muutin index.html sivun index.php sivuksi komennolla
$ mv index.html index.php

Asensin PHP:n komennolla:
$ sudo apt-get install php libapache2-mod-php
Tämän jälkeen tein index.php tiedostoon PHP koodia, mutta huomasin, että PHP ei toimi viellä. Lyhyen googlettamisen jälkeen löysin syyn tältä sivulta, eli en ollut muokannut “sudo gedit /etc/apache2/mods-available/php7.0.conf” tiedostosta PHP:tä käyttöön kotihakemistossa.

Alla on koodini, josta jätin tarkoituksella huutomerkin jälkeen lainausmerkin pois.

<!doctype html>
<html>
<head>
        <title>Niklaksen testisivu</title>
        <meta charset="utf-8" />
</head>
<body>
        <h1>"nikke"käyttäjän testisivu</h1>
        <?php echo "Hi, I'm a PHP script!; ?>
</body>
</html>

Tästä seurasi oheinen virhe lokiin;

[Sun Feb 03 22:28:15.559554 2019] [php7:emerg] [pid 18748] [client ::1:36260] PHP Parse error:  syntax error, unexpected end of file, expecting variable (T_VARIABLE) or ${ (T_DOLLAR_OPEN_CURLY_BRACES) or {$ (T_CURLY_OPEN) in /home/nikke/public_html/index.php on line 15

Ensin tulee päivä ja aika, sitten ilmeisesti PHP:n tiettyyn prosessiin viittaava errori, ja syntax virhe rivillä 15.

Virheen tekeminen Apachen asetustiedostoon

Tein simppelin virheen “/etc/apache2/mods-available/php7.0.conf” tiedostoon, josta poistin viimeiseltä riviltä kommentoinnin (otin # merkin pois rivin alusta). Ajoin terminaalissa
$ apache2ctl configtest
komennon, jonka löysin tehtävänannosta Tero Karvisen kotisivuilta.

apache2: Syntax error on line 147 of /etc/apache2/apache2.conf: Syntax error on line 25 of /etc/apache2/mods-enabled/php7.2.conf: </IfModule> without matching <IfModule> section Action ’configtest’ failed.

Komennon virheilmoitus kertoo, että tiedostossa, johon aiheutin virheen löytyy syntax virhe rivillä 25. Lisäksi kerrotaan että </IfModule>:lla ei ole alkua (<IfModule>) ja myös tämä configtest ei mennyt läpi tämän takia. Virheen korjauksen jälkeen ajoin saman komennon, josta vastaukseksi tuli “Syntax OK”.

Käyttäjän kansiossa sijaitsevan palvelimen etusivuston teko

Aloitin tämän kohdan tekemisen googlettelemalla erilaisia ohjeita, joista päädyin tähän.

Muokkasin ”/etc/apache2/sites-available/000-default.conf” tiedostoa nettisivun ohjeen mukaan, eli aluksi kommentoin kaiken, mitä ei jo ollut kommentoitu ja tämän jälkeen laitoin tiedostoon seuraavan pätkän:

<VirtualHost *:80>
ServerName localhost
ServerAlias localhost *localhost
DocumentRoot /home/nikke/public_html/
</VirtualHost>

Tämän jälkeen testasin kirjoittamalla selaimen osoiteriville “localhost” ja tuossa public_html kansiossa oleva index.php tiedosto tuli esille. Kokeilin myös syöttämällä selaimelle osoitteen “http://127.0.0.1/” ja vastaukseksi tuli juuri tämä /home/nikke/public_html kansiossa oleva index.php tiedosto.

Pääsivulla toimii /home/nikke/public_html/index.php tiedosto.

Lopetin harjoitus 3:n teon noin klo 23.50.

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