Här på Wptuts + har vi täckt ett antal olika arbetsflöden som folk använder när de utvecklas för WordPress. WAMP på Windows, MAMP på Mac eller XAMPP för antingen. Idag ska vi förklara några av problemen med dessa metoder och visa dig ett nytt tillvägagångssätt.
De flesta levande webbplatser körs på en fjärrwebbserver som du har tillgång till genom en värdplan. Men du vill inte utvecklas på en fjärrmaskin. Det är mycket lättare och säkrare att utveckla på en lokal maskin som du har direkt tillgång till, och sedan distribuera din kod till fjärrserveren.
De flesta fjärrwebservrar kör ett operativsystem som är specifikt för servrar. Det här kan vara en variant av Linux, till exempel CentOS, det kan vara Microsoft Windows Server eller till och med Apples OS X Server. De kommer också att köra webbserverprogramvara, till exempel Apache, Nginx eller IIS, och databasserverprogramvara som MySQL, PostgreSQL eller Microsoft SQL. Då finns det olika andra saker som de kanske eller kanske inte har tillgång till, till exempel PHP, Python eller Ruby tolkar och en mängd andra saker.
De allra flesta av dessa saker är inte den typ av programvara du hittar på din genomsnittliga bärbara dator eller stationär dator. Ovan nämnda WAMP, MAMP, eller XAMPP hjälper till att få Apache, MySQL och PHP som krävs för WordPress-utveckling installerad där, men då finns de olika andra bitarna inte nödvändigtvis tillgängliga, för att inte tala om själva operativsystemet (kör en server som körs systemet är inte praktiskt).
Men helst vill du utvecklas i en miljö som är så nära den hos webbservern du behöver distribuera på. Det är bara meningsfullt. Du vet vad som är / är inte tillgängligt, och du vet att allt ska "bara fungera".
Så hur får du din utvecklingsmiljö (lokal maskin) samma som din produktionsmiljö (fjärrmaskin)?
Nu kan du alltid gå ut och köpa en annan dator som du kan ansluta till ditt nätverk, installera Linux, Apache, MySQL och PHP på, och använd det som din utvecklingsmiljö. Men då kostar det pengar, och vad händer om du behöver göra någon utveckling från en annan plats? Planen har rast upp.
Lyckligtvis finns det några genier där ute som har skapat programvara som kan emulera en dator. Du kan sedan installera ett operativsystem och programvara på den här "virtuella maskinen", och till och med ansluta den till ditt nätverk.
Sinne. Blåst.
En sådan mjukvara är VirtualBox, det finns också andra som VMWare och Parallels.
Så du kan ha en virtuell maskin som kör hela exakt samma programvara som fjärrmaskinen som du så småningom kommer att distribuera till. Medan det körs kommer det att använda resurser från din bärbara eller stationära maskin, såsom CPU-ström, RAM och hårddiskutrymme etc. Men webbplatser brukar använda mycket mindre resurser än moderna bärbara datorer och stationära datorer har tillgång till, så det här är inget problem.
Vad händer nu om du har flera fjärrmaskiner som du distribuerar till för olika kunder eller projekt, och de har olika inställningar? Lyckligtvis kan du ha väsentligen lika många olika virtuella maskiner som du vill! En för varje projekt, om det behövs.
Självklart kommer många virtuella maskiner på din bärbara dator eller skrivbord att börja ta sin vägtull. Du måste gå igenom och installera den nödvändiga programvaran på var och en när du ställer upp den, och alla tar upp hårddiskutrymme, så efter en stund kan du hitta det blir lite ojämn. Du kan alltid ta bort virtuella maskiner när du är färdig med ett projekt, men om projektet hämtar säkerhetskopiering, eller om klienten kommer tillbaka för mer arbete, måste du gå igenom processen att ställa upp det igen.
Kanske finns det ett sätt att hantera det här bättre?
Ange Vagrant. Vagrant är en del programvara som låter dig, i sina ord, "Skapa och konfigurera lätta, reproducerbara och bärbara utvecklingsmiljöer."
Det låter bra, rätt?
Vad Vagrant gör hanterar de virtuella maskinerna för dig. Den levereras med stöd för VirtualBox inbyggd, och du kan också lägga till stöd för VMWare.
Allt du behöver göra är att skapa en Vagrant-konfigurationsfil i ditt projekt, och det kommer att berätta för Vagrant vilken bas virtuell maskin som ska användas (vilket operativsystem, etc.), vilken programvara som ska installeras, och sedan skapar Vagrant det för dig! Om du avslutar projektet kan du ta bort maskinen, men om du behöver den tillbaka kommer Vagrant att skapa den för dig med samma programvara.
Så förhoppningsvis har jag åtminstone delvis sålt dig på idén att använda en virtuell maskin för din utvecklingsmiljö och använda Vagrant för att göra det mer strömlinjeformat. Men det finns inte någon omnämnande av WordPress-utveckling än ...
Bra poäng! Men jag ska spara det för del två. Vi har täckt grunden bakom "varför", och nästa gång jag tar dig igenom faktiskt får du all denna inställning, och jag är säker på att du kommer att säljas helt!