7. Labraharjoitus

Tehtävä osana Tero Karvisen kevään 2020 Linux-palvelimet-kurssia. Tavoitteena on tehdä vanha arvioitava labraharjoitus edeltäneiltä kursseilta.

Etsin labratehtävän keväältä 2018. Tehtävän kulku tapahtuu portaittain. Samalla seuraan palvelimen kuormitusta, josta teen yhteenvedon raportin lopussa.

Suoritusympäristönä oma sylikone Lenovo Ideapad 320s käynnistettynä Live-tikulta, josta ajetaan Linux-pohjainen käyttöympäristö Ubuntu 18.04.3.

Asenna LAMP (Linux, Apache, MySQL, PHP) ja testaa sen toiminta.

Aloitin asennukset Apache 2:sta: $ sudo apt-get update ja sudo apt-get install apache2. Avasin palomuurin Apachelle: $ sudo ufw allow apache. Avasin selaimesta localhost-sivun, jolla näkyi Apache2-oletussivu. Korvasin oletussivun: $ echo ”Markuksen testisivu”|sudo tee /var/www/html/index.html.

Seuraavaksi MySQL/MariaDB asennus ja testaus. Ensin suojasin tulevan tietokannan palomuurilla: $ sudo ufw allow 22/tcp. Hain jälleen tottumuksesta päivitykset, jonka jälkeen asensin MariaDB:n: $ sudo apt-get -y install mariadb-client mariadb-server. Lopuksi ajoin komennon $ sudo mysql_secure_installation, johon tein tarvittavat asetukset kuten root-salasanan sekä tietokanta-asetukset. Nyt tietokanta on valmis luotavaksi.

MariaDB [(none)]> create database asiakkaat;

MariaDB [(none)]> show databases;

Annoin asiakkaat-käyttäjälle käyttöoikeudet tietokantaan: MariaDB [(none)]> grant all on asiakkaat.* to asiakkaat@localhost identified by '*omasalasana*!';. Tämän jälkeen exit.

Kirjauduin tietokantaan asiakkaat-käyttäjänä: mariadb -u asiakkaat -p. Pääsin sisään antamalla root-salasanan. Loin taulun Asiakkaat:

MariaDB [(none)]> USE asiakkaat;
MariaDB [asiakkaat]> CREATE TABLE Asiakkaat (id INT AUTO_INCREMENT PRIMARY KEY, name VARCHAR(1024), price FLOAT);
MariaDB [(asiakkaat)]> show tables;

Lisäsin Asiakkaat-tauluun kolme nimeä komentomuodolla MariaDB [asiakkaat]> insert into asiakkaat(name) values ("*Yrityksen nimi*"); :

Exit

Seuraavaksi PHP:n asennus ja testaus. Aloitin asennuksilla: $sudo apt-get install libapache2-mod-php, $sudo apt-get install php-mysql.

Laitoin käyttöoikeudet toimimaan:

$ sudo a2enmod userdir
$ sudoedit /etc/apache2/mods-available/php7.0.conf

Loin kotihakemistoon public_html-kansion, jonne lisäsin index.php-tiedoston, johon lisäsin Tero Karvisen testikoodin:

echo '<?php print(2+2+"\n\n"); ?>'> index.php

Testasin ohjelmaa selaimella osoitteessa localhost/~markus/. Sivu valitettavasti näytti tyhjää. Ohjelma näkyi lähdekoodissa:

Siirryn tehtävässä eteenpäin ja testaan toistuuko ongelma.

Testasin toimisiko onnistuisiko php-ohjelma lukemaan tekemääni asiakkaat-tietokantaa. Syötin index.php-tiedostoon Tero Karvisen koodin, johon lisäsin oman tietokantani tiedot. Koitin selaimella uudestaan:

Hmm, sama virhe yhä. Jostain syystä en saa ohjelmaa ajettua PHP:lla. Koitan korjata tilanteen.

Tehtävänantoa seuraten etsin seuraavaksi lokeista todisteita palvelimen murtoyrityksistä:

Ilmeisiä murtoyrityksiä ei näkynyt lokeissa. Tämä tosin ei ollutkaan koetilanne.

"Tee staattinen HTML5 weppisivu, jonka otsikkona (molemmat title ja h1) on "Sorkka ja Rauta Oy".
Laita sivu näkyviin osoitteeseen http://rauta.example.com/"

Loin käyttäjän kotihakemistoon kansion ‘examplesite’, jonne loin uuden index.html-tiedoston. Täydensin koodin Tero Karvisen HTML5-koodin pohjalta:

Seuraavaksi loin conf-tiedoston apache2/sites-available -kansioon:

Käynnistys: $ sudo a2ensite rauta.example.com.conf,

$ sudo systemctl restart apache2

Lisäsin rauta.example.com-sivun hosts-tiedostoon:

Sivu toimi selaimessa

Seuraavaksi loin Einarille oman käyttäjän sekä php-pohjaisen kotisivun:

$ sudo adduser einari. Tämän jälkeen loin einari-käyttäjän kotihakemistoon public_html-kansion ja index.php-tiedoston:

Kokeilin tulosta selaimessa:

Valitettavasti Einarikaan ei välttynyt samalta php-ongelmalta. Ratkaisu ei ole vielä käsissäni.

Katsotaan kuormituksia. Tein kuormitustestit asennusten välissä sekä lopuksi.

Apachen asennuksen jälkeen
MariaDB asennuksen jälkeen
php-asennuksen jälkeen
Virtualhostin luomisen jälkeen
Lopuksi

Lähteet:

http://terokarvinen.com/2020/linux-palvelimet-2020-alkukevat-kurssi-ict4tn021-3010/

http://terokarvinen.com/2018/arvioitava-laboratorioharjoitus-linux-palvelimet-ict4tn021-6-torstai-alkukevat-2018-5-op

http://terokarvinen.com/2016/read-mysql-database-with-php-php-pdo

http://terokarvinen.com/2012/short-html5-page

https://stackoverflow.com/questions/35928184/php-in-userdir-not-working

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

%d bloggers like this: