Tag Archive | raportti

SaveVisits

Kuvaus: Ohjelman avulla käyttäjä voi helposti tallentaa senhetkisen sijaintinsa muistipaikaksi, sekä liittää ottamiaan kuvia, paikan nimen ja yläkategorian organisointia varten.
Status: alpha
Lisenssi: Creative Commons 3.0 Attribution unported
Lähdekoodi: SaveVisits
Linkit:
terokarvinen.com
w3school
JSON
cordova

Arduino ja Python

Sain kotitehtäväksi testata pythonin ja arduinon välistä rajapintaa serialin kautta. Ensimmäinen tehtävä on lukea tietokoneella Arduinon lähettämää tietouomasin koodin kirjoittamisen aikana, että koneellani oleva python 3.30 versio ei pysty lähettämään seriaaliin kirjaimia sellaisenaan, vaan ne on muutettava ensin biteiksi. Tämä tapahtuu kirjoittamalla metodiin write() encode-metodin, esimerkiksi write(’5’) riittäisi pythonin aikaisemmille versioille, mutta python 3.30 tulee kirjoittaa write(’5’.encode(’UTF-8’)).

Kirjoitin komentokehotteella seuraavan python-koodin:

import serial

s = serial.Serial(”/dev/ttyACM0”, 9600); //ensimmäinen polku viittaa porttia, johon arduinoni oli kytketty, tarkista oman arduinosi portti ja täydennä koodiin. 9600 viittaa serialmonitorin kanavaan jota käytetään datan lähettämiseen

while True:
print(s.readline());

ja Arduino IDE:lle kirjoitin

void setup() {
Serial.begin(9600);
}

void loop() {
Serial.println(”this will be readable at computer screen”);
delay(1000);
}

python-ohjelma tulostaa seuraavia rivejä sekunnin välein:
B’this will be readable at computer screen\r\n

Seuraavana tehtävänä oli kirjoittaa tietokoneelta arduinolle , tämäkin onnistuu pythonilla käytteäen
serial-porttia Arduinolla

String s;
void setup() {
Serial.begin(9600);
}

void loop() {
while(Serial.available() || s.length() == 18) { //varmistetaan että dataa tulee ja rivin pituus vastaa python-ohjelmaan annettua lausetta
char c = Serial.read();
s = s + c;
}

Serial.println(s);
s = ””;
delay(1000); //odottaa sekunnin
}

ja Pythonille seuraava koodi:

import serial
import time

ser = serial.Serial(”/dev/ttyACM0”, 9600);

while True:
ser.write(”readable at arduino”.encode(’UTF-8’));
time.sleep(2); //odottaa 2 sekuntia

Syöte on luettavissa arduinon serialmonitorilta 9600 baudin kohdalta. Ohjelma tulostaa vuorotellen tekstirivin ja tyhjän rivin johtuen delayn ja time.sleepin aikaerosta

Seuraavana tehtävänä minun tuli tehdä ohjelma, joka kytkee arduinossa olevan ledin päälle ja pois
Sijoitin arduinon digitaaliseen pinniin nro 12 ja GND:hen ledin. seuraavaksi tein seuraavan koodin pythonilla:

import serial
import time

s = serial.Serial(’/dev/ttyACM0’, 9600);

while True:

s.write(’A’.encode(’UTF-8’)); // kirjain A on merkkinä ledin käynnistämisestä Arduinolla
s.close();
print(”led is ON”); //Ilmoitetaan komentokehotteella että ledin pitäisi nyt palaa
time.sleep(5); // odotetaan 5 sekuntia
s.open();
s.write(’B’.encode(’UTF-8’)); // kirjain B on merkkinä ledin sammuttamisesta
s.close();
print(”led is OFF”);
time.sleep(5);
s.open();

ja arduinoon seuraavan koodin

char ser;
void setup() {
Serial.begin(9600);
pinMode(12, OUTPUT);
}

void loop() {
if (Serial.available()) { //Arduino tarkistaa, onko seriaalin kautta tulossa dataa
ser = Serial.read();

if (ser == ’A’) { // mikäli seriaalissa lukee A, laitetaan ledi päälle
digitalWrite(12,HIGH);
}
else if (ser == ’B’) { //mikäli seriaalissa lukee B, laitetaan ledi pois
digitalWrite(12,LOW);
}

Servon käyttö arduinossa

Sain tehtäväksi kokeilla servon käyttöä arduinolla. Aluksi käytän hyväksi servo.h-kirjaston tarjoamia funktioita attach() ja write(), joilla liitän servon tiettyyn pin-paikkaan arduinossa ja ohjaan servoa kääntymään tietyn määreen verran haluamaani suuntaan.aloitin tekemällä ohjelman, joka kasvattaa muuttujaa arvoon 180 asti. Sen jälkeen arvo lähtee laskemaan takaisin kohti 0, jolloin servolle syötettäessä, arvot mahdollistavat 180-asteen edestakaisen pyörähdyksen. Samalla luetaan servon pulssitiedot pinniltä ja kirjoitetaan serial porttiin ASCII-muodossa, mikä näkyy tietokoneella ajettaessa IDE:ssä.

#include Servo.h;

Servo newServo;
int pos;

void setup() {
newServo.attach(9);
Serial.begin(9600);
}

void loop() {
value = analogRead(9);
for (pos = 0; pos < 180; pos += 1;) {
newServo.write(pos);
Serial.println(value);
delay(20);
}
for (pos = 180; pos > 0; pos -= 1;) {
newServo.write(pos);
Serial.println(value);
delay(20);
}
}

Seuraavaksi tein ohjelman joka tekee saman kuin edellinen, mutta ilman servo.h-kirjastoa

int pos;
int pin = 9;

void setup() {
pinmode(pin, OUTPUT);
}
void loop() {
for (pos = 0; pos < 180; pos += 1;) {
analogwrite(pin,10);
delay(100);
analogwrite(pin,0);
}
for (pos = 180; pos > 0; pos -= 1;) {
analogwrite(pin, 10);
delay(100);
analogwrite(pin, 0);
}
}

Koodien toiminnallisuudesta ei ole vielä täyttä varmuutta, sillä niiden toimintaa ei ole toistaiseksi vielä testattu Arduino-piirissä johtuen laitteiston puutteesta.

Lisäksi tehtävänä oli myös etsiä jokin omaperäinen arduino-projekti ja kuvailla sen toimintaa, sekä miettiä mahdollisia parannusehdotuksia. Löysin projektin, jossa arduino megasta, mp3-decoderista, sd-muistikortista ja nokian
5110 n-näytöstä on kasattu mp3-so Kehittäjä on koodannut yksinkertaisen käyttöliittymän, joka hakee
muistikortilla olevasta tekstitiedostosta tiedot soittolistoista ja musiikkikappaleista, jotka on ladattu
muistikortille. Käynnistyessään soitin tarkistaa, että tarvittavat osat ovat kytkettynä ja aktivoi pin-paikat,
minkä jälkeen tarkistetaan tekstitiedostolle määriteltyjen musiikkitiedostojen olemassaolo. Käyttöliittymä
antaa käyttäjälle mahdollisuuden luoda/poistaa/uudelleennimetä kappaleita ja soittolistoja mielensä mukaisesti ja
tiedot päivittyvät suoraan tekstitiedostolle.
Parannettavana ominaisuutena tuohon voisi kuulokepaikan rinnalle lisätä bluetooth-moduulin, jolloin soitin tukisi
myös langattomia kuulokkeita. Lisäksi mahdollinen usb-pc-tuki, jossa laite esiintyy tietokoneelle massamuistina,
nopeuttaisi muistikortilla olevien kappaleiden siirtämistä ja muokkaamista.

http://arduino.cc/forum/index.php/topic,114704.0.html

Ip-Tables -tulimuuri

Sain Työasemat ja Tietoverkot -kurssilta tehtäväksi keksiä oman tehtävän kurssiin liittyvistä aiheista.

Keksimäni tehtävä kuuluu seuraavasti:

 

“Aseta IpTables-tulimuurin asetukset kuntoon, kerro millä komennoilla muokkaat yksittäisiä portteja esimerkiksi auki ja kiinni.”

 

Käytössäni on xubuntu linux 12.04 -käyttöjärjestelmä, jossa IpTables-tulimuuri on valmiiksi asennettu. Aion siis muokata jo olemassaolevaa asennusta.

 

Aloitetaan

 

23.9.2012

 

23:31 Firewall-scripti

 

Sivulta http://myy.helia.fi/~karte/iptables_firewall.html löytyy valmis shellscript, jota ajamalla saa tarvittavat porttiasetukset hoidettua. Huomaa että xubuntussa komennot ovat hieman erilaiset.

 

Ensin loin tiedoston nimeltä firewall komennolla

 

$ nano firewall

 

seuraavaksi siirsin copy-pastea käyttäen sivulta löytyvän scriptiohjelman tekstitiedostoon ja tallensin.

 

23:38 tiedoston kopiointi ja käyttö

 

kopioin tiedoston /usr/local/bin -kansioon komennolla

 

$ sudo cp firewall /usr/local/bin/

 

varmistin, että käyttöoikeudet on kunnossa komennolla

 

$ sudo chmod u+x /usr/local/bin/firewall

 

 

nyt pystyin ajamaan tiedoston käyttämällä komentoa

 

$ sudo firewall

 

 

23:44 tarkistus

 

komennolla

 

$ sudo iptables -L

 

voi tarkistaa tulimuurin läpäisyn: INPUT-osion alla olevat säännöt tarkoittavat internetistä tulevia pyyntöjä, FORWARD-osion alta löytyy määritelmät pyynnön edelleenohjaamiseen toiseen porttiin ja OUTPUT-osion alta löytyy omalta koneelta lähtevien pyyntöjen käsittely.

Jos siis halutaan avata portti ulkoatulevalle liikenteelle, tulee se määrittää INPUT-osion alle. Esimerkiksi portti 22, jota käytetään SSH-liikenteen ohjaamiselle, voidaan ottaa käyttöön komennolla

 

$ iptables -A INPUT -i eth0 -p tcp –dport 22 -j ACCEPT

 

jossa INPUT tarkoittaa sisääntulevaa liikennettä, eth0 verkkoyhteyttä (langattomalla verkolla wlan0) ja ACCEPT hyväksyy liikenteen

 

lisätietoa sisään- ja ulostulevan porttiliikenteen ohjauksesta löytyy englanniksi osoitteesta http://www.thegeekstuff.com/2011/03/iptables-inbound-and-outbound-rules/

 

 

Lähde:

 

http://www.thegeekstuff.com/2011/03/iptables-inbound-and-outbound-rules/

http://myy.helia.fi/~karte/iptables_firewall.html

 

 

GNU Free Documentation License

 Version 1.3, 3 November 2008

 Copyright © 2000, 2001, 2002, 2007, 2008 Free Software Foundation, Inc. <http://fsf.org/&gt;

 Everyone is permitted to copy and distribute verbatim copies of this license document, but changing it is not allowed.

Ohjelmointikielten testaaminen Hello World -ohjelmalla

Sain kotitehtäväksi Työasemat ja Tietoverkot-kurssilta testata kolmea eri ohjelmointikieltä ja tulkkien toimivuutta.
Päätin tehdä testit seuraavilla ohjelmointikielillä: Java, Python ja C++.

Tein myös javalla edistyneemmän ohjelman, jonka lähdekoodin löytää osoitteesta

http://pastebin.com/eLsGBbks

ohjelman voi ajaa maalaamalla koodin hiirellä, kopioimalla leikepöydälle ( ctrl + c) ja luomalla tekstieditorilla LotteryNumberGenerator.java -nimisen tiedoston, johon koodi liitetään (ctrl + v).
Vaiheittaiset ohjeet java-tiedoston ajamiseen löytyy tästä raportista.

HUOM! LotteryNumberGenerator-ohjelma on ilmaisjaossa GNL-lisenssin mukaisesti. Tarkemmat tiedot lisenssistä raportin lopussa.

JAVA

18.9.2012

22:57  Tulkin asentaminen

asensin viimeisimmän java development kitin, eli lyhennettynä “jdk”, jotta pystyisin ajamaan java-tiedostoja suoraan komentorivitulkin kautta. Ensiksi päivitin pakkauslistan komennolla

$ apt-get update

seuraavaksi asensin jdk versio 6:n, koska sen pitäisi olla helposti yhteensopiva komentorivitulkilta ajettaessa. Jdk:ta on saatavilla myös uudempi versio 7, mutta en käyttänyt sitä testissä lainkaan.
Asensin käyttäen komentoa

$ sudo apt-get install openjdk-6-jdk

nyt koneellani pystyy luomaan java-tiedostoja ja ajamaan niitä tulkin avustuksella

23:04 Hello World -tiedosto

loin testaamista varten HelloWorld.java -tiedoston, joka tulostaa tekstin “Hello World!”.
Ensiksi siirryin kansioon, johon halusin luoda tiedoston

$ cd /home/krister/codes/

kansion “codes” olin aiemmin luonut mkdir-komennolla. Suosittelen käyttämään erillistä kansiota omille kooditiedostoille ja mielellään tekemään myös omat kansiot jokaiselle käyttämälle kielelle erikseen. Näin tiedostot on jälkikäteen helpompi löytää ajamista ja muokkaamista varten.

Tiedosto luodaan esimerkiksi komennolla

$ nano HelloWorld.java

seuraavaksi kirjoitin koodin ja tallensin ctrl + X painamalla. Kirjoittamani HelloWorld-koodin löytää osoitteesta

http://pastebin.com/Hmbt7vzH

23:21 Ohjelma ajettavaan muotoon

seuraavaksi loin tiedostosta .class-tiedoston, jotta tulkki pystyy tunnistamaan kooditiedostoni. Käytin komentoa

$ javac HelloWorld.java

lopuksi ajoin valmiin ohjelman komennolla

$ java HelloWorld.java

jolloin komentoriville tulostui teksti “Hello World!”. Ohjelma ja tulkki toimivat näinollen kuten pitääkin.

PYTHON

18.9.2012

Python-ohjelmien ajaminen komentorivitulkissa on todella helppoa ja yksinkertaista, sillä python-tulkki löytyy oletuksena linux-asennuksesta. Loin tässäkin HelloWorld-ohjelman, joka tulostaa Hello World! -tekstin

23:24 tiedoston luominen & testaaminen

koska tulkki on valmiiksi asennettu, pääsin suoraan tekemään ajettavan ohjelmatiedoston komennolla

$ nano HelloWorld.py

tällä kertaa riitti, että kirjoitin tiedostoon aluksi #!/usr/bin/python, eli polun, jota kautta tiedetään millä ohjelmalla tiedosto tulee ajaa. Seuraavaksi tein pari rivinvaihtoa enterillä ja kirjoitin

print “Hello World!”

tallensin tiedoston ja ajoin ohjelman komennolla

$ python HelloWorld.py

jolloin ohjelma tulosti “Hello World!” kuten pitikin. Näin ollen Python-tulkki toimii samoin HelloWorld-ohjelmani.

23:40

C++

C-kieli lähentelee jo puhdasta konekieltä, josta C++ on kenties helpoin omaksua java- tai python-pohjatiedoilla. Tässäkin testissä kokeilin asentaa C-tulkin ja ajaa HelloWorld-ohjelman, joka tulostaa “Hello World” -tekstin.

19.9.2012

00:00 Tulkin asennus

asensin komentorivitulkilla C-tulkin version 4.5 seuraavalla komennolla

$ sudo apt-get install gcc-4.5

tämän jälkeen loin /home/krister/codes/ -kansioon tiedoston HelloWorld.cpp komennolla

$ nano HelloWorld.cpp

kirjoittamani koodi löytyy osoitteesta

http://pastebin.com/D0pBqjrv

seuraavaksi tallensin tiedoston ctrl + X painamalla

00:17 tiedoston muokkaus

annoin tulkin tehdä ajettavan version tiedostostani, joten kirjoitin komennon

$ g++ HelloWorld.cpp -o HelloWorld.

Nyt ohjelman pystyi ajamaan bashilla komennolla

$ ./HelloWorld.

Jolloin ohjelma tulosti tekstin “Hello, World!”. Näinollen C-tulkki asentui oikein ja pystyy kääntämään koodia ongelmitta sekä ohjelmani oli kelvollinen.

 

Lähde:

http://en.wikipedia.org/wiki/Hello_world_program_examples

http://terokarvinen.com/

 

 

GNU GENERAL PUBLIC LICENSE
Version 3, 29 June 2007

Copyright (C) 2007 Free Software Foundation, Inc. <http://fsf.org/&gt;
Everyone is permitted to copy and distribute verbatim copies
of this license document, but changing it is not allowed.

OpenSSH-palvelimen asennus ja käyttö

Sain etätehtäväksi asentaa koneelleni linuxilla hyvin tärkeän ohjelman, eli openSSH-demonin.

Lyhyesti SSH:sta: kyseessä on suora yhteys eli protokolla kahden päätelaitteen (serveri, kännykkä, tietokone jne.) välillä ja mikä tärkeintä, yhteys on salattu suojausavaimella. Suojaus on nykyään erittäin tärkeää ettei avointa yhteyttä käytetä ulkopuolisen toimesta väärin, esimerkiksi murtautumalla avoimesta portista ja kaappaamalla serverin tai tietokoneen hallinta. SSH:ssa suojaus tapahtuu suojausavaimia käyttämällä, jotka lähetetään yhteydessä oleviin päätelaitteisiin. Ennen datan lähettämistä toiselle koneelle, se salataan käyttämällä salausavaimen määrittämää salausalgoritmia ja vastaavasti puretaan samalla avaimella vastaanottavassa päädyssä. Periaatteessa algoritmi voisi olla mikä tahansa tunnettu salausmenetelmä, mutta Internet Engineering Task Force, eli IETF on määrittänyt SSH-yhteyksille vakituisen standardisuojausalgoritmin, jotta vältyttäisiin salauksien yhteensopivuusongelmilta.

OpenSSH-server-ohjelman tarkoituksena on Apachen tavoin toimia isäntäpalvelimena, joka muodostaa SSH-yhteyden sitä pyytävän asiakasohjelman kanssa (esimerkiksi kännykkä). Tämä mahdollistaa oman tietokoneen etäkäytön internet-yhteyden välityksellä sekä kiinteiden, salattujen yhteyksien luomisen erilliselle palvelimelle.

Kokeilin OpenSSH:n toimivuutta omalla kannettavalla tietokoneellani, johon olen asentanut Xubuntu Linux 12.04 -käyttöjärjestelmän

Asentaminen

11.9.2012

23:41Asennus

asensin OpenSSH-demonin käynnistämällä Xubuntun, avaamalla komentokehotteen eli Terminaalin ja käyttämällä komentoa

$ sudo apt-get install openssh-server

Terminaali ilmoitti demonin vaativan 891 kb kiintolevytilaa ja kysyi, haluanko jatkaa asennusta, johon vastasin kirjoittamalla “Y” eli yes.

23:46 Salasana

Seuraavaksi määritin käyttäjälle salasanan, jotta kuka tahansa ei pääsisi käsiksi yhteyteen koneeseeni. Tämän vaiheen voi ohittaa, jos ei käytä linuxin Live-CD:tä ja linux-käyttäjälle on asetettu kirjautumiseen salasana. Kirjoitin terminaaliin komennon

$ passwd

jolloin käyttäjältä kysytään nykyistä salasanaa, uutta salasanaa ja uusi salasana uudestaan

23:50 Testaus localhostina

Nyt openSSH-server asentui kannettavalle tietokoneelleni ja seuraavaksi kokeilin sen toimivuutta yhdistämällä demonille localhostina, eli verkkokortti toimii sekä asiakkaana, että palvelinhostina.

Kirjoitan komennon

$ ssh krister@localhost

jossa krister on linuxini käyttäjätilin nimi

seuraavaksi Terminaali kysyi, haluanko yhdistää palvelimelle vaikka palvelimen varmennetta ei tunnistettu. Kirjoitan “yes” eli kyllä, sillä tunnen ja luotan kyseiseen palvelimeen (kyseessähän on oma tietokoneeni, johon yhdistän).

Tämän jälkeen palvelin pyytää salasanaa, johon tietysti kirjoitan käyttäjätilini salasanan.

Nyt olen onnistuneesti kirjautunut omalta koneeltani omalle koneelleni käyttäen SSH-yhteyttä. Asian voi vielä todentaa tapahtumalokista, joka on /var/log/Auth.log

Avasin 10 viimeisintä merkintää komennolla

$ tail /var/log/Auth.log

joka tulosti seuraavaa:

neljänneksi viimeisellä rivillä on merkintä salasanan hyväksymisestä ja kolmanneksi viimeinen rivi ilmoittaa istunnon avautuneen krister-nimiselle asiakkaalle, eli yhteys avattiin onnistuneesti ja pystyin etäkäyttämään konettani.

00:17 Testi ulkoiselta palvelimelta

Tein vielä yhden yhdistämistestin yhdistämällä omalta koneeltani kouluni myy-palvelimelle ja sieltä edelleen takaisin omalle koneelleni (openSSH-demoniin)

Lyhyesti vielä kaaviona yhteysreitti:

Oma kone (asiakas) —-SSH—-> koulun myy-palvelin —-SSH—-> Oma kone (OpenSSH)

Lopputuloksena pystyn ohjaamaan omaa konettani samalla tavalla kuin edellisessä testissä, tässä tapauksessa komentodata vain kulki koulun myy-palvelimen välityksellä.

Suljin ensin aiemman localhost-yhteyteni komennolla

$ exit

00:22 Testaus

Aluksi tarkistin IP-osoitteeni omalle koneelleni komennolla

$ ip addr

IP-osoite löytyi koneeni tapauksessa kohdasta “3: wlan0:”, koska minulla on langaton wlan-yhteys. Kiinteällä ethernet-kaapelilla IP-osoitteeni lukisi kohdassa “2: eth0”

seuraavaksi yhdistin koulun palvelimelle komennolla

$ ssh [opiskelijanumero]@myy.haaga-helia.fi

palvelin kysyi jälleen salasanaa, jonka jälkeen yhteys koulun palvelimelle muodostui.

Seuraavaksi yhdistin takaisin omalle koneelleni komennolla

$ ssh krister@[IP-osoitteeni]

Tästä tuli kuitenkin virheilmoitus: ssh: connect to host XXX.XXX.X.XX port 22: No route to host.

Luultavasti kyseinen virhe johtuu modeemini palomuurista, jolla on oma IP-osoitteensa.

Lähde:

http://terokarvinen.com/

http://fi.wikipedia.org/wiki/SSH

GNU Free Documentation License

Version 1.3, 3 November 2008

Copyright © 2000, 2001, 2002, 2007, 2008 Free Software Foundation, Inc. <http://fsf.org/&gt;

Everyone is permitted to copy and distribute verbatim copies of this license document, but changing it is not allowed.

PHP:n käyttö nettisivuilla

Sain Työasemat ja tietoverkot -kurssilla tehtäväksi asentaa Apache-palvelindemonin sekä PHP-kirjaston kotisivujen luomista varten. Lisäksi minun piti tehdä PHP-sivu, joka tulostaa nettiselaimeen ”Hei maailma!” ja sivu, joka käyttäjän antamien tietojen perusteella laskee henkilön painoindeksin.

Apache-palvelindemoni ylläpitää palvelinta ja kommunikoi asiakasselaimien kanssa, jolloin tavallisella nettiselaimella pääsee käyttäjän määrittämälle kotisivulle IP-osoitteen avulla.
PHP tarjoaa HTML:ää laajemmat mahdollisuudet luoda mm. lomakekenttiä ja grafiikkaa sekä tietokantoja kotisivulle. Lisäksi PHP on yleensä valmiiksi tuettu eri nettiselaimissa, joten se on valmiiksi yhteensopiva asiakaskoneille.

Mikäli Apachen asennus ja käyttö tai komentokehotteen komennot tuntuvat haastavilta, olen kirjoittanut perusasioista artikkelit: https://kristerholmstrom.wordpress.com/2012/09/05/apache-2-asennus-xubuntulle/
https://kristerholmstrom.wordpress.com/2012/09/03/komentokehotteen-kaytto-asennuksessa-ja-yllapidossa/

9.9.2012

23:12 Boottaus ja Apachen asennus

aloitin käynnistämällä koneeni Xubuntu linux 12.04 -live CD:llä ja avasin terminaalin. Aluksi minun piti asentaa Apache, jotta pystyisin jakamaan PHP-kotisivun. Apache asennetaan samalla tavalla kuten muutkin ohjelmat, eli komennolla

$ sudo apt-get update
$ sudo apt-get install apache2

23:23 Apachen moduulin muokkaus
Seuraavaksi muutin apache2-moduulin hakemaan oletusnettisivutiedostoa käyttäjähakemistosta. Ensin kuitenkin menin terminaalilla kohteeseen /home/xubuntu/ ja loin uuden kansion nimeltä public_html. Seuraavaksi loin HTML-tiedoston komennolla

$ nano index.html

Huomaa että tiedoston nimi tulee olla index, jotta Apache osaa sitä etsiä oletuksena.
Apache-moduuli muutetaan komennolla

$ sudo a2enmod userdir

seuraavaksi apache piti uudelleenkäynnistää, mikä tapahtuu komennolla

$ sudo service apache2 restart

23:30 Apachen testaaminen

tässä vaiheessa oli hyvä kokeilla, miten apache toimi, joten toimin asiakkaana ja käynnistin nettiselaimen, jonka osoiteriville kirjoitin IP-osoitteeni sekä käyttäjäkansion nimen.
IP-osoite selviää komennolla

$ ip addr

osoitteeni on siis http://192.168.1.67/~xubuntu/
kyseisestä osoitteesta tulostui index.html-tiedostoni tieto kun syötin osoitteen nettiselaimeeni.
23:35
PHP-tulkki asennetaan lataamalla Apache2 erillinen mod-kirjasto, joten asennus tapahtui hieman eri tavalla kuin muissa ohjelmissa. Käytin komentoa

$ sudo apt-get install libapache2-mod-php5

Tämän jälkeen kävin muuttamassa php5-asennuslogia, jotta tulkki toimisi oikein. Käytin komentoa

$ sudoedit /etc/apache2/mods-enabled/php5.conf

sen jälkeen ”kommentoin ulos” kaikki rivit välillä <ifModule mod_userdir.c> … </ifModule>, eli lisäsin rivien eteen #-merkin, jolloin rivit muuttuvat kommenteiksi, eikä tulkki silloin huomio rivejä lainkaan.

23:46 PHP-tiedoston luominen

Seuraavaksi index.html-tiedosto piti muuttaa PHP:ta tukevaksi tiedostoksi. Tämä onnistui siirtymällä kansioon /home/xubuntu/public_html/ ja antamalla komennon

$ mv index.html index.php

nyt tiedosto pystyi sisältämään PHP-koodia ja Apache tulkitsemaan sitä.

23:52 PHP-koodi

PHP-koodin selventämiseen tässä artikkelissa menisi paljon aikaa ja tilaa, enkä välttämättä saisi annettua kovinkaan syvällistä kuvaa ohjelmoinnista, joten annan linkin, jonka kautta voi tutustua PHP-ohjelmointiin tarkemmin, erityisesti HTML-pohjaisena:

http://www.php.net/manual/en/tutorial.forms.php

Muokkasin seuraavaksi index.php:ta niin, että se tulosti lauseen ”Hei Maailma!”

kyseinen lause tulostuu kirjoittamalla kotisivutiedostoon <? PHP print(”Hei Maailma!”); ?>

En saanut painoindeksilaskuria vielä toimimaan, mutta lisään koodin tähän artikkeliin kun saan sivun näyttämään tuloksen oikein.

lähde: http://terokarvinen.com/2012/aikataulu-–-tyoasemat-ja-tietoverkot-ict1tn002-33-syksylla-2012

GNU Free Documentation License

Version 1.3, 3 November 2008

Copyright © 2000, 2001, 2002, 2007, 2008 Free Software Foundation, Inc. <http://fsf.org/&gt;

Everyone is permitted to copy and distribute verbatim copies of this license document, but changing it is not allowed.

Xubuntu Linux 12.04 asentaminen

Mistä kyse:

Sain Haaga-Helian tietojenkäsittelylinjan kurssilta ”Työasemat ja tietoverkot” tehtäväksi aloittaa xubuntu Linux version 12.04 asentamisen muulle kuin laboratoriokoneelle, jotta voin testata xubuntun toimivuutta yksityiskäyttöön tarkoitetussa koneessa.

Lisäksi minun tuli laatia aiheesta selkeä raportti, jota tämä teksti koskee.

Aloitan projektin tänään 20.8.2012 klo 17: 15

Mitä tarvitaan:

latasin varsinaisen xubuntu linux 12.04:n asennus-CD:n levykuvan, jonka poltin erilliselle kiinteälle levylle. Normaalisti levykuva olisi optimaalisinta polttaa tyhjälle CD-levylle, jotta levy olisi yhteensopiva myös vanhempien  koneiden kanssa. Itselläni ei kuitenkaan löydy varastosta tavallista CD-R/CD-RW -levyä, joten poikkeuksellisesti poltan levykuvan tyhjälle DVD-RW-levylle. Tällöin tulee luonnollisesti varmistaa että tietokoneen levyasema tukee DVD-RW-levyjä.
Minulla on Iomegan 1TB ulkoinen kiintolevy tiedostojen varmuuskopiointia varten, jotta varmistun että tiedot eivät katoa vaikka jokin menisi pieleen. Käytin varmuuskopiointiin Windows 7 home premiumin omaa varmuuskopiointiohjelmaa.

Tietokoneeni tiedot:

malli: kannettava tietokone eli läppäri
merkki: Acer Aspire 5738ZG
prosessori: Intel T4400 tuplaydin, kellotaajuus 2,2GHz
näytönohjain: integroitu ATI mobility Radeon HD 4650
välimuisti: kaksipaikkainen 6 GB DDR3 1066 MHz (alunperin 4GB mutta toinen muistikampa vaihdettu isompaan)
Kiintolevy: 500GB
DVD-asema: DVD-Super Multi DualLayer drive
näyttö: 15,6” HD LCD, tuki 16:9 kuvasuhteelle
oletuskäyttöjärjestelmä: Windows 7 home premium SP1 64-bittisenä

Aloitetaan

Latasin Xubuntu Linux 12.04 -levykuvan valmistajan kotisivulta käyttäen Torrent-tiedostonjakoa ja asiakasohjelmana Vuze 4.7.0.2, levykuvan polttamiseen DVD-levylle käytin PowerISO-ohjelmaa, joka suoritti levykuvan polton onnistuneesti.
Ennen uudelleenkäynnistämistä, varmuuskopioin kaikki tiedostoni siltä varalta että jokin menee pieleen. Aloitin järjestelmän varmuuskopioimisen, mutta toistuvan virheen vuoksi (varmuuskopio-ohjelma yrittää kirjoittaa ulkoiselle levylle osioon, joka on käytössä ja tästä syystä keskeyttää varmuuskopioinnin kokonaan) päätin lykätä varmuuskopioinnin ja siten myös varsinaisen linux-asennuksen tämän testin ulkopuolelle. Varmuuskopiointi on myös erittäin aikaavievää (40% varmuuskopiointisuorittamiseen asti kesti arviolta 6 tuntia), joten aikataulun vuoksi en ehdi enää yrittää uudestaan varmuuskopiointia. Nyt tarkoituksenani on käynnistää kone Linuxiin pelkästään LiveCD-muodossa ja suorittaa varsinaisen asennuksen myöhemmin kun varmuuskopiot on varmasti otettu talteen.

Seuraavaksi suljen ohjelmat, laitan DVD-levyn levyasemaan ja käynnistän koneen uudelleen. Tarkoituksenani on käynnistää kone Xubuntu Linux CDLive-tilaan, jossa xubuntu ajetaan suoraan DVD-levyltä, tällöin pystyn kirjoittamaan raporttia reaaliaikaisesti ja varmistumaan, että xubuntu Linuxia on uusimmalla versiolla mahdollista ajaa testikoneessa.
Uudelleenkäynnistäessä kone käynnisti suoraan takaisin windowsiin, eikä huomioinut DVD-levyä ollenkaan. Tämä kuitenkin korjaantui toisella uudelleenkäynnistyksellä, jolloin muutin BIOSista boot- eli käynnistysjärjestystä. Tämän ansiosta kone huomio ensin CD/DVD-levyllä olevan käyttöjärjestelmän ja vasta sitten, mikäli ei DVD-asemasta järjestelmää löytänyt, kiintolevyllä olevaa käyttöjärjestelmää.
Käynnistys sujui vaivattomasti ja Linux osasi automaattisesti havaita langattoman nettiyhteyteni, joten raportin kirjoittaminen sujui ilman ongelmia. Alussa käynnistyksen jälkeen järjestelmä kysyy, haluanko vain kokeilla Linuxia, mikä tarkoittaa DVD-levyn käyttöä käyttöjärjestelmänä, vai haluanko jo asentaa Linuxin koneelleni pitäen kuitenkin LiveCD:n samalla käynnissä. Kuten aiemmin totesin, lykkään asennusta kunnes olen saanut tiedostoni varmasti varmuuskopioitua. Näin vältän turhat riskit, mikäli jokin menee asennuksen aikana pieleen. Valitsen siis ”kokeile XUBUNTUA”.
Avasin työpöydälle päästyäni Firefox-nettiselaimen, jotta voin testata järjestelmän toimivuutta. Oma blogisivuni kristerholmstrom.wordpress.com avautui ilman ongelmia, näinollen sekä xubuntu linux, että nettiyhteys linuxilla vaikuttaisivat toimivan ilman suurempia ongelmia.

Loppusanat:

XUBUNTU linuxin 12.04 version ajaminen CD tai DVD:n kautta onnistuu suhteellisen vaivattomasti omalla Acer-läppärilläni, vaikka käynnistysjärjestystä joutuikin erikseen käydä muuttamassa. Erittäin pieni vaiva kuitenkin kun kokonaisuudessaan käynnistymiseen meni arviolta 2-3 minuuttia aikaa, vaikka Linuxia luettiin suoraan hitaalta DVD:ltä. Iomega External Drive 1 TB osoittautui epäluotettavaksi varmuuskopiointiasemaksi, joten aion hankkia toisen ulkoisen levyaseman varmuuskopioideni säilytystä varten.

GNU Free Documentation License

Version 1.3, 3 November 2008

Copyright © 2000, 2001, 2002, 2007, 2008 Free Software Foundation, Inc. <http://fsf.org/>

Everyone is permitted to copy and distribute verbatim copies of this license document, but changing it is not allowed.