Server¶
In jullie project moeten jullie gaan werken met een relationele database. Om vervolgens data vanuit je embedded systeem in je database te krijgen heb je hoogstwaarschijnlijk ook een web-API nodig.
Een mogelijke structuur hiervoor zou kunnen zijn:
graph
subgraph System Architecture
ED[Embedded Systeem]
ED <--?--> Client[Web browser]
Client <--HTTP-->Server
Server[Web-API]
Server <--MySQL--> DB
DB[Database]
end
Je database, en waarschijnlijk je website, moeten ergens aangeboden worden als een service zodat je hierbij kan vanaf je embedded systeem; dit is vaak bij een dienstverlener in de cloud, maar voor dit project kan je dit ook op je eigen computer draaien. Om dat te kunnen doen heb je een server nodig, dat is precies waar we jouw eigen laptop voor gaan gebruiken.
Services¶
Binnen dit project kan je gebruik maken van verschillende services, wij bieden er graag een aantal aan die je een kickstart kunnen geven. Hieronder een overzicht van de services die je kan gebruiken:
Service | Toepassing |
---|---|
MariaDB | MariaDB is een stuk software wat als dienst kan voorzien in een relationele database. Het draait dus als een service, ook wel een server, waar je vervolgens zelf de database op kan inrichten. Met MariaDB kan je gebruik maken van MySQL om je database te bekijken, te bewerken en te beheren. |
PHP | PHP is een programmeertaal die vaak gebruikt wordt om dynamische webpagina’s te genereren. In dit project kan je PHP gebruiken om een web-API te maken die data vanuit je embedded systeem in je database kan zetten. Wij raden PHP aan omdat dit een makkelijke taal is om mee te beginnen en omdat je snel kan prototypen. |
PhpMyAdmin | PhpMyAdmin is een webapplicatie die je kan gebruiken om je MariaDB database te beheren. Met PhpMyAdmin kan je tabellen aanmaken, data invoeren, data bekijken en data verwijderen. |
Nginx | Nginx (spreek uit: “Engine X”) is een webserver applciatie en stelt PHP in staat om HTML pagina’s te genereren en door te sturen naar een webbrowser |
Om deze services te kunnen gebruiken moet je ze eerst installeren en vervolgens configureren, om dit makkelijker te maken hebben wij dit voor jou voorbereid door gebruik te maken van Docker.
Docker¶
In het project van blok 2 zit een configuratie waarmee je relatief makkelijk gebruik kan maken van de services die we hierboven hebben genoemd. Dit doen we door gebruik te maken van Docker, een container platform waarmee je makkelijk services kan draaien zonder dat je deze op je eigen computer hoeft te installeren en configureren.
Om het te kunnen gebruiken hoef je nog niet alles te weten over Docker, maar het is wel handig om uiteindelijk te begrijpen wat het doet en hoe het werkt.
Voorbereiding¶
Om gebruik te kunnen maken van de Docker containers (zo noemen we de services die we draaien met Docker) is het belangrijk om eerst de juiste voorbereidingen te treffen.
- Zorg ervoor dat je Docker Desktop hebt geïnstalleerd op je computer. Dit kan je downloaden vanaf de Docker website.
- De installatie van Docker Desktop neemt je mee in het installeren van Docker zelf.
- In het bestand
.env
kan je instellingen wijzigen om de services te configureren. Dit bestand staat in de root van je project.- In dit bestand kan je de poorten aanpassen waarop de services draaien en een wachtwoord instellen voor je database toegang.
- Zorg ervoor dat er geen andere services zijn die gebruik maken van de poorten die je in de
.env
hebt ingesteld. Mocht dat wel zo zijn dan moet je de andere services stoppen.
Services starten¶
In het project staat in het docker-compose.yml
bestand hoe de services gebouwd moeten worden. Om dit te kunnen doen moet je de volgende stappen uitvoeren:
- Open een terminal in de root van je project.
- Vanuit Visual Studio Code kan je dit doen door in de menubalk te kiezen voor
Terminal
>New Terminal
. Je zit dan meteen in de juiste map.
- Vanuit Visual Studio Code kan je dit doen door in de menubalk te kiezen voor
- Voer het volgende commando uit om de services te starten:
- Dit commando zorgt ervoor dat Docker de services gaat starten. Dit kan even duren, maar als het goed is zie je in je terminal dat de services worden opgestart.
- Het argument
-d
zorgt ervoor dat de services in de achtergrond worden gestart, als je dan Visual Studio Code sluit blijft de service draaien.
- Open nu Docker Desktop om te zien of je daadwerkelijk de services hebt draaien.
Let op: poorten
MariaDB en Nginx zijn beiden via het netwerk te bereiken. Nginx via een browser en MariaDB met MySQLWorkBench. Hiertoe moeten deze applicaties beschikking hebben over de poorten (zie knowledgebase: poorten) 80
(voor Nginx) en 3306
(voor MariaDB). Het kan zijn dat je al een applicatie draaien hebt die van deze poorten gebruik maken. Spoor in dat geval deze applicatie op en sluit ze af of zorg dat ze van een andere poort gebruik maken.
Services gebruiken¶
De services hebben allemaal verschillende manieren om deze te benaderen, hieronder staat per service uitgelegd hoe dit werkt.
Toepassing | Gebruiken |
---|---|
Webserver | Om te zien of je webserver correct is opgestart moet je in je webbrowser naar het adres: http://localhost/ gaan. |
Database | MariaDB heeft uit zichzelf geen grafische interface om je databases te zien, daarvoor heb je de tool Phpmyadmin mee-geleverd gekregen. Deze kan je benaderen door in je webbrowser naar het adres: http://localhost/phpmyadmin te gaan. Om in te loggen gebruik je de volgende gegevens: gebruikersnaam : root wachtwoord : [wachtwoord uit .env bestand] |