- Kursmaterial
- Planering
- Arbete
- Kunskapsdokument
- Tutorials
- Applikationer
- Andra kurser
- Om Kursolle
Kunskapsdokument - Webbserver
En webbserver används för att visa dynamiska hemsidor. En dynamisk hemsida bygger på ett script som kan hämta information från exempelvis en databas, processa detta data till html-kod som sedan visas upp hemsidan.
Client-Server Ecosystem

Bild: Client-Server Ecosystem – av Virtualmv (M. Verhaart), källa: https://wikieducator.org/File:2013vmvClientServer.png, licens: CC BY-SA 3.0 Inga ändringar.
Vad händer när du anropar en PHP-sida?
- Eleven skriver in adressen i webbläsaren,
https://kursolle.se/test/index.php
. Webbläsaren skickar en förfrågan (request) till webbservern. - Förfrågan når webbservern. Servern ser att filen har ändelsen `.php` och skickar därför förfrågan vidare till **PHP-tolken** i stället för att bara returnera filen direkt.
- PHP-tolken kör igenom koden och läser filen rad för rad. All kod mellan
<?php ... ?>
körs på servern. Resultatet av koden kan bli t.ex. HTML, text, eller data hämtad från en databas. - Resultatet blir ren HTML. När PHP-tolken är klar skickas bara det färdiga resultatet tillbaka till webbservern. Eventuell PHP-kod syns inte längre – den har redan körts.
- Webbservern skickar svaret tillbaka till webbläsaren. Webbläsaren får nu ett svar som består av vanlig HTML (samt ev. CSS och JavaScript som länkas in).
- Webbläsaren tolkar HTML och visar sidan. Det är detta som eleven ser: en färdig webbsida, utan att kunna se själva PHP-koden som kördes på servern.
Det är viktigt att förstå att;
- PHP körs på servern – aldrig i webbläsaren.
- HTML, CSS och JavaScript körs i webbläsaren – det är det som faktiskt levereras till eleven.
Lokal miljö
De allra flesta utvecklar hemsidor på den lokala datorn och då är det skönt att kunna utveckla även dynamiska sidor på den lokala datorn. För att detta skall vara möjligt så behöver du installera en webbserver.
En webbserver består av flera olika delar, en databasserver, en applikation som tar hand om kommunikationen mellan de olika delarna inom webbservern och sedan den delen som gör om den dynamiska sidans kod till html-kod. Denna delen är olika beroende på vilket scriptspråk som används.
I denna kurs rekommenderar jag att vi använder paketet MAMP för Windows då jag för tillfället tycker att den är smidigast att komma igång med. Tidigare har jag rekommenderat XAMPP för Windows men under 2024 så kraschade den oförklarligt för flera elever, och mig, och då försvann också deras databaser. Det finns också möjligheten att använda WAMP-server men jag tycker att den blivis svårare att komma igång med.
XAMPP fungerar på alla operativsystem men kör du Mac OS som operativsystem så skulle jag rekomendera MAMP.
Om namnen på de färdiga paketen ser konstiga ut så byggs de upp på följande sätt;
- Först operativsystemets namn, Windows (w), macOS (m), Linux (l), X står för att paketet är anpassat för alla operativsystem, även om det är olika installationsfiler för varje operativsystem.
- Sedan kommer själva webbservern som tar hand om alla kommunikation och där står A för Apache.
- Sedan namnges databasen som installeras med paketet, där är det M som gäller och det står för MySQL och/eller MariaDB. MariaDB är en variant av MySQL som har utvecklats parallellt sedan några år tillbaka.
- Slutligen så anges namnet på det programmeringsspråk/tolk som ingår i paketet. P står för PHP och i XAMPP så står det andra P:et för Perl vilket då gör att det är möjligt att även använda detta programmeringsspråk.
Om du inte vill installera ett paket så går det att installera varje del för sig, detta kräver dock att du måste anpassa dessa tre servrar i förhållande till varandra och detta kan ibland vara lite trixigt. Det är helt enkelt inte värt det om du inte är en väldigt avancerad användare.
Min rekommendation 2025 är att köra MAMP oavsett om du utvecklar i Windows eller macOS.
Installation av MAMP for Windows
Tyvärr har jag ingen guide till detta men senast jag gjorde installationen så innebar det inga problem vad jag kan minnas. Starta sedan upp MAMP.
Konfiguration av MAMP
Här kommer jag gå igenom MAMP och visa hur du konfigurerar de saker som behöver konfigureras.
MAMPs kontrollpanel

Här ser du vilka servrar som just nu är igång, de är markerade med en grön fylld cirkel. Om någon av servrarna kraschar så syns det tyligast här och sedan kan du enkelt klicka på startknappen för att stänga av och sätta igång servrarna.
Välj MAMP -> Preferences...
för att komma in i inställningsvyn.
Start/Stop

Här ställer du bl.a. in om du vill att MAMP skall startas/avslutas automatiskt.
Ports

Här väljer du vilka portar som skall användas av MAMP. Rekommendationen är att inte ändra här om det inte behövs. Det kan förekomma portkonflikter med andra applikationer och då kan det vara läge att ändra.
PHP

Här väljer du version av PHP samt hur eventuell cache skall hanteras. Cachen brukar inte vålla oss några problem. PHP-version kan vara lämplig att ha samma som på produktionsservern om vi jobbar med specifika funktioner som finss/inte finns på vissa versioner. För de flesta elever så behöver inte detta ändras.
Server

Här ställer vi in webbroot/dokumentroot till den mapp som vi vill att MAMP skall ha som startmapp för våra PHP-filer.
WebStart page

Genom att i MAMPs kontrollpanel klicka på Open WebStart page
så kommer vi till denna sidan. Här kan vi se våra servrars inställningar och vi kan också komma åt vissa verktyg kopplade till webbservern.
Klicka på PHPINFO
.
PHPINFO

Leta efter Loaded Configuration File
och öppna den filen i din IDE (Visual Studio Code).
php.ini

Leta efter raden med display_errors = off
och ändra denna till display_errors = on
. Spara sedan filen och starta om MAMPs servrar.
Nu kommer du se eventuella error utskrivna i webbläsaren istället för att endast få se en vit sida utan info.