Apache2 Raspberry Pihin

25.03.2018
RPi

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.

Apache2 ohjelman sivusto asennuksen jälkeen

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.

Palvelimen sivusto muokkaamisen jälkeen

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ä.

Palvelimen sivusto muokkaamisen jälkeen

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.

Palvelimen sivusto muokkaamisen jälkeen

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.

Palvelimen sivusto muokkaamisen jälkeen

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