Apachen ja PHP:n asennus (LAMP)

Tässä tehtävässä olen onnistuneesti
– asentanut Apachen ja luonut käyttäjälle PHP-tuelliset kotisivut
– yksinkertaisen PHP-ohjelman, joka laskee käyttäjän syöttämien lukujen summan

HARJOITUSYMPÄRISTÖ

Harjoitus suoritettiin 02.02.2013 klo 12:03 kannettavalla tietokoneella HP Pavilion g6-2220so.
HP Pavilion g6-2220so tiedot:
Käyttöjärjestelmä: Xubuntu 12.04 Precise Pangolin 64-bit (liveromppu)
Suoritin: Intel Core i5 3210M @ 2.50GHz
Muisti: 6,00 Gt Dual-Channel DDR3 @ 798MHz
Kiintolevy: 932GB Seagate ST1000LM024 HN-M101MBB (SATA)
Näyttöominaisuudet: Intel HD Graphics 4000
Ääniominaisuudet: IDT High Definition Audio CODEC

APACHEN ASENNUS JA TESTAAMINEN

Aloitin vaihtamalla näppäimistön suomalaiseksi komennolla setxkbmap fi. Sitten päivitin pakettitietokannan komennolla sudo apt-get update. Sen jälkeen lähdin asentamaan Apachea. Se löytyy paketinhallinnasta nimellä apache2, eli asennuskomento on sudo apt-get install apache2.

Asennuksen jälkeen kokeilin Apachen toimivuutta surffaamalla nettiselaimella oman tietokoneeni serverille (localhost). Kirjoitin kehotteeseen firefox localhost, jolloin localhost aukesi Firefox-selaimessa.

Kaikki toimi juuri niin kuin pitääkin, koska localhostissa näkyi ilmoitus “It works!”

seworkkaa

Suljin selaimen komentokehotteen kautta komennolla ctrl + c. Sitten lähdin tutkimaan mikä on koneeni IP-osoite. Se selviää komennolla ifconfig. Käytössäni on langaton WLAN-nettiyhteys. IP-osoitteeni löytyi siis kohdasta “wlan0” ja sieltä toiselta riviltä “inet addr”, ensimmäisenä näkyvä IP.

Ja nyt kun selvitin IP-osoitteeni, kokeilin surffata sillä serverille: firefox 192.168.1.51. Sain saman “It works!”-ilmoituksen kuin aiemminkin, ja siitä tiesin, että Apache on nyt toimivasti asennettu.

KÄYTTÄJÄKOHTAISTEN KOTISIVUJEN LUOMINEN

Lähdin luomaan kotisivua Apache-palvelimelle ensin hyväksymällä userdir-moduulin komennolla sudo a2enmod userdir. Jotta äskeinen komento tulisi voimaan, käynnistin Apachen uudelleen komennolla sudo service apache2 restart. Molemmissa komennoissa on tärkeä muistaa käyttää sudo-oikeuksia, muutoin ne eivät toimi.

Loin kotikansioon /home/xubuntu/ (kotikansioon pääsee kätevästi komennolla cd) uuden kansion nimeltä public_html komennolla mkdir public_html. Kaikki tiedostot public_html-kansiossa julkaistaan palvelimella. Tein äsken luotuun kansioon tekstitiedoston nimeltä index.html (komennolla nano index.html), johon kirjoitin satunnaista lorem ipsum-testitekstiä. Index.html on kotisivujen aloitussivu, ja se etsitään automaattisesti kun osoitteeksi kirjoitetaan kotisivujen perusosoite. Eli nyt kun seuraavaksi menen kokeilemaan osoitetta localhost/~xubuntu, selain avaakin minulle sivun automaattisesti sivun localhost/~xubuntu/index.html.

Ja kuten äsken jo totesinkin, seuraavaksi työkseni kokeilin toimiiko public_html-kansion sisältö palvelimella. Avasin Firefoxin komentokehotteen kautta ja surffasin osoitteeseen localhost/~xubuntu. So far, so good. Sivu toimi kuten pitääkin, eli kaikki lorem ipsum-tekstini näkyi ruudulla.

PHP:N ASENNUS JA TESTAAMINEN

Asensin PHP:n komennolla sudo apt-get install php5 libapache2-mod-php5. Seuraavaksi täytyy hyväksyä php muokkaamalla tiedostoa php5.conf. Se onnistuu suoraan komennolla sudoedit /etc/apache2/mods-enabled/php5.conf.

Kuten tiedostossa sanotaan “To re-enable php in user directories comment the following lines (from <IfModule …> to </IfModule>.)”, kommentoin IfModule-rivit ulos lisäämällä niiden eteen risuaitamerkin #. Kirjoitin lisäksi huomion, että minä olen muokannut tiedostoa. Nyt php5.conf-tiedosto näyttää tältä:

php

Käynnistin Apachen uudelleen, jotta muutokset tulevat voimaan: sudo service apache2 restart. Seuraavaksi muutin public_html-kansiossa olevan index.html-tiedoston on .php-päätteiseksi. Se onnistui komennolla mv index.html index.php. Nyt kun tulevaisuudessa haluan muokata index-tiedostoa, se täytyy tehdä komennolla nano index.php, koska .html-päätteistä tiedostoa ei enää ole.

Kirjoitin index.php-tiedostoon yksinkertaisen html- ja php-koodin sekoituksen:

<!doctype html>
<html>
<head>
<meta http-equiv=”Content-Type” content=”text/html; charset=UTF-8″ />

<title>Testisivusto</title>
</head>
<body>

<h1>Tervetuloa</h1>

<?php print “Hello World!” ?>

<p>Ja näkemiin.</p>

</body>
</html>

Lopuksi kokeilin toimivuutta surffaamalla selaimella osoitteeseen localhost/~xubuntu. PHP toimi moiteetta, sillä eteeni tulostui seuraavannäköinen sivu:

index

YKSINKERTAINEN PHP-OHJELMA

Seuraavaksi tein PHP:llä ohjelman, joka kysyy käyttäjältä kaksi numeroa ja laskee näiden numeroiden summan.

Muokkasin aluksi index.php-tiedostoa sellaiseksi, että se kysyy käyttäjältä numerot:

<!doctype html>
<html>
<head>
<meta http-equiv=”Content-Type” content=”text/html; charset=UTF-8″ />

<title>1 + 1 = ?</title>
</head>
<body>

<p>Syötä kaksi kokonaislukua ja paina “submit”. Laskin laskee lukujen summan.</p>

<form action=”summa.php” method=”post”>
<p>Ensimmäinen numero: <input type=”text” name=”yksi” /></p>
<p>Toinen numero: <input type=”text” name=”kaksi” /></p>
<p><input type=”submit” /></p></form>
</body>
</html>

Sitten loin public_html-kansioon toisen tiedoston nimeltä summa.php komennolla nano summa.php – tämä tiedosto tulee sisältämään itse laskutoimituksen. Kirjoitin tiedostoon seuraavan pätkän koodia:

Valitsit luvut <?php echo(int)$_POST[‘yksi’]; ?>
ja
<?php echo(int)$_POST[‘kaksi’]; ?>

<br>

Lukujen summa on <?php echo (int)$_POST[‘yksi’]+(int)$_POST[‘kaksi’]; ?>

Menin kokeilemaan php:n toimivuutta osoitteeseen localhost/~xubuntu ja kokeilin samaa myös IP-osoitteen kanssa. Molemmilla kerroilla lopputulos oli sama ja toimiva, sain sivun tekemään juuri sen mitä halusinkin:

laskin

laskin2

Tätä dokumenttia saa kopioida ja muokata GNU General Public Licensen (versio 2 tai uudempi) mukaisesti, http://www.gnu.org/licenses/gpl.html

Pohjana Tero Karvisen Työasemat ja tietoverkot-kurssi, http://terokarvinen.com

Lähteet:

Advertisements

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: