h5

Linux Server Course - Linux palvelimet ict4tn021-3014


Aihe: h5 kotitehtävä

Kurssi: Linux Server Course - Linux palvelimet ict4tn021-3014

Päiväys: 22.02.2021

Opettaja: Tero Karvnen




Tehtävät

  • Tee kukin tehtävä alusta lähtien ja kirjaa samalla, vaikka olisit kokeillut tunnilla. Jos pidät propellihattua, katso kohta x.
  • a) Hello Flask! Tee Python Flask hei maailma kehitysympäristössä. Voit siis käyttää tuotantoon sopimatonta app.run(debug=True) ajoa.
  • b) Tuotanto-Flask. Tee tuotantotyyppinen asennus Flaskista käyttäen Apachen WSGI-modulia. Kokeile, että pystyt muokkaamaan koodia ilman sudoa ja saat uuden version käyttöön käynnistämättä Apachea uudelleen. ('touch foo.wsgi').
  • c) Lisää tuotanto-Flaskiin muotit (templates).
  • d) Sun IP. Tee Flask-sivu, jolla näkyy tietoja käyttäjästä. Esimerkiksi request.user_agent.string, request.remote_addr. Muista "from flask import request".
  • e) Vapaaehtoinen. Tee palvelinohjelma, joka laskee jotain käyttäjän antamista luvuista. Painoindeksi, tonttunimesi, pisteytys salasanallesi tms. Tässä tarvitaan lomakkeita (forms) ja POST-pyyntöjen lukemista.
  • x) Propellivaihtoehto, vapaaehtoinen, korvaa muut kohdat. Julkaise hyödyllinen Flask-ohjelma, joka käyttää tietokantaa ja lomakkeita. Hyöty voi olla pienikin, mutta ohjelman tulee tehdä jotain järkevää. (OK: äänestä paras kissankuva, ilmoittaudu arpajaisiin, nallekarhujen lainausjärjestelmä. Ei käy: lue esimerkkitietueita foo ja bar tietokannasta.) Hauskaa koodailua!

Toteuttaminen
Otamme esimerkit ja ohjeet Tero Karvisen web-sivulta:
http://terokarvinen.com/2017/hello-python-flask-web-app-development-server-install-on-ubuntu-16-04/index.html

Asennetaan python3-flask:
Luodaan kansio publicFlask/ ja siellä tiedosto main.py

Käynnistämällä saamme valmis palvelin "host" osoitteessa 127.0.0.1 portissa 5000.
Palvelin osaa käsitellä HTTP GET pyynnöt ja vastata tyksinkertäisen HTML sivun kanssa.
Konsolin GET pyyntö:
Selaimen GET pyyntö:


Asennetaan Apache2 ja vaihdetaan oletussivun yksinkertäisen teksti ilmoitukseen:
sudo apt-get update
sudo apt-get -y install apache2
echo "Learn Apache with Tero Karvinen" | sudo tee /var/www/html/index.html

Toimii sekä konsolissa että selaimella.

Luodaan uuden käyttäjän bfy466wsgi jokä käytetään meidän uudella asennuksella.

Olen törmännyt ongelmaan: moi.conf näyttää siltä
Mutta Apache2 ei suostui käynnistää uudelleen ja ei toimii silti.
Suoritin
sudo apt-get -y install libapache2-mod-wsgi-py3
mutta ei auttoi.

Valitettavasti en pystynyt ratkaistaa sen.

08.03.2021 UPDATE
Olen löyttänyt vian:
Piti suorittaa komento:
sudo a2enmod wsgi

Sen jälkeen Apache suostui käynnistää uudelleen ja Configtest meni ohi.
Ratkaisu löytyi tästä:

Nyt sain 403 Forbidden...
Voimme nyt luoda vastaav kansio ja määritellä "terowsgi" käyttäjän oikeudet:
"tero.wsgi" ja "hello.py" failien luomisen jälkeen saamme seuraava:

Samalta näyttää Firefoxin sivu:










Muistiinpanojen yhteenveto