Hur man skapar en virtuell webbutvecklingsmiljö och server

Hur man skapar en virtuell webbutvecklingsmiljö och server / Programmering

Windows och Mac OSX har gjort framsteg som utvecklingsvänliga operativsystem under de senaste åren, men varje webbutvecklare behöver verkligen arbeta i den ursprungliga miljön på webben, Linux.

Den här artikeln visar hur du får det bästa av båda världarna: klistra på ett stabilt och konsumentvänligt operativsystem som Windows eller OSX för dina dagliga behov, samtidigt som du ökar fördelarna med att utvecklas i samma ekosystem som din produktionskod.

Introduktion

Mycket av webben körs på vad utvecklare kallar en “LAMP-stapel.” Denna akronym betyder Linux, Apache, MySQL, PHP som är buntade ihop och fungerar som vad du vanligtvis förstår som en webbserver. (En nära relaterad stack - eller uppsättning tekniker - är “LEMP,” med “E” härledd från uttalet av ett alternativ till Apache, Nginx, vilket sägs “motor x.”)

Du kanske märker att Linux ingår uttryckligen här, men det är inte bara av den anledningen att Linux rekommenderas av utvecklare. Den andra tekniken - Apache (eller Nginx), MySQL och PHP - alla har olika verktyg och implementeringar tillgängliga för de olika plattformarna, men av historiska och tekniska skäl dominerar Linuxbaserade konfigurationer serverns utrymme och tenderar att vara mer förutsägbara.

Förutsägbarhet och tillförlitlighet är också stora orsaker du vill utveckla på ett operativsystem som du använder enbart för det ändamålet - ett dedikerat operativsystem i stället för en som stöder de många aktiviteter som du utför dagligen som webbutvecklare. Sätt på ett annat sätt, du vill inte köra en server på samma operativsystem, du måste starta om när dina nya grafikkort är installerade eller en maskin som du måste packa upp och sätta i en ryggsäck för att träffa väg med. Att involvera processerna och programvaran som behövs för att köra en server på din blandade maskin är i ett ord rotigt.

Så hur balanserar du din förmåga att multi-uppgift med ditt behov att utvecklas i ditt apps inhemska sammanhang?

Ange virtuella maskiner Vad är en virtuell maskin? Allt du behöver veta Vad är en virtuell maskin? Allt du behöver veta Virtuella maskiner kan du köra andra operativsystem på din nuvarande dator. Här är vad du borde veta om dem. Läs mer .

Virtuella maskiner och vagrant

Virtuella maskiner är program som körs i ditt primära operativsystem. De låter dig effektivt köra ett helt separat operativsystem inuti ett fönster, helt innehållet och bortsett från vad som helst som händer med din fysiska maskin, men på bekostnad av vissa omkostnader.

Men fördelarna är många:

  • Gör ett misstag när du installerar, konfigurerar eller tar bort programvara? Inte så mycket, du kan helt enkelt börja med en ny bild.
  • Har ditt experiment misslyckats och fryst operativsystemet runtom det? Återigen, inte ett problem eftersom bara den virtuella maskinen sker.
  • Behöver du iterera i lite olika förhållanden? Varje uppsättning villkor, som olika mjukvaruversioner eller olika programvaror (till exempel Apache versus Nginx) kan bli en separat mjukvaruapparat eller virtuell mjukvara “låda.”

Ett verktyg som heter Vagrant hjälper dig att distribuera “baslådor” som innehåller förkonfigurerade Linux operativsystem i en mängd olika smaker.

Den här artikeln förutsätter att du har lite bekvämlighet med att använda en virtuell maskin utan en GUI, och enbart via ett kommandoradsgränssnitt (CLI).

Låt oss få en virtuell maskinleverantör och Vagrant innan vi konfigurerar en baslåda.

  1. Se till att du har en virtuell maskinleverantör för ditt operativsystem. Både Windows och Mac OSX kan använda Virtual Box. VMware körs också på båda plattformarna. (Windows 10 Pro och upp kan använda Hyper V Är en Windows 10 Pro-uppgradering värt $ 99? Är en Windows 10 Pro-uppgradering värt $ 99? Windows 10 Pro erbjuder fler funktioner, men bär också en prislapp på 99 $ för att uppgradera från Home Edition. vad du behöver veta för att bestämma om professionella funktioner är värda uppgraderingen. Läs mer, vilket är ett steg upp eftersom det bättre utnyttjar maskinvara.)
  2. Besök Vagrantup.com och välj ett lämpligt installationsprogram.
  3. Skapa en ny mapp för att hylla lådan i din lokala katalogstruktur. (Platser som är underordnade din användarprofil fungerar bra, platser i systemkataloger brukar inte.)

Webutvecklingsmiljökonfigurationen

Här är den automatiska magiken: ett verktyg som kallas PuPHPet kondenserar och GUI-fies processen att välja och konfigurera programvara som vanligen används i LAMP, och går även utöver det genom att lägga till stöd för språk på serversidan som Ruby och Node.js. Vad är Node.JS och varför ska jag bry sig? [Webbutveckling] Vad är Node.JS och varför ska jag bry sig? [Webbutveckling] JavaScript är ett helt enkelt programmeringsspråk för klientsidor som körs i webbläsaren, eller hur? Inte längre. Node.js är ett sätt att köra JavaScript på servern; men det är så mycket mer också. Om ... Läs mer (tekniskt JavaScript är inte rent server-sida, men denna sort är) och alternativ till de övriga komponenterna i LAMP-stacken.

PuPHPet gör baskonfigurationsfiler för Vagrant. Guiden innehåller över tjugo olika dimensioner för att konfigurera, så jag går bara över några av de mest framträdande.

  • Distributionsmål - Här kan du välja om du vill skapa en bild som är lämplig för VirtualBox, VMWare och liknande, eller en som är lämplig för cloud computing-infrastruktur som AWS eller Digital Ocean, bland andra.
  • System> Paket - Du kan inkludera någon programvara här som du skulle installera som du skulle på en vanlig installation. I synnerhet bör du inkludera vilket paket du använder för utveckling som ingår i basen av operativsystemet.
    • För att inkludera utvecklingsberoende för Ubuntu, specificera Build-väsentliga
    • För att inkludera detsamma för CentOS 7, specificera "Utvecklings verktyg"
  • Webbservrar - Välj Apache eller Nginx för att bilda ryggraden i din L (A | E) MP-stack.
  • språk - PHP, Ruby, Node.js, Python.
  • databaser - Kanske är en av de mest attraktiva funktionerna i detta tillvägagångssätt möjligheten att konstruera virtuella maskiner för att spela med de olika typerna av databaser som finns tillgängliga. Medan MySQL är en standard kanske du vill spela med något nyare som MariaDB Open Source Software och Forking: The Good, The Great och The Ugly Open Source Software och Forking: The Good, The Great and The Ugly Sometimes slutanvändaren gynnar mycket av gafflar. Ibland görs gaffeln under ett ludd av vrede, hat och fiendskap. Låt oss titta på några exempel. Läs mer .
  • Resten av alternativen är något exotisk, och om du inte vet vad de är, kan de alltid installeras senare. Vad du har är trots allt ett fullt fungerande operativsystem på ditt kommando.

PuPHPet kommer i slutet av denna konfigurationsresa att producera ett arkiv. Unzip det till katalogen du skapade innan du konfigurerar parametrarna för din nya server.

Gör nu följande:

$ vagrant upp

Och observera resultaten:

Eftersom du inte har basfältet i din lokala katalog kommer vagrant att hämta bilden från Atlasen, ett förråd av förkonfigurerade vagrantlådor.

(Tekniskt sett kan någon av dessa läggas till din lokala maskin genom att utfärda kommandot: $ vagrant box lägg till USER / BOX)

Avslutar

Vid denna tid startas din VM och du är i princip online. Bara en sak kvarstår: utfärda kommandot $ vagrant ssh att släppa dig in i en riktig SSH-session med din (huvudlös) VM som fungerar som en LAMP-server. Grattis!

Läs mer

Härifrån finns det mer att säga om och göra i Vagrant och, som ni vet, ett obegränsat belopp för att uppnå med din egen utvecklingslekplats. Kolla in den officiella Komma igångsguiden för att plocka upp var jag slutade.

Har du någonsin använt en VM för din egen utvecklingsmiljö? Användte du den här inställningen eller tog du ett annat tillvägagångssätt? Dela dina idéer i kommentarfältet nedan!

Utforska mer om: Virtual Machine, VirtualBox, Webbutveckling, webbserver.