Hier op Wptuts + hebben we een aantal verschillende workflows besproken die mensen gebruiken bij het ontwikkelen voor WordPress. WAMP op Windows, MAMP op Mac of XAMPP voor een van beide. Vandaag zullen we enkele van de problemen met deze methoden uitleggen en een nieuwe aanpak laten zien.
De meeste live websites worden uitgevoerd op een externe webserver waartoe u toegang hebt via een hostingplan. Maar je wilt niet ontwikkelen op een externe machine. Het is veel eenvoudiger en veiliger om te ontwikkelen op een lokale computer waar u direct toegang toe hebt en implementeer uw code vervolgens naar de externe server.
De meeste externe webservers hebben een besturingssysteem dat specifiek voor servers is. Dit kan een variant van Linux zijn, zoals CentOS, het kan Microsoft Windows Server zijn of zelfs OS X Server van Apple. Ze zullen ook webserver-software gebruiken, zoals Apache, Nginx of IIS, en databaseserversoftware zoals MySQL, PostgreSQL of Microsoft SQL. Dan zijn er verschillende andere dingen die ze al dan niet beschikbaar hebben, zoals PHP, Python of Ruby-tolken, en een overvloed aan andere dingen.
De overgrote meerderheid van deze dingen zijn niet het soort software dat je op je gemiddelde laptop of desktopcomputer aantreft. De eerder genoemde WAMP, MAMP of XAMPP helpen om de Apache, MySQL en PHP te krijgen die nodig zijn voor de installatie van WordPress daar, maar dan zijn er nog de verschillende andere stukjes en beetjes die niet noodzakelijkerwijs beschikbaar zijn, om nog maar te zwijgen van het besturingssysteem zelf (een server draaiende) systeem is niet praktisch).
Maar idealiter wilt u zich ontwikkelen in een omgeving die zo dicht bij die van de webserver ligt waarop u moet implementeren. Het is gewoon logisch. Je weet wat wel / niet beschikbaar is, en je weet dat alles "gewoon zou moeten werken".
Dus hoe krijgt u uw ontwikkelomgeving (lokale machine) hetzelfde als uw productieomgeving (externe machine)??
Nu zou je altijd uit kunnen gaan om een andere computer te kopen die je op je netwerk zou kunnen aansluiten, Linux, Apache, MySQL en PHP zou kunnen installeren en die als je ontwikkelomgeving zou kunnen gebruiken. Maar dan kost dat geld, en wat gebeurt er als je wat moet doen vanuit een andere locatie? Het plan is ontrafeld.
Gelukkig zijn er enkele genieën die software hebben gemaakt die een computer kan emuleren. U kunt vervolgens een besturingssysteem en software op deze "virtuele machine" installeren en zelfs verbinden met uw netwerk.
Geest. geblazen.
Een dergelijk stuk software is VirtualBox, er zijn ook andere zoals VMWare en Parallels.
U kunt dus een virtuele machine hebben die exact dezelfde software draait als de externe machine die u uiteindelijk zult gebruiken. Terwijl het draait, zal het resources van je laptop of desktopcomputer gebruiken, zoals CPU-kracht, RAM en ruimte op de harde schijf, enz. Maar websites gebruiken doorgaans veel minder hulpbronnen dan moderne laptops en desktops hebben, dus dit is geen probleem.
Wat gebeurt er als u meerdere externe machines hebt die u inzet voor verschillende clients of projecten en ze verschillende instellingen hebben? Gelukkig kun je in essentie zoveel verschillende virtuele machines hebben als je wilt! Eén voor elk project, indien nodig.
Natuurlijk zal het hebben van veel virtuele machines op je laptop of desktop zijn tol gaan eisen. Je zult de vereiste software moeten installeren en installeren tijdens het instellen en ze nemen allemaal ruimte op de harde schijf in beslag, dus na een tijdje zul je merken dat het een beetje log is. Je zou altijd virtuele machines kunnen verwijderen als je eenmaal klaar bent met een project, maar als het project dan weer een back-up neemt, of als de klant terugkomt voor meer werk, moet je het proces opnieuw doorlopen om alles opnieuw in te stellen.
Misschien is er een manier om dit beter te beheren?
Ga naar Vagrant. Vagrant is software waarmee je in hun woorden "Lichtgewicht, reproduceerbare en draagbare ontwikkelomgevingen kunt maken en configureren."
Klinkt goed, toch??
Wat Vagrant doet, is de virtuele machines voor u beheren. Het wordt geleverd met ondersteuning voor ingebouwd VirtualBox en u kunt ook ondersteuning voor VMWare toevoegen.
Het enige wat u hoeft te doen is een Vagrant-configuratiebestand in uw project te maken, en dat zal Vagrant vertellen welke virtuele basismachine moet worden gebruikt (welk besturingssysteem, enz.), Welke software moet worden geïnstalleerd en vervolgens zal Vagrant het voor u maken! Als je het project hebt voltooid, kun je de machine verwijderen, maar als je het terug nodig hebt, zal Vagrant het voor jou opnieuw maken met dezelfde software.
Dus hopelijk heb ik je op zijn minst gedeeltelijk verkocht op het idee om een virtuele machine te gebruiken voor je ontwikkelomgeving en Vagrant te gebruiken om dat meer gestroomlijnd te maken. Maar er is nog geen enkele vermelding van WordPress-ontwikkeling geweest ...
Goed punt! Maar dat ga ik voor deel twee redden. We hebben de reden voor 'waarom' besproken en de volgende keer dat ik je meeneem om al deze instellingen te krijgen, en ik weet zeker dat je volledig wordt verkocht!