Hoe een Virtual Web Development Environment en Server te creëren

Hoe een Virtual Web Development Environment en Server te creëren / Programming

Windows en Mac OSX hebben de afgelopen jaren vooruitgang geboekt als ontwikkelaarsvriendelijke besturingssystemen, maar elke webontwikkelaar moet echt werken in de eigen omgeving van het web, Linux.

Dit artikel laat je zien hoe je het beste uit twee werelden kunt halen: vasthouden aan een stabiel en gebruiksvriendelijk besturingssysteem zoals Windows of OSX voor je dagelijkse behoeften, terwijl je de voordelen plukt van ontwikkeling in hetzelfde ecosysteem als je productiecode.

Invoering

Veel van het web draait op wat ontwikkelaars een a noemen “LAMP-stapel.” Dit acroniem betekent Linux, Apache, MySQL, PHP bij elkaar gebundeld en werkt als wat u doorgaans als een webserver begrijpt. (Een nauw verwante stack - of een reeks technologieën - is dat wel “LEMP,” met de “E” afgeleid van de uitspraak van een alternatief voor Apache, Nginx, dat wordt gezegd “motor x.”)

Mogelijk merkt u dat Linux hier expliciet wordt vermeld, maar niet alleen om deze reden wordt Linux door ontwikkelaars aanbevolen. De andere technologieën - Apache (of Nginx), MySQL en PHP - hebben allemaal verschillende tools en implementaties beschikbaar voor de verschillende platforms, maar om historische en technische redenen domineren Linux-gebaseerde configuraties de serverruimte en zijn ze meer voorspelbaar.

Voorspelbaarheid en betrouwbaarheid zijn ook belangrijke redenen die u zou willen ontwikkelen op een besturingssysteem dat u uitsluitend voor dat doel gebruikt - een speciaal besturingssysteem in plaats van een besturingssysteem dat de talloze taken ondersteunt die u dagelijks uitvoert als webontwikkelaar. Anders gezegd, u wilt geen server draaien op hetzelfde besturingssysteem dat u nodig heeft om opnieuw op te starten wanneer uw nieuwe grafische stuurprogramma's zijn geïnstalleerd, of een machine die u moet inpakken en in een rugzak moet doen om de weg met. De processen en software die nodig zijn om een ​​server op uw mixed-use machine te laten werken, is in één woord rommelig.

Dus hoe brengt u uw vermogen om te multitasken in balans met uw behoefte om zich te ontwikkelen in de native context van uw apps??

Voer virtuele machines in Wat is een virtuele machine? Alles wat u moet weten Wat is een virtuele machine? Alles wat u moet weten Met virtuele machines kunt u andere besturingssystemen op uw huidige computer gebruiken. Dit is wat u over hen moet weten. Lees verder .

Virtuele machines en Vagrant

Virtuele machines zijn programma's die worden uitgevoerd in uw primaire besturingssysteem. Ze stellen u effectief in staat om een ​​volledig afzonderlijk besturingssysteem binnen een venster te laten draaien, volledig ingeperkt en los van alles wat er met uw fysieke machine aan de hand is, maar ten koste van wat overhead.

De voordelen zijn echter talrijk:

  • Een fout maken bij het installeren, configureren of verwijderen van software? Geen big deal, je kunt gewoon opnieuw beginnen met een nieuwe afbeelding.
  • Is uw experiment catastrofaal mislukt en heeft het besturingssysteem eromheen bevroren? Nogmaals, geen probleem omdat alleen de virtuele machine is uitgevoerd.
  • Moet u itereren in enigszins verschillende omstandigheden? Elke reeks voorwaarden, zoals verschillende softwareversies of verschillende software (bijvoorbeeld met behulp van Apache versus Nginx), kan een afzonderlijke softwaremachine of virtuele software worden. “doos.”

Een tool genaamd Vagrant helpt je inzetten “basis dozen” die voorgeconfigureerde Linux-besturingssystemen bevatten in verschillende smaken.

In dit artikel wordt ervan uitgegaan dat je enig comfort hebt bij het bedienen van een virtuele machine zonder GUI en alleen via een opdrachtregelinterface (CLI).

Laten we een leverancier van virtuele machines en Vagrant ophalen voordat we een basisset configureren.

  1. Zorg ervoor dat u een leverancier van virtuele machines voor uw besturingssysteem hebt. Zowel Windows als Mac OSX kunnen Virtual Box gebruiken. VMware werkt ook op beide platforms. (Windows 10 Pro en hoger kunnen gebruikmaken van Hyper V Is een Windows 10 Pro-upgrade ter waarde van $ 99, is een Windows 10 Pro-upgrade met een waarde van $ 99? Windows 10 Pro biedt meer functies, maar heeft ook een prijskaartje van $ 99 om te upgraden vanaf de Home-editie. wat u moet weten om te beslissen of professionele functies de upgrade waard zijn. Lees meer, wat een stapje hoger is omdat het beter gebruikmaakt van hardware.)
  2. Ga naar Vagrantup.com en kies een geschikt installatieprogramma.
  3. Maak in de boomstructuur van uw lokale map een nieuwe map om de box te huisvesten. (Locaties die ondergeschikt zijn aan uw gebruikersprofiel werken goed, locaties in systeemmappen meestal niet.)

De configuratie van de webontwikkelingsomgeving

Hier gebeurt de magie van automatisering: een tool genaamd PuPHPet condenseert en GUI-fikt het proces van het selecteren en configureren van software dat gewoonlijk wordt gebruikt in LAMP, en gaat zelfs verder dan dat door ondersteuning toe te voegen voor server-side talen zoals Ruby en Node.js. Wat is Node.JS en waarom zou ik erom geven? [Webontwikkeling] Wat is Node.JS en waarom zou ik erom geven? [Web Development] JavaScript is slechts een client-side programmeertaal die in de browser draait, toch? Niet meer. Node.js is een manier om JavaScript op de server uit te voeren; maar het is zoveel meer ook. Als ... Lees meer (technisch JavaScript is niet puur server-side, maar deze variëteit is) en alternatieven voor de andere componenten van de LAMP-stack.

PuPHPet maakt basisconfiguratiebestanden voor Vagrant. De wizard bevat meer dan twintig verschillende dimensies om te configureren, dus ik zal alleen enkele van de meest opvallende aspecten bespreken.

  • Deployment Target - Hier kunt u kiezen of u een afbeelding wilt maken die geschikt is voor VirtualBox, VMWare en dergelijke, of een afbeelding die geschikt is voor cloud computing-infrastructuur zoals AWS of Digital Ocean, onder andere.
  • Systeem> Pakketten - U kunt hier alle software opnemen die u zou installeren, net als bij een normale installatie. In het bijzonder moet u de pakketten die u gebruikt voor ontwikkeling opnemen in de basis van de OS-distributie.
    • Als u ontwikkelingsafhankelijkheden voor Ubuntu wilt opnemen, geeft u dit op build-essentials
    • Als u hetzelfde voor CentOS 7 wilt opnemen, geeft u op "Ontwikkelingshulpmiddelen"
  • Webservers - Kies Apache of Nginx om de backbone van uw L (A | E) MP-stack te vormen.
  • talen - PHP, Ruby, Node.js, Python.
  • databases - Misschien is een van de meest aantrekkelijke kenmerken van deze aanpak het vermogen om virtuele machines te bouwen om met de verschillende beschikbare databases te kunnen spelen. Hoewel MySQL een standaard is, wil je misschien met iets nieuwers spelen, zoals MariaDB Open Source Software en Forking: The Good, The Great and The Ugly Open Source Software en Forking: The Good, The Great and The Ugly Soms is de eindgebruiker profiteert enorm van vorken. Soms wordt de vork gedaan onder een waas van woede, haat en vijandigheid. Laten we enkele voorbeelden bekijken. Lees verder .
  • De rest van de opties zijn enigszins exotisch, en als je niet weet wat ze zijn, kunnen ze altijd later worden geïnstalleerd. Wat u hebt, is tenslotte een volledig besturingssysteem op uw bevel.

PuPHPet zal aan het einde van deze configuratietocht een archief produceren. Pak het uit in de map die u hebt aangemaakt voordat u de parameters van uw nieuwe server configureerde.

Voer nu het volgende uit:

$ vagrant up

En observeer de resultaten:

Omdat u het basisvenster niet in uw lokale directory hebt, haalt vagrant de afbeelding uit de Atlas, een opslagplaats van voorgeconfigureerde landlopers.

(Technisch gezien kan een van deze worden toegevoegd aan uw lokale computer door de opdracht te geven: $ vagrant box add USER / BOX)

Afsluiten

Op dit punt wordt je VM gestart en ben je in principe online. Er rest slechts één ding: voer het bevel uit $ vagrant ssh om jezelf in een goede SSH-sessie te laten vallen met je (headless) VM als een LAMP-server. Proficiat!

Kom meer te weten

Vanaf hier is er meer te vertellen en te doen in Vagrant en, zoals je weet, een onbeperkt bedrag om te volbrengen met je eigen ontwikkelspeelplaats. Bekijk de officiële handleiding Aan de slag om verder te gaan waar ik ben gebleven.

Heb je ooit een VM gebruikt voor je eigen ontwikkelomgeving? Heb je deze opstelling gebruikt of heb je een andere benadering gekozen? Deel uw ideeën in de opmerkingen hieronder!

Ontdek meer over: Virtual Machine, VirtualBox, Web Development, Web Server.