Hvordan lage en virtuell webutvikling miljø og server
Windows og Mac OSX har gjort fremskritt som utvikler-vennlig OSer de siste årene, men hver webutvikler trenger virkelig å jobbe i det opprinnelige miljøet på nettet, Linux.
Denne artikkelen vil vise deg hvordan du får det beste fra begge verdener: stikker med et stabilt og brukervennlig OS som Windows eller OSX for dine daglige behov, mens du høster fordelene med å utvikle seg i samme økosystem som din produksjonskode.
Introduksjon
Mye av nettet kjører på hvilke utviklere som kaller en “LAMP-stabel.” Dette akronymet betyr Linux, Apache, MySQL, PHP samlet sammen og fungerer som det du vanligvis forstår som en webserver. (En nært knyttet stabel - eller sett med teknologier - er “LEMP,” med “E” avledet fra uttalen av et alternativ til Apache, Nginx, som sies “motor x.”)
Du kan legge merke til at Linux er eksplisitt inkludert her, men det er ikke bare av denne grunn at Linux anbefales av utviklere. De andre teknologiene - Apache (eller Nginx), MySQL og PHP - har alle forskjellige verktøy og implementeringer tilgjengelig for de forskjellige plattformene, men av historiske og tekniske grunner dominerer Linuxbaserte konfigurasjoner serverplassen og har en tendens til å være mer forutsigbar.
Forutsigbarhet og pålitelighet er også store grunner du vil utvikle på et operativsystem som du bruker utelukkende til det formålet - et dedikert operativsystem i stedet for en som støtter det mylder av oppgaver du utfører daglig som webutvikler. Sett på en annen måte, du vil ikke kjøre en server på samme operativsystem du må starte om når de nye grafikkdriverne er installert, eller en maskin som du må pakke opp og sette i en ryggsekk for å treffe veien med. Involvering av prosessene og programvaren som trengs for å kjøre en server på din blandede bruk-maskin er i et ord rotete.
Så hvordan balanserer du din evne til å oppgave med flere oppgaver, med behovet for å utvikle seg i den innfødte konteksten til appene dine?
Skriv inn virtuelle maskiner Hva er en virtuell maskin? Alt du trenger å vite Hva er en virtuell maskin? Alt du trenger å vite Virtuelle maskiner lar deg kjøre andre operativsystemer på din nåværende datamaskin. Her er hva du bør vite om dem. Les mer .
Virtuelle maskiner og vagrant
Virtuelle maskiner er programmer som kjører i ditt primære operativsystem. De gir deg effektivt mulighet til å kjøre et helt eget operativsystem inne i et vindu, helt inneholdt og bortsett fra hva annet skjer med din fysiske maskin, men på bekostning av noen overhead.
Fordelene er imidlertid mange:
- Gjør en feil når du installerer, konfigurerer eller fjerner programvare? No big deal, du kan bare starte på nytt med et nytt bilde.
- Har eksperimentet ditt katastrofalt mislyktes og frosset operativsystemet rundt det? Igjen, ikke et problem fordi bare den virtuelle maskinen utføres.
- Trenger du å iterere i litt forskjellige forhold? Hvert sett av forhold, som forskjellige programvareversjoner eller annen programvare (for eksempel ved hjelp av Apache versus Nginx), kan bli en egen programvaremaskin eller virtuell programvare “eske.”
Et verktøy som heter Vagrant, vil hjelpe deg med å distribuere “base bokser” som inneholder forhåndskonfigurerte Linux-operativsystemer i en rekke smaker.
Denne artikkelen antar at du har litt trøst med å drive en virtuell maskin uten en GUI, og bare ved et kommandolinjegrensesnitt (CLI).
La oss få en virtuell maskinleverandør og Vagrant før vi konfigurerer en baseboks.
- Kontroller at du har en virtuell maskinleverandør for ditt operativsystem. Både Windows og Mac OSX kan bruke Virtual Box. VMware kjører også på begge plattformer. (Windows 10 Pro og opp kan bruke Hyper V Er en Windows 10 Pro oppgradering verdt $ 99? Er en Windows 10 Pro oppgradering verdt $ 99? Windows 10 Pro tilbyr flere funksjoner, men har også en pris på $ 99 for å oppgradere fra Home Edition. hva du trenger å vite for å bestemme om profesjonelle funksjoner er verdt oppgraderingen. Les mer, noe som er et steg opp fordi det bedre utnytter maskinvare.)
- Besøk Vagrantup.com og velg et passende installasjonsprogram.
- I din lokale katalogtreet struktur, lage en ny mappe for å huse boksen. (Steder underlagt brukerprofilen fungerer bra, ikke steder i systemkataloger vanligvis ikke.)
Webutviklingsmiljøkonfigurasjonen
Her er den automatiske magien: Et verktøy kalt PuPHPet kondenserer og GUI-fies prosessen med å velge og konfigurere programvare som vanligvis brukes i LAMP, og går enda lenger enn det ved å legge til støtte for server-side språk som Ruby og Node.js Hva er Node.JS og hvorfor skal jeg bryr meg? [Webutvikling] Hva er Node.JS og hvorfor skal jeg bryr meg? [Webutvikling] JavaScript er et bare programmeringsspråk på klientsiden som kjører i nettleseren, ikke sant? Ikke nå lenger. Node.js er en måte å kjøre JavaScript på serveren på; men det er så mye mer også. Hvis ... Les mer (teknisk JavaScript er ikke rent server-side, men dette variasjonen er), og alternativer til de andre komponentene i LAMP-stakken.
PuPHPet lager basiskonfigurasjonsfiler for Vagrant. Veiviseren inneholder over tjue forskjellige dimensjoner for å konfigurere, så jeg går bare over noen av de mest fremtredende.
- Distribusjonsmål - Her kan du velge om du vil lage et bilde som passer for VirtualBox, VMWare og lignende, eller en som er egnet for cloud computing-infrastruktur som AWS eller Digital Ocean, blant andre.
- System> Pakker - Du kan inkludere programvare som du vil installere som du ville på en vanlig installasjon. Spesielt bør du inkludere hvilke pakker du bruker for utvikling som er inkludert i basen av OS-distribusjonen.
- For å inkludere utviklingsavhengigheter for Ubuntu, spesifiser
bygge-essensielle
- For å inkludere det samme for CentOS 7, spesifiser
"Utviklingsverktøy"
- For å inkludere utviklingsavhengigheter for Ubuntu, spesifiser
- Webservere - Velg Apache eller Nginx for å danne ryggraden i L (A | E) MP-stakken.
- språk - PHP, Ruby, Node.js, Python.
- databaser - Kanskje en av de mest attraktive egenskapene ved denne tilnærmingen er evnen til å konstruere virtuelle maskiner for å leke med de forskjellige variablene av databaser som er tilgjengelige. Selv om MySQL er en standard, kan det hende du ønsker å leke med noe nyere som MariaDB Open Source Software og Forking: Den gode, den store og den ugle Open Source-programvaren og Forking: The Good, The Great og The Ugly Noen ganger er sluttbrukeren fordeler sterkt fra gafler. Noen ganger er gaffelen gjort under et skjul av sinne, hat og fiendskap. La oss se på noen eksempler. Les mer .
- Resten av alternativene er litt eksotiske, og hvis du ikke vet hva de er, kan de alltid installeres senere. Det du tross alt er et fullverdig operativsystem på din kommando.
PuPHPet vil på slutten av denne konfigurasjonsturen produsere et arkiv. Unzip det til katalogen du opprettet før du konfigurerer parametrene til den nye serveren din.
Nå, utfør følgende:
$ vagrant opp
Og observer resultatene:
Siden du ikke har baseboksen i din lokale katalog, vil vagrant hente bildet fra Atlas, et lager av forhåndskonfigurerte vagrantbokser.
(Teknisk sett kan noen av disse legges til din lokale maskin ved å utstede kommandoen: $ vagrant boks legger til USER / BOX
)
Wrapping Up
På dette tidspunktet er VM oppstart, og du er i utgangspunktet online. Bare én ting gjenstår: utsted kommandoen $ vagrant ssh
å slippe deg inn i en skikkelig SSH-sesjon med din (headless) VM som fungerer som en LAMP-server. Gratulerer!
Lære mer
Herfra er det mer å si om og gjøre i Vagrant og, som du vet, et ubegrenset antall å oppnå med din egen utviklings lekeplass. Ta en titt på den offisielle Komme i gang-veiledningen for å plukke opp hvor jeg sluttet.
Har du noen gang brukt en VM til ditt eget utviklingsmiljø? Har du brukt dette oppsettet eller tok du en annen tilnærming? Del dine ideer i kommentarfeltet nedenfor!
Utforsk mer om: Virtual Machine, VirtualBox, Webutvikling, Web Server.