Linux Perusteet - Harjoitus 5

Kurssin tunnus dat8td063-19. Syksy 2007. Harjoituksen tehnyt Tomi Makkonen 0402612.

Pohjana Tero Karvisen Linux-kurssi http://www.iki.fi/karvinen/

AJOITUS

Harjoituksen teko ja raportointi aloitettiin toisella kotikoneella kello 19.00, maanantaina 17.12.2007. Toiselle kotikoneelle on asennettu aikaisemmin Ubuntu 7.10 harjoitusten tekoa varten. Harjoitus suoritettu kello 22.30.

TEHTÄVÄT JA RAPORTTI

H5.1 PHP Hei maailma (Apachella)

Harjoitus ja raportointi aloitettu kello 19.00.

En ollut aikaisemmin asentanut toiselle kotikoneelle Apache2 web-palvelinta, joten käynnistin aluksi komentokehotteen ja päivitin ohjelmienlistat ajan tasalle sudo apt-get update -komennolla. Seuraavaksi lähdin hakemaan Apache web-palvelimen pakettia komennolla apt-cache search apache2. Tällä komennolla sain liikaa tuloksia, joten tarkensin hakua ja annoin komennoksi apt-cache search apache 2 | grep server | less. Löysin oikean paketin ensimmäiseltä riviltä (apache2), joten lähdin asentamaan Apache Web-palvelinta komennolla sudo apt-get install apache2.

Asennus onnistui, jolloin testasin Apachea käynnistämällä Firefox -selaimen ja osoitteeksi annoin localhost. Apache näytti toimivan oikein. Seuraavaksi loin oman kotihakemistoon juureen public_html -hakemiston ja käytin komentoa sudo a2enmod userdir, jotta käyttäjien www-sivut toimisivat. Tämän jälkeen minun piti vielä käynnistää Apache-palvelin uudestaan komennolla sudo /etc/init.d/apache2 force-reload. Testasin oman käyttäjätunnuksen kotisivua, ja se toimi mainiosti. (http://localhost/~kayttajatunnus).

Apachen asennuksen jälkeen lähdin asentamaan PHP:ta. Etsin sen asennuspaketin ja löysin PHP5 metapaketin, joka oli palvelimelle tarkoitettu, jonka asensin komennolla sudo apt-get install php5. Asennus onnistui ja asennuksen yhteydessä Apache-palvelin käynnistyi automaattisesti uudestaan, joten tällä kertaa en joutunut itse sitä käynnistämään.

Koska asennus onnistui, niin lähdin testaamaan, että toimiiko PHP oikeasti. Menin oman kotihakemiston public_html -hakemistoon ja tein sinne PHP -tiedoston nimellä hello.php.
Lähdekoodi:

<?php echo "Hello world"; ?>
Tämän jälkeen käynnistin Firefoxin ja menin oman käyttäjätunnuksen kotisivulle ja koitin avata hello.php -tiedostoa selaimella, mutta se vain halusi tallentaa sen, eikä osannut avata sitä. Säädin hetken kaikkea, mutta en saanut ongelmaa ratkaistua, joten Googletin asiasta ja löysin lopulta vastauksen Ubuntun help-sivuilta. Näköjään minun koneelta puuttui syystä tai toisesta seuraava paketti libapache2-mod-php5, joten asensin kyseisen paketin.

Paketin asennuksen jälkeen testasin uudestaan avata hello.php -tiedostoa Firefox selaimella ja tällä kertaa se toimi! Sivulle tulostui: Hello world.

Ajattelin vielä testata web-palvelimen toimivuutta toiselta omalta koneelta (ei ole lähiverkossa), joten katsoin nykyisen koneen ip-osoitteen komennolla ip addr. Tulokseksi sain erilaista tietoa, mutta koska tiesin, että ensimmäinen verkkokortti on eth0, joten tutkin sen tietoja. IP-osoite on inetin jälkeen tuleva numero, esim. 10.10.10.10. (oikea IP-osoite on poistettu tästä raporista).
2: eth0: mtu 1500 qdisc pfifo_fast qlen 1000
link/ether 00:10:a7:0a:f6:03 brd ff:ff:ff:ff:ff:ff
inet 10.10.10.10/20 brd 88.193.31.255 scope global eth0
inet6 fe80::210:a7ff:fe0a:f603/64 scope link
valid_lft forever preferred_lft forever
Seuraavaksi sitten kirjoitin vain IP-osoitteen ylös ja menin testaamaan toiselta koneelta tämän koneen web-palvelimen toimivuutta ulkomaailmalle. Web-palvelin näytti toimivan hyvin myös toiselta koneelta. Olisin tietenkin host -komennolla saanut DNS-osoitteen tälle koneelle, mutta se oli melko pitkä rimpsu, niin ajattelin vain käyttää IP:tä tässä tapauksessa.

H5.2 Kirjoita esimerkki shell scriptistä.

Harjoitus ja raportointi aloitettu kello 19.45.

Loin aluksi omaan kotihakemistoon bin -hakemiston ja lisäsin omassa kotihakemistossa olevaan .bashrc -tiedoston loppuun seuraavaan rimpsun: PATH=$PATH:$HOME/bin. Tämä sen takia, että voisin ajaa omasta bin -hakemistosta ohjelmat pelkällä nimellä, eikä tarvitse aina pistää ./ohjelman_nimi, vaan pelkkä ohjelman_nimi riittää käynnistämään ohjelmaan. Seuraavaksi sitten käynnistin komentokehotteen uudestaan, jotta .bashrc latautuisi uudestaan. Seuraavaksi loin clsls -nimisen tiedoston oman kotihakemiston bin -hakemistoon, jonka sisällöksi naputtelin seuraavan rimpsun:
#!/bin/bash
clear
ls -lh --color=always
echo
echo "Olet hakemistossa: "; pwd
Kun olin naputtelut seuraavan rimpsun, niin tallensin tiedoston ja vaihdoin tiedoston tyyppiä komennolla chmod a+x clsls. Tämä siis teki tiedostosta ajettavan tiedoston ja niin, että kaikilla on oikeus ajaa se. Lopuksi testasin omaa shell scriptiä menemällä oman kotihakemistoon alkuun ja kirjoitin clsls. Shell scripti toimi hyvin.

Lyseinen shell scripti tyhjentää ekana ruudun ja sitten se listaa hakemistot ja tiedostot pitkänä listana, lisäksi väri on aina päällä ja hakemistojen ja tiedostojen koot näkyvät helposti luettavassa muodossa. Lopuksi se ilmoittaa, että missä hakemistossa on tällä hetkellä.

H5.3 C+ Hei Maailma. (g++)

Harjoitus ja raportointi aloitettu kello 20.25.

Koneelle ei ollut asennettu aikaisemmin g++, joten lähdin asentamaan kyseistä ohjelmaaa komennolla sudo apt-get install g++. Asennus pyysi jostain syystä Ubuntun CD:tä, joten laitoin sen CD-asemaan. Asennus onnistui, jolloin loin omaan kotihakemistoon tiedoston hello.cp. En ollut aikaisemmin C:llä mitään ohjelmoinut, joten hain C++ Hello World -ohjelman lähdekoodin Wikibooksista, katso lähteet.

Kun olin leikannut ja liimannut lähdekoodin tiedostoon, niin tallensin sen ja sen jälkeen käänsin lähdekoodin komennolla g++ hello.cp -o hello. Ohjelman kääntö onnistui, jolloin ajoin ohjelman komennolla ./hello, jolloin ruudulle tulostui: Hello, World! Ohjelma siis toimi hyvin ja g++:llä kääntäminen onnistui.

H5.4 Java hei maailma

Harjoitus ja raportointi aloitettu kello 20.40.

Lähdin asentamaan Tero Karvisen ohjeiden mukaisesti Javaa, mutta asensin silti eri Java paketin. Lisäsin /etc/apt/sources.list -tiedostoon tarvittavat ohjelmistolistat, komennolla sudo nano /etc/apt/sources.list. Lisättävät ohjelmistolistat näkee täältä:
http://myy.helia.fi/~karte/sun_java_ja_ubuntu.html. Vaihdoin silti listassa olevan Ubuntu version Gutsyksi. Tämän jälkeen päivitin ohjelmalistat komennolla sudo apt-get update ja sitten asensin Javan ohjelmistopaketin komennolla sudo apt-get install sun-java6-jdk. Asennus lähti jauhamaan ja hyväksyin lisenssit.

Kun Javan asennus oli onnistunut, niin loin nanolla tiedoston nimeltään helloWorld.java. Olen aikaisemmin Javalla ohjelmoinut, joten ajattelin itse naputella Javan Hello World -ohjelman. Koodin naputtelun jälkeen tallensin tiedoston ja lähdin kääntämään Java ohjelmaa komennolla javac helloWorld.java. Ohjelma kääntyi ilman herjoja, joten ajoin ohjelman class-tiedoston komennolla: java helloWorld. Ohjelma toimi ja ruudulle tulostui vanha tuttu teksti: Hello, World!

H5.5 Asenna MySQL tietokantapalvelin ja PhpMyAdmin.

Harjoitus ja raportointi aloitettu kello 21.00.

Lähdin hakemaan MySQL tietokantapalvelimen ohjelmistoa komennolla apt-cache search mysql | grep server. Valitsin asennettavaksi paketiksi mysql-server, koska se oli metapaketti, joka oli riippuvainen viimeisimmästä versiosta. Asennus lähti käyntiin ja vähän ajan päästä asennus pyysi MySQL "root" tunnukselle salasanaa, johon syötin monipuolisen salasanan (numeroita, aakkosia ja isoja aakkosia). Asennus näytti onnistuvan, jonka jälkeen päätin asentaa PhpMyAdmin -ohjelman.

Hain PhpMyAdmin paketin apt-cache -komennolla ja lähdin asentamaan phpmyadmin-pakettia. Asennuksen yhteydessä kysyttiin, että mille web-palvelimelle haluan PhpMyAdminin asentuvan automaattisesti, joten valitsin listasta Apache 2:sen, koska olin asentanut kyseisen web-palvelimen. Kun PhpMyAdmin oli asentunut, niin koitin sen toimivuutta menemällä FireFox -selaimella osoitteeseen http://localhost/phpmyadmin.

Pääsin PhpMyAdmin kirjautusmissivulle, johon syötin käyttäjäksi root ja salasanaksi sen monipuolisen salasanan. Kirjautuminen onnistui, joten phpmyadmin näytti toimivan hyvin. Ajattelin myös samalla testata myslin toimivuutta, joten loin testi tietokannan nimellä: testi. Kannan luonti onnistui, joten MySQL näytti toimivan moitteettomasti.

H5.6* (Vapaaehtoinen extra) Tee PHP-ohjelma, joka ottaa yhteyden tietokantaan

Harjoitus ja raportointi aloitettu kello 21.25.

Ensimmäiseksi lähdin luomaan kantaa ja koska olin jo kirjautunut PhpMyAdminiin sisään ja luonut sinne testi-tietokannan, niin loin sinne yksinkertaisen tiedot-taulukon, joka sisälsi kaksi kenttää: id ja tiedot. Lisäsin vielä taulukkoon muutaman rivin tietoa. Tässä tiedostossa tarkemmin tietokannan SQL-syntaksit: testikanta.sql.

Kannan luonnin jälkeen kirjauduin ulos PhpMyAdminista ja käynnstin graafisen Text Editorin, josta vaihdoin värityksen PHP:lle (View -> Hightlight Modes -> Scripts -> PHP). Naputtelin sopivat koodit, jotta voisin muodostaa yhteyden tietokantaan ja tallensin tiedoston omaan public_html -hakemistoon nimellä dbTest.php. Lähdekoodi on tässä tiedostossa: dbTest.txt.

Lopuksi testasin PHP-tietokantaohjelmaa käynnistämällä Firefox selaimen ja avasin sillä dbTest.php tiedoston omasta kotiosoitteesta (localhost/~kayttajatunnus/dbTest.php). Ohjelma näytti toimivan oikein ja sain tulokseksi:
Tietokannassa on seuraavia tietoja:

ID: 1
TIETO: Tämä on ensimmäinen rivi tiedot-kannassa.

ID: 2
TIETO: Tietokantaharjoitus Linux-perusteita varten.

LÄHTEET

  • Tero Karvisen kotisivut: http://www.iki.fi/karvinen/
  • Wikibooks - Hello world programs: http://en.wikibooks.org/wiki/Computer_programming/Hello_world
  • Ubuntu Help - PHP5 probleema: https://help.ubuntu.com/community/ApacheMySQLPHP#head-6ce180906ddbc141ef4b213f82465515a8ad3031-2