Tehtävä
h5.
Varsinaiset tehtävät:
– Asenna LAMP. LAMP tarkoittaa Linux, Apache, MySQL, PHP. Tee pienin erikseen testattava kokonaisuus kerrallaan ja testaa aina asennetut osat. Jos ei toimi, lue lokeja.
– Tee MySQL:n uusi tietokanta ja samanniminen käyttäjä. Valitse hyvä salasana, joka on eri kuin muut salasanat.
– Tee PHP-skriptiin kirjoitusvirhe ja etsi virheilmoitus lokista. Analysoi löytynyt lokirivi.
– Tee johonkin Apachen asetustiedostoon kirjoitusvirhe ja etsi virheilmoitus lokista. Analysoi löytynyt lokirivi.
Vapaaehtoista, mutta erittäin suositeltavaa:
– Ota itsellesi GitHub Education -paketti. Käytämme siitä saatavaa ilmaista palvelintilaa tällä kurssilla myöhemmin, mutta hakemuksen käsittely kestää 1-2 viikkoa.
Vapaaehtoisia lisätehtäviä:
– Kokeile PhpMyAdminia
– Pelaa sqlzoo.net:iä (tätä sqlzoo:n pelaamista ei tarvitse raportoida)
– Tee PHP-ohjelma, joka lukee tietueita tietokannasta. Käytä PHP-PDO -kirjastoa.
– Asenna WordPress. Lataa wordpress.org:sta tervapallo (.tar.gz), jotta oikeudet menevät oikein.
Vinkkejä:
– PHP:n toiminta on oletuksena estetty käyttäjien kotisivuilla, asetuksen muuttamiseksi ks ‘grep -ir php /etc/apache2/’
– Tarvittaessa esimerkkiratkaisuja tehtävään löytyy Googlella. Muista viitata kaikkiin lähteisiin.
– Linux Palvelimet 5op aikataulussa on useita linkkejä LAMP:ista, jotka kannattaa lukea, ennenkuin alat suorittaa tätä tehtävää http://terokarvinen.com/2016/aikataulu-linux-palvelimet-alkusyksy-2016#timetable
– Linkkejä:
http://terokarvinen.com/2008/install-apache-web-server-on-ubuntu-4
http://terokarvinen.com/2016/mysql-install-and-one-table-database-sql-crud-tutorial-for-ubuntu
http://terokarvinen.com/2012/change-mysql-password-dpkg-reconfigure-mysql-server-5-1-ubuntu-debian-error-1045
http://php.net/manual/en/tutorial.forms.php
https://miro.metsanheimo.fi/2015/09/24/pdo/
http://terokarvinen.com/2016/instant-firewall-sudo-ufw-enable
Asennuksia
Ympäristö
Tässä harjoituksessa tehdyt harjoitukset tehdään Macbook Air (13-inch, Mid 2011)-kannettavalla tietokoneella, jossa on prosessorina 1,8 GHz Intel Core i7 ja muistina 4 GB 1333 MHz DDR3. Käyttöjärjestelmänä on macOS Sierra 10.12 (16A322). Asennus tehdään VirtualBox-ohjelmiston päälle. Käytettävä VirtualBox versio on 5.1.6 r110634.
Linux
Asennustiedostona käytän osoitteesta http://ftp.uni-kl.de/pub/linux/ubuntu-dvd/xubuntu/releases/16.04/release/ ladattua iso tiedostoa: xubuntu-16.04.1-desktop-amd64.iso 2016-07-19 23:10 1.2G Desktop image for 64-bit PC (AMD64) computers (standard download)
Avasin VirtualBox sovelluksen ja valitsin pääikkunasta NEW
.
Name and operating system-ikkunassa:
Annoin koneelle nimeksi SUPPORTSQUID
Tyypiksi valitsin Linux
ja Versioksi Ubuntu (64-bit)
.
Seuraavaksi valitsin Continue
Memory size-ikkunassa:
Minulle riitti tuo ehdotettu muistin määrä 1024MB, joten valitsin Continue
.
Hard disk-ikkunassa valitsin tuon ehdotetun Create a virtual hard disk now
.
Seuraavaksi valitsin Create
Avautuneesta Hard disk file type-ikkunasta valitsin tuon ehdotetun VDI (VirtualBox Disk Image)
-vaihtoehdon.
Seuraavaksi valitsin Continue
.
Storage on physical hard disk-ikkunan ehdotettu Dynamically Allocated
oli hyvä vaihtoehto, joten valitsin sen.
Seuraavaksi valitsin Continue
.
File location and size-ikkunassa en vaihtanut tuota ehdotettua nimeä (SUPPORTSQUID
). Lisäsin kuitenkin levyn kokoa 30GB:hen.
Seuraavaksi valitsin Create
.
Tämä päätti VirtualBox-asennus osuuden ja voitiin siirtyä asentamaan käyttöjärjestelmää valitsemalla juuri tehty osuus ja painamalla näppäintä Start
.
Avautuvassa ikkunassa valitsin ladatun levykuvan kansion kuvan painamisen jälkeen auenneesta ikkunasta.
Seuraavaksi valitsin Start
.
Xubuntun asennuksen käynnistyttyä valitsin vaihtoehdoista Install Xubuntu
.
Preparing to install Xubuntu-ikkunasta valitsin vaihtoehdot:
Download updates while installing xubuntu
ja Install third-party software for graphics and Wi-Fi hardware, Flash, MP3 and other media
.
Seuraavaksi valitsin Continue
.
Installation type-ikkunassa valitsin Erase disk and install xubuntu
.
Seuraavaksi valitsin Install Now
.
Write the changes to disks-ikkunassa valitsin vain Continue
.
Install-ikkunassa oli valmiiksi jo aikavyöhykkeenä Helsinki, joten valitsin vain Continue
.
Keyboard Layout-ikkunasta valitsin Keyboard Layout valinnaksi Finnish
ja Finnish - Finnish (Macintosh)
Seuraavaksi valitsin Continue
.
Who are you?-ikkunaan kirjoitin seuraavat tiedot:
Your name: Matti
Your computer’s name: supportsquid
Pick a username: matto
Choose a password ja Confirm your password-kenttiin kirjoitin vahvan salasanan.
Lisäksi varmistin, että valinta require my password to log in
oli valittuna.
Seuraavaksi valitsin Continue
.
Asennus kesti tämän jälkeen muutaman minuutin.
Installation complete-ikkunasta valitsin Restart Now
.
Asennus sanoi tämän jälkeen Please remove the installation medium, then press ENTER:
. Koska tuo levy kuitenkin poistui automaattisesti, minun ei tarvinnut kuin painaa Enter-näppäintä.
Asennus onnistui, koska tämän jälkeen tuli kirjautumisikkuna ja järjestelmä aukesi kirjoittamalla kenttään salasanan ja painamalla Enter-näppäintä.
Lisäasennukset
Järjestelmän toiminnan varmistamiseksi, asensin vielä VirtualBox työkalut. Tämä onnistui valitsemalla ylävalikosta Devices – Insert Guest Additions CD-image…
Tämän jälkeen työpöydälle ilmestyi harmaana oleva kuvake VBOXADDITIONS_5.1.6_110634
. Kuvakkeen tuplaklikkaus ja avautuvassa ikkunassa tyhjässä kohdassa valitsemalla hiiren oikea painike ja Open Terminal here
-valinta päästi suoraan oikeaan kansioon.
Kansiossa piti vielä antaa komento
$sudo ./autorun.sh
Tämä ajo edellytti vielä salasanan antamisen.
Kun asennus pääsi vaiheeseen, jossa se kehotti Press return to close this window...
painoin Enter-näppäintä.
Seuraavaksi päivitin vielä kaikki ohjelmat komennoilla:
$sudo apt-get update $sudo apt-get upgrade
Komennot vaativat vielä salasanan antamisen ja Y-valinnan, kun asennus kysyi haluatko päivittää ohjelmat.
Tuon jälkeen käynnistin koneen uudelleen, jotta VirtualBox-ominaisuudet tulivat kokonaisuudessaan käyttöön.
Apache
A=Apachen asennus Linuxiin onnistui helposti avaamalla Terminal-ikkunan ja antamalla komennon:
:~$ sudo apt-get install apache2
Toiminta saatiin testattua avaamalla web-selain ja menemällä osoitteeseen localhost
. Osoitteesta avautui sivu “It Works!”; joten apachen asennus onnistui.
Käyttäjien omien html kansioiden käyttöönotto
Käyttäjien omat html-hakemistot saatiin käyttöön komennolla:
:~$ sudo a2enmod userdir [sudo] password for matto: Enabling module userdir. To activate the new configuration, you need to run: service apache2 restart :~$ service apache2 restart :~$
Testataan toiminta luomalla käyttäjälle kansio public_html ja sinne tiedosto index.html:
:~$ mkdir public_html :~$ cd public_html/ :~/public_html$ nano index.html :~/public_html$ ls -la total 12 drwxrwxr-x 2 matto matto 4096 syys 18 11:16 . drwxr-xr-x 21 matto matto 4096 syys 18 11:12 .. -rw-rw-r-- 1 matto matto 107 syys 18 11:16 index.html :~/public_html$ chmod a+r index.html
Tiedoston sisältö:
<!DOCTYPE html> <html> <head> <title>kotisivu</title> </head> <body>
<p>Hello World!</p>
</body>
</html>
Testaus onnistui menemällä internet-selaimella osoitteeseen http://localhost/~matto/
Mysql
M=Mysql asennus onnistui komennolla
$sudo apt-get install mysql-server
Asennus kysyi hetken kuluttua mysql-palvelimen root-käyttäjälle salasanan. tähän valitsin vaikeasti arvattavan vahvan salasanan. Asennus kysyi salasanan vielä toistamiseen.
Asennuksen jälkeen toiminnan sai testattua komennolla
$ mysql -u root -p
Koska tällä pääsi mysql>
-valintaan, onnistui palvelimen asennus.
Tuolta päästiin ulos komennolla quit
.
PHP
P=PHP asennus onnistui antamalla terminaalissa komento
$ sudo apt-get -y install php $ sudo apt-get install libapache2-mod-php7.0
Toiminnan sai testattua luomalla tiedoston index.php
kansioon /var/www/html/
. Tiedoston sisällöksi laitoin:
<?php print "Hello World!"; ?>
Tämän jälkeen osoitteesta http://localhost/index.php löytyi sivu, jonka sisältönä oli vain Hello World!
. Mikäli sivulla olisi näkynyt muuta, olisi asennus epäonnistunut.
Mysql-tietokanta ja käyttäjä
Tein tietokannan ja sille käyttäjän avaamalla terminaalin ja antamalla komennot:
$ mysql -u root -p mysql> CREATE DATABASE sanni; Query OK, 1 row affected (0,01 sec) mysql> GRANT ALL ON sanni.* TO sanni@localhost IDENTIFIED BY 'SaDk7BS*TZN7jCq+9EaA'; Query OK, 0 rows affected, 1 warning (0,01 sec)
Viimeisin komento antoi varoituksen, joten tarkistin mitä tuo varoitus pitää sisällään:
mysql> SHOW WARNINGS; +---------+------+------------------------------------------------------------------------------------------------------------------------------------+ | Level | Code | Message | +---------+------+------------------------------------------------------------------------------------------------------------------------------------+ | Warning | 1287 | Using GRANT for creating new user is deprecated and will be removed in future release. Create new user with CREATE USER statement. | +---------+------+------------------------------------------------------------------------------------------------------------------------------------+ 1 row in set (0,00 sec)
Tämä on hyvä tietää jatkossa, mutta ei vaikuttanut toimintaan tällä kertaa.
Lopuksi testasin, että käyttäjä pääsee kirjautumaan.
mysql> quit Bye $ mysql -u sanni -p Enter password: Welcome to the MySQL monitor. Commands end with ; or \g. Your MySQL connection id is 11 Server version: 5.7.15-0ubuntu0.16.04.1 (Ubuntu) Copyright (c) 2000, 2016, Oracle and/or its affiliates. All rights reserved. Oracle is a registered trademark of Oracle Corporation and/or its affiliates. Other names may be trademarks of their respective owners. Type 'help;' or '\h' for help. Type '\c' to clear the current input statement. mysql> USE sanni; Database changed mysql>
Tästä näkyi, että käyttäjä pääsi kirjautumaan sisään ja sai valittua luodun tietokannan.
PHP-skriptin virhe
Muutin tuota alkuperäistä PHP-tiedostoa muotoon
<?php pint "Hello World!"; ?>
ja yritin avata sivun selaimella. Sivu aukesi tyhjänä.
Katsoin tämän jälkeen /var/log/apache2/error.log
-tiedoston viimeisen rivin, joka näytti tältä
[Tue Sep 20 19:21:56.527769 2016] [:error] [pid 14528] [client 127.0.0.1:57188] PHP Parse error: syntax error, unexpected '"Hello World!"' (T_CONSTANT_ENCAPSED_STRING) in /var/www/html/index.php on line 2
Virherivin sisältö:
- [Tue Sep 20 19:21:56.527769 2016] :: Viikonpäivä Kuukausi, kellonaika vuosi
- [:error] :: Kyseessä on virheilmoitus
- [pid 14528] :: sovelluksen id-numero
- [client 127.0.0.1:57188] :: yhteyttä ottaneen koneen ip-osoite ja portti, joka oli käytössä
- PHP Parse error: :: kyseessä on php-komponenttiin liittyvä virhe
- syntax error, :: Koodissa oli virhe
- unexpected ‘”Hello World!”‘ :: tätä osuutta ei odotettu koodissa
- (T_CONSTANT_ENCAPSED_STRING) :: virheellisen osuuden muoto oli tekstiä lainausmerkkien sisällä
- in /var/www/html/index.php :: tiedosto jossa virhe oli
- on line 2 :: tiedoston rivi, jolla virhe oli
Apache-virhe
Testasin apachen konfiguraatiovirhettä muuttamalla tiedostoon
/etc/apache2/apache2.conf
riviä
Mutex fileAAA:${APACHE_LOCK_DIR} default
Tämän jälkeen yritin käynnistää apachen uudelleen komennolla
$sudo service apache2 restart
Tämä ei kuitenkaan onnistunut ja sain ilmoituksen
Job for apache2.service failed because the control process exited with error code. See "systemctl status apache2.service" and "journalctl -xe" for details.
Tämän osalta löytyy useita virheitä virhelogista /var/log/syslog
Näistä eniten virheestä kertova oli
Sep 20 19:44:25 supportsquid apache2[14860]: Invalid Mutex argument fileAAA:/var/lock/apache2 (Mutex mechanisms are: 'none', 'default', 'flock:/path/to/file', 'fcntl:/path/to/file', 'file:/path/to/file', 'pthread', 'sysvsem', 'posixsem', 'sem')
- Sep 20 19:44:25 :: päivämäärä ja kellonaika
- supportsquid apache2[14860]: :: kyseessä on apache2 sovellus id:llä 14860
- Invalid Mutex argument :: virheen aiheutti väärä Mutex rivin osuus
- fileAAA:/var/lock/apache2 :: virhe löytyi tästä kohtaa
- (Mutex mechanisms are: ‘none’, ‘default’, ‘flock:/path/to/file’, ‘fcntl:/path/to/file’, ‘file:/path/to/file’, ‘pthread’, ‘sysvsem’, ‘posixsem’, ‘sem’) :: lista hyväksytystä sisällöstä argumentille
GitHub-Education paketti
Paketin sai tilattua annetusta osoitteesta, käyttämällä koulun sähköpostiosoitetta. Paketti hyväksyttiin ja tuli käyttöön noin 5 minuutissa.
PHPMyAdmin
Asennus onnistui terminaalista antamalla komento
$sudo apt-get install phpmyadmin
Asennus kysyi mikä http-palvelin on käytössä. Koska asensimme aikaisemmin apachen, valitsemme sen ja ok.
Seuraavaksi asennus halusi tietää onko käytössä jo tietokantapalvelu. Koska asensimme mysql palvelimen aikaisemmin, valitsin No
.
Asennuksen valmistuttua, sain tarkistettua toiminnan avaamalla internet-selaimen osoitteessa http://localhost/phpmyadmin/
. Sivulla pääsee kirjautumaan sisään mysql palvelimen tunnuksella.
Kokeilin kirjautumista mysql-palvelimen root-tunnuksella. Järjestelmä näytti kaikki olemassa olevat tietokannat ja antoi mahdollisuuden tehdä erilaisia toimenpiteitä palvelimelle.
Päätin kokeilla uuden tietokannan luomista valitsemalla vasemmalla olevasta valikosta New
.
Avautuneessa ikkunassa valitsin tietokannan nimeksi tiia
ja merkistöksi latin1_swedish_ci
.
Valitsin vielä Create
Tietokanta tuli listaan ja mahdollisuus taulujen lisäämisen aukesi automaattisesti. Sivulla oli myös ilmoitus No tables found in database
koska tuolla ei vielä ollut ainuttakaan taulua.
Lähteet
- http://terokarvinen.com/2008/install-apache-web-server-on-ubuntu-4
- http://terokarvinen.com/2016/mysql-install-and-one-table-database-sql-crud-tutorial-for-ubuntu
- http://terokarvinen.com/2012/change-mysql-password-dpkg-reconfigure-mysql-server-5-1-ubuntu-debian-error-1045
- http://php.net/manual/en/tutorial.forms.php
- https://miro.metsanheimo.fi/2015/09/24/pdo/
- http://terokarvinen.com/2016/instant-firewall-sudo-ufw-enable
- http://ftp.uni-kl.de/pub/linux/ubuntu-dvd/xubuntu/releases/16.04/release/
- http://nsanamegeneratori.com
- http://terokarvinen.com/2016/aikataulu-linux-palvelimena-ict4tn003-22-ja-23-alkusyksy-2016
25 total views, 1 views today
One thought on “Linux Palvelimena: Tehtävä 5”
Comments are closed.