Istället för att dela upp det jag skriver på flera olika webbplatser (kursböcker) har jag bestämt mig för att samla det här. Det här är alltså en introduktionspost till det du behöver för att kunna arbeta med kursen webbserverprogrammering (i min regi).

För kursen Webbserverprogrammering 1 på gymnasienivå har jag valt tekniken, eller stacken, Node, Mysql och WSL. Jag anser att den är relevant och bra plattform att utgå ifrån. Den här stacken har även fördelen att använda javascript backend, för då använder vi samma programmeringsspråk som för frontend. Hosting, som sista pusselbit, gör vi med molntjänster.

Det här en introduktion till de olika delarna du behöver förbereda för att kunna arbeta med kursen. Här hittar du installationsinstruktioner, länkar och exempel.

Windows Subsystem for Linux

WSL låter oss köra Linux under Windows. Det är i min mening helt fantastiskt och med det slipper vi dual-boot och massa annan ondska. Det är enkelt och smidigt (värdeord, relativt i sammanhanget, för alternativen är mer komplexa) och ger dig tillgång till bash i en terminal under Windows. Med WSL2 går det även att köra grafiska program om du så önskar.

Att kunna åtminstone lite bash och kunna arbeta i terminalen är viktigt för att arbeta med kod anser jag. Det ger en ökad förståelse för datorns struktur, kommandon och funktion. Med WSL kan du välja vilken Linux dist du vill köra, men till att börja med rekommenderar jag Ubuntu (finns i Microsoft store).

Innan du kör igång så se till att du har kört windows update, startat om och repeterat detta ett antal gånger.

När du installerar WSL/Ubuntu så var noga när du skapar en användare, glöm inte bort att sätta ett lösenord (som du kommer ihåg).

Du kan nu med fördel även passa på att installera Windows terminal, som är ett mycket trevligare alternativ än windows standard-terminal.

När installationen är slutförd så behöver du uppdatera din dist (tänk windows update), kör du Ubuntu så använder du följande kommandon i terminalen.

sudo apt update
sudo apt upgrade

I bash kan du sedan skapa en code mapp där du kan spara dina projekt.

cd
mkdir code
cd code
ls -la

Skärmdump av WSL

Några användbara bash kommandon

KommandoBeskrivning
sudo KOMMANDOKör kommando som superuser
lsListar innehållet i en mapp, -la för att se allt
cd MAPPGår till en annan mapp, enbart cd tar dig till din /home mapp
mkdir MAPPSkapar en ny mapp
touch FILSkapar en fil
rm FIL/MAPPTar bort en fil, ska du ta bort en mapp med filer lägg till -rf, recursive force
cp FIL DESTKopierar en fil till angiven destination
mv FIL DESTFlyttar en fil till angiven destination
cat FILLäser en fil och skriver ut den
historyListar historik, du kan seadan köra kommandot från historiken med !nummer

Nodejs

Node är en javascript runtime byggd på Chrome V8s javascript motor. Med ramverket Express blir Node den webbserver (för utveckling) vi använder. Tillsammans med Node så kommer vi att använda oss av Node packet manager (npm). NPM är en populär pakethanterare för javascript-utveckling och ett viktigt verktyg att känna till och kunna använda.

För att installera och köra Node samt NPM så använder vi oss utan Node Version Manager(nvm).

MySQL

För att arbeta med databas så använder vi MySQL. SQL är ett språk för relationsdatabaser, MySQL är en hanterare för detta. Vi använder SQL som databasspråk för att det är en introduktion till databaser och hur de fungerar. Vi kör MySQL för att det är en av de vanligaste databashanterarna.

MySQL körs med en server på din eller en annan dator. Du kan sedan använda en klient för att koppla upp dig till databasservern. FÖr att installera MySQL server och klient kör.

sudo apt install mysql-server mysql-client

WSL verkar inte starta upp MySQL servern korrekt när det startas, för att starta om/upp servern använder du följande kommando. Om det inte fungerar, testa att starta om din dator och prova sedan igen.

sudo service mysql restart

Med servern igång kan du skapa en databasanvändare för den. Detta måste göras som superuser (säkerhet). För att skapa en användare behöver du koppla upp dig till databasservern från användaren root, för att göra det kör du kommandot som sudo.

sudo mysql -u root

Skärmdump av MySQL-klienten

Väl inne i MySQL klienten så behöver du skapa en användare. Kör du följande kommando för att skapa en user med alla rättigheter, det är en fungerande lösning för lokal utveckling, men inte att rekommendera i en produktionsmiljö. Kom ihåg att byta ut username och password.

CREATE USER 'username'@'localhost' IDENTIFIED BY 'password';
GRANT ALL PRIVILEGES ON *.* TO 'username'@'localhost';
FLUSH PRIVILEGES;

Vi kommer senare att gå igenom vad dessa kommandon faktiskt gör i SQL.

När du skapat användaren så avsluta med exit. Du kan nu ansluta till databasen igen med din skapade användare.

mysql -u USERNAME -p

Väl inne i klienten så kan du prova att skapa en databas för kursen. Om det fungerar så svara klienten med QUERY OK. Du kan sedan välja att visa en lista över dina databaser på servern med kommandot SHOW.

CREATE DATABASE webbserver;
SHOW databases;

Avslutning

Förhoppningsvis har all installation gått bra och du har nu en fungerande utvecklarmiljö. Om något har strulat så hoppas jag att du har läst felmeddelanden, upprepat och läst texterna för att hitta vad du har missat.

Fortsättning följer.