Deze omgeving maakt een database server en een web server aan gebaseerd op Docker. Bij het opstarten van de omgeving wordt automatisch een aantal databases aangemaakt en gevuld met voorbeelddata.
Let op, deze omgeving is specifiek bedoeld als educatieve omgeving. Deze omgeving kan niet gebruikt worden voor productie-omgevingen, hiervoor zullen eerst nog een groot aantal beveilingsaspecten opgelost moeten worden (wachtwoorden zijn eenvoudig te achterhalen, er wordt gebruik gemaakt van de Built-in web server, er is altijd een debugger actief etc. etc.).
❗Mocht je op een ARM machine zitten (zoals de nieuwe M1-chips van Apple) dan moet je een aantal dingen wijzigen in de setup. Zie ARM ondersteuning
De volgende software heb je nodig:
Installeer Docker: https://www.docker.com/get-started. Voor zowel Windows, Mac als Linux zijn er installaties beschikbaar.
Installeer Visual Studio Code: https://code.visualstudio.com/ Waarschijnlijk heb je deze al geïnstalleerd en gebruik je die al om je HTML-pagina's te maken.
Bij de eerste keer opstarten van de omgeving worden er veel bestanden gedownload en duurt het even voordat alles klaar is.
Clone of download de volledige repository van deze omgeving naar je lokale machine.
Als je gebruik maakt van GitHub Desktop, klik in de Github-repo op 'Open with GitHub Desktop'.
Open met Visual Studio Code de map waarin je repository hebt gecloned. Met GitHub Desktop: klik op 'Open with Visual Studio Code'.
Onderin Visual Studio Code zou een terminal open moeten staan. Als dit niet het geval is, kies in het menu van Visual Studio Code onder Terminal de optie New terminal.
Type in de terminal docker compose up
en daarna enter.
Nu worden een database server en een web server aangemaakt. Daarna worden beide servers opgestart en de databases worden automatisch aangemaakt en gevuld. Tijdens dit proces zie je een behoorlijk aantal meldingen voorbij komen.
Soms krijg je bij stap 18/19 een foutmelding ERROR [18/19] RUN pecl
install pdo_sqlsrv. De installatie haalt bestanden van het internet
af, de server die bij deze stap hoort wil nog wel een offline zijn.
Wacht een paar minuten en probeer nog eens. Lukt het na enige keren nog
niet, maak dan de cache leeg m.b.t. docker system prune -f
.
Uiteindelijk moet de volgende melding in beeld verschijnen
-------------------------------------------------------
Available databases: -
- movies
- GelreAirport
- muziekschool
webserver starting
-------------------------------------------------------
[Wed Nov 24 09:00:02 2021] PHP 7.4.26 Development Server (http://0.0.0.0:80) started
Zoiets als
Test de webserver:
- It works!: http://localhost:8080 of http://localhost:8080/index.php
- phpinfo: http://localhost:8080/phpinfo.php
- Data uit de database: http://localhost:8080/componist-aantalstukken.php
De bestanden die de webserver gebruikt staan in de map ./applicatie/
,
hier moet je je beroepsproduct in uitwerken.
Maak een nieuw bestand aan in de map ./applicatie/
en noem deze
test.php
. Open dit bestand met Visual Studio Code en voeg de volgende
code toe:
<?php
echo ('Hallo **je eigen naam**');
?>
Roep de test.php
in je webbrowser (op de localhost:8080). Als het goed
is zie je de melding Hallo, **je eigen naam** verschijnen.
Kopieer al je HTML-bestanden naar de map ./applicatie/
en verander van
elke bestand de extensie naar .php
. Roep als test alle bestanden aan
via je browser. Maak nu je web-applicatie zodanig dat deze optimaal van
opzet is en dat de gegevens in de site uit de database gehaald worden.
Zie de lesstof hoe je dat allemaal doet.
Tip: in het bestand componist-aantalstukken.php
(in combinatie met
db_connectie.php
) kun je een voorbeeld zien hoe je verbinding maakt
met een database en gegevens in een webpagina plaatst.
In het bestand variables.env staan de connectiegegevens voor de database (de user is 'sa').
DB_HOST="...."
SA_PASSWORD="...."
Als je een melding krijgt dat de pagina niet bereikbaar is
- Controleer in de URL of je http://localhost:8080 correct gespeld hebt.
- Controleer of je in de URL het bestandsnaam (met .php) correct gespeld hebt.
- Controleer of Docker opgestart is.
- Controleer of de servers opgestart zijn (type in de VS-code terminal
docker compose ls -a
daar moet je docker-omgeving staan met als status running(2)). - Reboot je machine.
Als je de melding error during connect: This error may indicate that the docker daemon is not running. dan heb je docker niet opgestart. Start Docker op of reboot je machine.
Heb je een te oude computer, dan kan je dit dialoogvenster krijgen:
Zodra je Docker geïnstalleerd hebt kan je nog enkele waarschuwingen krijgen over WSL 2 (Windows Subsystem for Linux 2). WSL 2 is een extra onderdeel voor Windows waarmee Docker, Linux en andere technologieën efficiënt kunnen werken binnen Windows.
Als je een bericht krijgt dat WSL 2 niet geïnstalleerd is, volg dan de instructies op om WSL 2 wèl te installeren.
Daarna kan je onder andere nog de volgende melding krijgen:
Please click the link and follow the instructions to install the kernel update: ...
Installeer de kernel update zoals gevraagd.
Herstart je computer.
Mocht je nog steeds problemen hebben tijdens of direct na de installatie van Docker Desktop, bestudeer dan de instructies van Docker Inc. onder het kopje Virtualization, alleen die onder de subkopjes 'VIRTUALIZATION MUST BE ENABLED' en 'WSL 2 AND WINDOWS HOME'.
Op een machine die geen x86 architectuur heeft (zoals de M1-chips van Apple) moet je iets wijzigen in de file docker-compose.yml.
Namelijk de image
van de database_server:
Waar nu staat:
version: "3.8"
services:
database_server:
image: mcr.microsoft.com/mssql/server
env_file:
- variables.env
...
Vervang je de regel:
image: mcr.microsoft.com/mssql/server
naar -> image: mcr.microsoft.com/azure-sql-edge
Probeer nu opnieuw docker-compose up
vanuit je terminal te draaien.
Met een debugger is het mogelijk om stapsgewijs door je code heen te lopen om zo fouten op te kunnen sporen. Het is een handig hulpmiddel om te bekijken wat de code nu precies doet. Deze omgeving is zo ingericht dat er ee n debugger actief is, je hebt alleen een extra extensie nodig. De PHP Debug van Felix Becker dien je te installeren.
Open aan de linkerkant van Visual Studio Code de extensions en zoek op felixfbecker.php-debug. Klik op install en wacht tot deze debugger is geïnstalleerd. Bij het opstarten
Hieronder twee filmpjes die aangeven hoe je een PHP-pagina kunt debuggen.