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
© 2007 Tomi Makkonen, GNU General Public License, version 2 or later.