Apache2 (https://httpd.apache.org/) on Web-palvelinohjelma. Tässä jutussa käydään läpi Apache2:n asennus Raspberry Pihin sekä tutustutaan ohjelman toimintaan.
Asennus
Apache2 ohjelman asennus onnistuu apt-get
komennon avulla, alla olevalla komennolla.
$ sudo apt-get --yes install apache2
Ohjelma luo asennuksen yhteydessä oletussivuston ja käynnistyy asennukseen jälkeen automaattisesti. Asennuksen onnistumisen voi varmistaa selaimella, syöttämällä selaimen osoiteriville Raspberry Piin IP -osoitteen.
Ohjelman yleinen hallinta
Ohjelman voi sammuttaa alla olevalla komennolla.
$ sudo systemctl stop apache2
Ohjelman voi käynnistää alla olevalla komennolla.
$ sudo systemctl start apache2
Ohjelman voi uudelleen käynnistää alla olevalla komennolla.
$ sudo systemctl restart apache2
Ohjelman tilan voi selvittää alla olevalla komennolla.
$ sudo systemctl status apache2
Hakemistorakenne
Asennuksen jälkeen levyltä löytyy alla olevat hakemistot.
/var/www
/var/log/apache2
/etc/apache2
/var/www -hakemisto
Hakemistossa /var/www
sijaitsevat sivustot, eli sivustojen html -tiedostot, yms. Sivustojen hakemistot ovat määritelty sivustojen asetustiedostoissa, joten halutessa sivustot voi sijoittaa muualle. Apache2 sijoittaa asennuksen yhteydessä luomansa oletussivuston hakemistoon /var/www/html
(tämä on sivusto joka aukeaa, kun palvelimeen ottaa yhteyden ohjelman asennuksen jälkeen).
/var/log/apache2 -hakemisto
Hakemistossa /var/log/apache2
sijaitsevat lokitiedostot. Lokitiedostojen nimet, sijainnit, sisältö, yms. ovat määritetty asetustiedostoissa, joten lokitiedostot voi sijoittaa halutessa muualle. Ohjelman assennuksen jälkeiset perusasetukset ovat sellaiset, että lokihakemistosta löytyy kaksi alla olevaa lokitiedostoa. Lokitiedostoon access.log
menevät kaikki kyselyt joita selaimet esittävät palvelimelle, ja lokitiedostoon error.log
menee ohjelman toiminnassa tapahtuvat virheet.
/var/log/apache2/access.log
/var/log/apache2/error.log
/etc/apache2 -hakemisto
Hakemistosta /etc/apache2
löytyy Apache2 ohjelman ja sivustojen asetustiedostot. Sivustojen asetustiedostot löytyvät kyseisen hakemiston kahdesta, alla olevasta, alihakemistoista.
/etc/apache2/sites-available
/etc/apache2/sises-enabled
Hakemistosta sites-available
(suom. saatavilla olevat sivustot) sijaitsevat sivustojen varsinaiset asetustiedostot. Kun sivusto halutaan aktivoida käyttöön, luodaan sen asetustiedostosta symbolinen linkki sites-enabled
(suom. aktivoidut sivustot) hakemistoon.
Asennuksen yhteydessä ohjelma luo oletussivuston. Oletussivusto on sivusto, joka aukeaa kun palvelimeen ottaa yhteyden asennukseen jälkeen. Oletussivuston asetustiedoston nimi on 000-default.conf
, joten tiedosto löytyy alla olevista paikoista (joista toinen on vain symbolinen linkki ensimmäiseen).
/etc/apahce2/sites-available/000-default.conf
/etc/apahce2/sites-enabled/000-default.conf
Ohjelma luo asennuksen yhteydessä asetustiedoston myös HTTPS sivustolle. Tämän sivuston asetustiedoston nimi on default-ssl.conf
(ks. sijainti alla). Ohjelma ei kuitenkaan ota tätä sivustoa käyttöön asennuksen yhteydessä, joten sen asetustiedoston symbolista linkkiä ei löydy sites-enabled
hakemistosta.
/etc/apahce2/sites-available/default-ssl.conf
Apache2 tarjoaa työkalun sivustojen aktivointiin (ohjelma a2ensite
) ja deaktivointiin (ohjelma a2dissite
). Mikään ei kuitenkaan estä aktivoimasta ja deaktivoimasta sivustoja käsin, (eli luomalla ja poistamalla symbolisen linkin).
Nopeasti HTML koodin kimppuun
Ohjelmiston asennuksen jälkeen nopeiten sivuja pääsee tekemään kun lähtee muokkaamaan ohjelman asennuksen yhteydessä luomaa oletussivustoa. Kyseisen sivuston asetustiedosto on /etc/apache2/sites-available/000-default.conf
ja sivusto sijaitsee hakemistossa /var/www/html
.
Oletussivuston hakemistosta voi poistaa kaikki tiedostot, alla olevalla komennolla, ja aloittaa puhtaalta pöydältä.
$ sudo rm /var/www/html/*
Hakemiston tyhjentämisen jälkeen, hakemistoon voi luoda index.html
tiedoston, alla olevalla käskyllä. Tähän tiedostoon voi sijoittaa oman HTML koodinsa, (esimerkki alla).
$ sudo nano /var/www/html/index.html
<!DOCTYPE html>
<html>
<head>
<meta charset="UTF-8">
<title>Etusivu</title>
</head>
<body>
Tämä on sivustoni etusivu... Tervetuloa...
</body>
</html>
Kun yllä olevien vaiheiden jälkeen Raspberry Pihin ottaa yhteyden selaimella, aukeaa selaimeen juuri luotu oma sivu.
HTTPS:n käyttöönotto (SSL/TLS)
Oletussivusto toimii asennuksen jälkeen vain HTTP yhteydellä. HTTPS tuen voi aktivoida, luomalla HTTPS sivuston jonka sijainti on sama kuin HTTP sivuston, mutta jonka asetustiedostossa HTTPS on aktivoitu. Jotta HTTPS aktivointi on mahdollista, täytyy Apache2:n SSL moduuli ottaa käyttöön. SSL moduulin käyttöön otto tapahtuu alla olevalla komennolla.
$ sudo a2enmod ssl
Apache2:n asennuksen yhteydessä ohjelma on luonut default-ssl.conf
nimisen sivuston, jonka sijainti on sama kuin oletussivuston, mutta joka käyttää HTTPS yhteyttä. Tämän sivuston aktivointi riittää aktivoimaan HTTPS yhteyden. Alla komento default-ssl.conf
sivuston aktivointiin. Kyseinen sivusto käyttää itse itsellään allekirjoitettua varmennetta.
$ sudo a2ensite default-ssl
HTTPS sivuston aktivoinnin jälkeen ohjelman joutuu käynnistämään uudelleen, jotta muutokset astuvat voimaan. Tämä onnistuu alla olevalla komennolla.
$ sudo systemctl restart apahce2
Näiden muutos jälkeen sivustoon voi ottaa HTTPS yhteyden, syöttämällä selaimeen Raspberry Piin IP -osoitteen HTTPS etuliitteellä.
Koska palvelimen varmenne on allekirjoitettu itse itsellään antavat selaimet turvallisuus varoituksen. Turvallisuus varoituksen voi ohittaa Firefoxissa, painamalla varoituksessa olevaa painiketta “Yksityiskohdat”, sitten “Lisää poikkeus…” painiketta ja lopuksi vielä “Vahvista turvallisuuspoikkeus” painiketta. Microsoft Edge turvallisuus varoituksen ohitus onnistuu painamalla varoitus sivulla olevaa “Lisätiedot” linkkiä, ja tämän jälkeen “Siirry verkko sivulle” linkkiä. Tämän jälkeen sivusto aukeaa.
Portin vaihtaminen
Sivuston kuuntelemat portit voi vaihtaa muokkaamalla Apahce2:n portti tiedostoa että sivuston asetustiedostoa. Alla komento Apache2:n portti tiedoston muokkaamiseen.
$ sudo nano /etc/apache2/ports.cond
Portti tiedosto sisältää Apache2:n kuuntelemat portit. Jos HTTP portin haluaa muuttaa 80:sta 12080:een, ja HTTPS portin 443:sta 12443:een, onnistuu tämä yksinkertaisesti muuttamalla portti tiedostossa olevat portti numerot uusiin. Muutosten jälkeen tiedosto näyttää alla olevalta, (muutokset ovat punaisella).
Listen 12080
<IfModule ssl_module>
Listen 12443
</IfModule>
<IfModule mod_gnutls.c>
Listen 12443
</IfModule>
Portti tiedoston muokkauksen lisäksi sivustojen asetustiedostossa olevat portti numerot on vaihdetta uusiin. Alla komento jolla pääsee muokkaamaan oletussivuston asetustiedostoa.
$ sudo nano /etc/apache2/sites-available/000-default.conf
Tiedostossa on rivi <VirtualHost *:80>
, joka määrittelee sivuston käyttämän portin (80). Tämän rivin portti numero täytyy korvata uudella arvolla 12080. Alla kuvattu rivi muutoksen jälkeen (muutos punaisella).
<VirtualHost *:12080>
Myös HTTPS sivuston portti numeron on vaihdettava uuteen (12443). Alla komento jolla pääsee muokkaamaan oletussivuston asetustiedostoa.
$ sudo nano /etc/apache2/sites-available/default-ssl.conf
Tiedostossa on rivi <VirtualHost _default_:443>
, joka määrittelee sivuston käyttämän portin (443). Tämän rivin portti numero täytyy korvata uudella arvolla 12443. Alla kuvattu rivi muutoksen jälkeen (muutos punaisella).
<VirtualHost _default_:12443>
Asetustiedostojen muokkauksen jälkeen ohjelma on käynnistettävä uudelleen, jotta muutokset astuvat voimaan. Alla on komento uudelleen käynnistämiseen.
$ sudo systemctl restart apache2
Tämän jälkeen sivusto on uusien porttien takana.
Sivuston siirtäminen toiseen hakemistoon
Sivustojen hakemistot ovat kerrottu sivustojen asetustiedostoissa. Jos sivuston siirtää toiseen hakemistoon on myös sivuston asetustiedosto päivitettävä osoittamaan uuteen hakemistoon.
Jos oletussivuston, joka sijaitsee hakemistossa /var/www/html
, haluaa siirtää hakemistoon /var/www/html_apache2
, voi sen tehdä alla olevalla komennolla.
$ sudo mv /var/www/html /var/www/html_apache2
Yllä olevan muutoksen jälkeen on oletussivuston asetustiedosto päivitettävä osoittamaan uuteen hakemistoon. Alla komento jolla pääsee muokkaamaan oletussivuston asetustiedostoa.
$ sudo nano /etc/apache2/sites-available/000-default.conf
Asetustiedostossa on rivi, DocumentRoot /var/www/html
, joka kertoo sivuston juuri hakemiston (/var/www/html
). Kyseisen rivin hakemisto pitää päivittää vastaamaan uutta hakemistoa (/var/www/html_apache2
). Muutoksen jälkeen tiedostossa pitäisi olla alla oleva rivi (muutos punaisella).
DocumentRoot /var/www/html_apache2
Myös HTTPS sivuston asetus tiedostoon on tehtävä yllä oleva muutos. Alla komento jolla pääsee muokkaamaan HTTPS sivusto asetustiedostoa.
$ sudo nano /etc/apache2/sites-available/default-ssl.conf
Asetustiedostojen muutoksen jälkeen ohjelma on käynnistettävä uudelleen, jotta uudet asetukset astuvat voimaan. Alla on komento uudelleen käynnistämistä varten.
$ sudo systemctl restart apache2;
Ohjelman poisto
Ohjelman voi poistaa pysäyttämällä ensin ohjelman. Tämä tapahtuu alla olevalla käskyllä.
$ sudo systemctl stop apache2
Tämän jälkeen ohjelman voi poistaa. Tämä tapahtuu alla olevalla komennolla.
$ sudo apt-get purge apache2
Asennuksen yhteydessä laitteeseen tulleet lisä paketit voi poistaa, poistamalla kaikki paketit joihin ei ole viittauksia Apache2:n poiston jälkeen viittauksia. Tämä tapahtuu alla olevalla komennolla.
$ sudo apt-get autoremove
Mahdollisesti jäljelle jäävät asetus- ja lokitiedostot sekä tarpeettomat sivustot voi poistaa käsin, (jos jostain syystä eivät poistuneet).
$ sudo rm -r /etc/apache2
$ sudo rm -r /var/log/apache2
$ sudo rm -r /var/www/html