LAMP – julkaisu- ja kehitysalustan pystyttäminen Raspberry Pi:llä

LAMP bundle logos

LAMP – julkaisu- ja kehitysalustan pystyttäminen Raspberry Pi:llä

LAMP on kokoelma avoimen lähdekoodin ohjelmia, jotka yhdessä muodostavat WWW-palvelimen, jonka alla voidaan suorittaa dynaamisia websivuja¹. Kirjain lyhenne LAMP muodostuu sanoista Linux, Apache, MySQL/MariaDB, PHP/Python/Pearl.

Tässä postauksessa LAMP:pi helahtaa pienen pieneen Linux-pohjaiseen tietokoneeseen nimeltä Raspberry Pi. Lisää Raspberry Pi:stä ja sen käyttöönottamisesta voit lukea aiemmasta postauksesta Raspberry Pi:n käyttöön ottaminen.

Tehtävä

Asenna Apache, laita käyttäjien kotisivut (http://example.com/~mikko) toimimaan. Testaa esimerkkikotisivulla.

Apachen asennus alkaa ssh-yhteyden muodostamisella Raspberry Pi:hin. Lähiverkossa RasPi vastaa tunnusella pi@raspberrypi.local ja sisään pääsee kirjaantumaan syöttämällä käyttäjätunnuksen salasanan.

ssh pi@raspberrypi.local

Yhteyden avauspyynnön jälkeen komentokehote pyytää koneelle kirjautuvan käyttäjätunnuksen salasanaa, jonka oikein syöttämisen jälkeen päästään käsiksi Raspberry Pi:n komentokehotteeseen. RasPiin loggaamisen jälkeen suoritin tehtävän tukeutumalla mm. Tero Karvisen blogipostaukseen Install Apache Web Server on Ubuntu.

Aloitetaan päivittämällä paketinhallinta ajantasalle komennolla sudo apt-get update ja heti perään pyydetään asentamaan apache ilman liiempiä vahvistuksia komennollasudo apt-get install -y apache2.

sudo apt-get update
sudo apt-get install -y apache2

Apachen asennuksen onnistumisen voi työpöytäympäristössä todentaa survaamalla nettiselaimessa osoitteeseen http://localhost/. Mutta koska ssh-yhteys osoite etsitään komennolla ifconfig | grep inet

ifconfig | grep inet
inet addr:192.168.1.39  Bcast:192.168.1.255  Mask:255.255.255.0

Esiin tulostuvista vaihtoehdoista 192-alkuinen kelpaa, jotenka RasPi-Apachen aloitussivu löytyy siis tässä tapauksessa osoitteesta 192.168.1.39.

Apache Default Page
Apache2 Debian -aloitussivu

Sivu näkyy, eli Apache toimii. On siis aika siirtyä demonin (Daemon (computing)) omien asetusten kimppuun. Luodaan ensiksi käyttäjälle public_html -kansio käyttäjän kotihakemistoon, määritetään edellä mainittu hakemisto näkyville Apachessa ja lopulta otetaan uudet asetukset käyttöön käynnistämällä Apache uudelleen.

cd
mkdir public_html
a2enmod userdir
sudo service apache2 restart

Tämän jälkeen public_html:n pitäisi näkyä selaimessa. Mutta koska kansio on tyhjä luodaan vielä kansioon oma aloitussivu ennen kuin päästään tarkistamaan uusien asetusten toimivuus. Avataan nano-tekstieditorissa uusi tiedosto nimeltä index.html komennolla nano index.html /home/pi/public_html liitetään tiedostoon geneerinen html-koodi ja tallennetaan tiedosto poistuessa painamalla näppäinyhdistelmää ctrl + x. Valitaan yes ja poistutaan enterillä.

nano index.html /home/pi/public_html

nano editor with html content
Nano editor open

Edellä mainittu geneerinen html-pätkä

<!DOCTYPE html>
<html lang=”en”>
<head><meta charset=”UTF-8″>
<title>Raspberry Pi test site</title>
</head>
<body>
<h1>header1</h1>
<p>Hurray it works!</p>
</body>
</html>

Viimeisenä  tarkistetaan komennolla whoami käyttäjätunnuksen nimi (mikä tässä tapauksessa tulostaa tietenkin pi)  ja surfataan tästä tiedosta johdettuun kotihakemisto-osoitteeseen http://192.168.1.39/~pi/. Voidaan todeta, että sivut näkyvät ja kaikki toimii.

whoami

public_html webpage displayed
public_html directory works!

Surffaa oman palvelimesi weppisivuja. Etsi Apachen lokista esimerkki onnistuneesta (200 ok) sivulatauksesta ja epäonnistuneesta (esim 404 not found) sivulatauksesta. Analysoi rivit.

Komennolla tail -2 /var/log/apache/access.log lokitiedoista voidaan nähdä kaksi viimeistä access.log:iin kirjattua tapahtumaa.

tail -2 /var/log/apache/access.log
192.168.1.36 – – [15/Sep/2017:15:59:43 +0300] “GET /~pi/ HTTP/1.1” 200 497 “-” “Mozilla/5.0 (Macintosh; Intel Mac OS X 10_11_6) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/56.0.2924.87 Safari/537.36”
192.168.1.36 – – [15/Sep/2017:16:00:43 +0300] “GET /~pi/errorlog HTTP/1.1” 404 509 “-” “Mozilla/5.0 (Macintosh; Intel Mac OS X 10_11_6) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/56.0.2924.87 Safari/537.36”

Molemmista logitapahtumista on nähtävissä alussa lähiverkon ip-osoite mistä nettisivua on kutsuttu, tässä tapauksessa 192.168.1.36. Heti perään näkyville tulostuu ajankohta jona kutsu on tullut. Seuraavana tulostuu kutsuttu http-metodi (molemmissa tapauksissa GET) sekä kansiohakemisto mitä osoitteesta on haettu. HTTP/1.1 viittaa käytettyyn protokollaan ja perässä tuleva kolminumero vastauksen statuskoodiin. Ensimmäisen statuskoodi 200 (OK) kielii onnistuneesta ja toisen 404 (Not Found) epäonnistuneesta pyynnöstä. “Mozilla/5.0 (.. ..Safari/537.36” kohta sisältää “User Agent” -tiedot kutsun tehneestä koneesta ja käytetystä verkkoselaimesta.

Asenna ja kokeile PhpMyAdmin:a tai jotain muuta valmista weppiliittymää tietokantojen hallinnointiin.

Viimeisenä asentuu LAMP:n jäljelle jääneet osat MySQL ja PHP sekä phpMyAdmin. Apuna tehtävän suorittamisessa käytin PiMyLifeUp.comin erinomaista postausta Raspberry Pi MYSQL & PHPMyAdmin Tutorial. Aloitetaan asentamalla MySQL.

sudo apt-get install mysql-server

Asennuksen aikana käyttäjää pyydetään määrittämään pääkäyttäjän salasana. Kuten aina salasana kannattaa valita hyvin ja painaa myös mieleen, sillä sitä tullaan käyttämään jatkossa.

nano editor with html content
Nano editor open

MySQL:n asennuksen toimivuutta pääsee testaamaan avaamalla myql:n (pyytää asennuksen yhteydessä määriteltyä salasanaa) ja vaikkapa tulostamalla esiin mahdolliset käytössä olevat tietokannat. Lopetus tapahtuu exit -komennolla

mysql -u root -p
show databases;
exit

Viimeisenä vuorossa asennukseen ovat PHP sekä phpMyAdmin. Ensimmäinen hoituu yksinkertaisella asennuskomennolla. Jälkimmäinen pyytää MySQL:n käyttäjältä tavoin hieman lisätietoja asennuksen yhteydessä.

sudo apt-get install php5 libapache2-mod-php5
sudo apt-get install phpmyadmin

Asennuksen aikana phpMyAdmin pyytää valitsemaan käytettävän webbiserverin. Valitaan Apache (välilyönti valitsee, tabilla päästään ylävalikkoon ja enterillä jatkamaan). Tämän jälkeen asennus kysyy käytettävästä tietokannasta. Koska tässä kyseisessä asennuksessa halutaan käyttää aiemmin asennettua MySQL:llää valitaan YES, minkä jälkeen asennus pyytää syöttämään ensin uuden pääkäyttäjän salasanan ja heti perään aiemmin MySQL:lle määritellyn salasanan.

Lopuksi ennen phpMyAdminin käyttöön ottoa määritellään vielä Apachen konfeihin tieto phpMyAdminin omista Apachea koskevista asetuksista muokkaamalla nanolla tiedoston /etc/apache2/apache2.conf loppuun lisäys Include /etc/phpmyadmin/apache.conf

sudo nano /etc/apache2/apache2.conf

Include phpMyAdmins own apache.conf to Apache
Include phpMyAdmins own apache.conf to Apache

phpMyAdminin testaus onnistuu Apachen uudelleen käynnistyksen jälkeen surffaamalla tässä kyseissä testikeississä aiemmin mainitusta ja käytetystä ip-osoitteesta johdettuun osoitteeseen http://192.168.1.39/phpmyadmin/ (“omalla koneella” testatessa myös localhost/phpmyadmin käy). Sisäänkirjautumaan pääsee tunnuksella admin ja syöttämällä aiemmin asennuksessa määritellyn pääkäyttäjän salasanan. Sisäänkirjaantumisen jälkeen phpMyAdminin toimivuutta voi testata vaikkapa luomalla uuden tietokannan. Graafinen käyttöliittymä on luvalla sanoen kankea, mutta toisaalta varsin yksiselitteinen eikä vaadi omaa erityistä kurssitusta toimiakseen.

Aikaa tämän tehtävän suorittamiseen meni noin pari tuntia.
Käytetty rauta tehtävässä: Raspberry Pi 3 Model B / MacBook Pro (Retina, 15-inch, Mid 2014)
Käyttöjärjestelmät: Raspbian PIXEL GNU/Linux / OS X El Capitan 10.11.6

Tämä blogipostaus liittyy Haaga-Helian tietojenkäsittelyn opintoihini ja ennen kaikea Linux palvelimet ict4tn021 -kurssiin, jonka rakenteesta, oppimistavoitteista ja aikataulusta voit lukea lisää täältä.

Edit 20.9.2017: Lisätty maininta Raspberry Pi:stä ja linkki aiempaan blogipostaukseen.

No Comments

Post A Comment