Een staging-omgeving instellen

Het is gebruikelijk om lokaal aan een project te werken en revisies naar een productieserver te pushen, maar de stap die mensen vaak overslaan is de faseserver. Een staging-server is een mix tussen productie en ontwikkeling; je kunt je app testen alsof deze in productie was. Laten we enkele van de problemen bespreken die u moet overwegen, evenals de stappen die nodig zijn om een ​​productieplatform als een service te repliceren (PAAS).

Het is meer dan eens gebeurd: ik push een revisie van mijn app in productie, alleen om een ​​probleem te vinden nadat het openbaar is. Deze problemen kunnen net zo eenvoudig zijn als het vergeten om afbeeldingen aan uw repository toe te voegen, of het kan net zo groot zijn als het lokaal veranderen van de structuur van een database en het vergeten om de productiedatabase bij te werken. Iedereen overkomt problemen, vooral als je deadlines hebt gehaald. In deze situaties is het een slim idee om een ​​staging-omgeving in te stellen. Het idee is om een ​​server te hebben die de productieomgeving nauwlettend nabootst, zodat u uw app vóór publicatie kunt testen.

Staging-omgevingen vangen niet alleen menselijke fouten op, maar ook softwaregerelateerde problemen.

U kunt deze problemen vinden en verhelpen, omdat het verzamelgebied dezelfde software heeft als uw productieomgeving. Dit staat in schril contrast met je lokale computer, waar je verschillende versies van software hebt geïnstalleerd (bijvoorbeeld PHP 5.3 vs PHP 5.4) of zelfs verschillende functies. Ik heb code geduwd die oproepen bevatte file_get_contents alleen om te ontdekken dat de productieserver die functie niet ondersteunde.

Dus hoe pak je een staging-server aan? Welnu, de eerste stap is een kleine verkenning.


Het zit allemaal in de details (meestal)

Iedereen overkomt problemen, vooral als je deadlines hebt gehaald.

Het creëren van een staging-omgeving is specifiek voor uw productieomgeving. Er is geen magische oplossing die in elke situatie werkt. Maar de meeste gevallen volgen een soortgelijk patroon en ik zal alle belangrijke punten behandelen als we doorgaan.

Het is redelijk om aan te nemen dat de meeste mensen hun apps implementeren met een of andere versie-tool (zoals GIT). Op de enkele kans dat u aan een oud project werkt dat nog steeds FTP gebruikt, kunnen sites zoals ftploy.com of deployHQ.com fungeren als een buffer tussen GIT en uw server. Jeffrey Way heeft een informatieve video samengesteld waarin wordt beschreven hoe je dat kunt instellen.

Naast GIT moet u nadenken over de talen, software en "speciale" functies die uw productieservers bieden. Ik gebruik een PHP-gebaseerde PAAS, genaamd Fortrabbit, omdat deze up-to-date ondersteuning bieden voor PHP, Apache en GIT. Ze bieden ook de mogelijkheid om een ​​trefwoord toe te voegen aan uw GIT-commit-bericht dat Composer triggert om de afhankelijkheden van uw project te installeren.

Dit is het systeem dat ik in de rest van dit artikel zal instellen. De standaard feature-set, evenals de speciale componist-functie, maken Fortrabbit perfect voor een grote verscheidenheid aan hosts. Vergeet niet: dit is geen magische oplossing, maar de stappen die volgen, volgen hetzelfde patroon dat u zou gebruiken om een ​​staging-omgeving in te stellen voor de meeste projecten. Pas het proces aan uw specifieke behoeften aan.

Dus zonder verder oponthoud, laten we erin springen.


De server maken

Het creëren van een staging-omgeving is specifiek voor uw productieomgeving.

Er zijn veel verschillende besturingssystemen die u op een server kunt uitvoeren. Fortrabbit draait Debian Squeeze op hun servers, en omdat we proberen ze te evenaren, heb ik besloten om het ook uit te voeren.

Ik zal Vagrant gebruiken om dit op te zetten. Maak je geen zorgen als je Vagrant nooit hebt gebruikt; we zullen niets geavanceerd doen. Zorg ervoor dat je VirtualBox en Vagrant hebt geïnstalleerd (Vagrant is een CLI voor VirtualBox, dus VirtualBox is vereist).

Vagrant neemt een virtuele momentopname van een besturingssysteem als een basis 'box' en u kunt vervolgens meerdere VM's van die afbeelding maken. Dus eerst moeten we de basisset downloaden voor Debian Squeeze. Ik weet niet precies waar mijn exemplaar vandaan komt, dus heb ik het naar DropBox geüpload om te downloaden en te gebruiken. Om te installeren opent u een terminalvenster en typt u:

 dwaallicht vak toevoegen debian https://dl.dropbox.com/u/30949096/debian.box

Hiermee wordt het vak aan Vagrant toegevoegd met de naam 'debian'. We kunnen nu een exemplaar van deze box maken voor onze verzamelplaats. Laten we eerst een nieuwe map maken:

 mkdir ~ / staging_server cd ~ / staging_server

Maak vervolgens het Vagrant-configuratiebestand door te typen:

 dwaallicht debian

Hiermee wordt een configuratiebestand gemaakt met de naam "VagrantFile", dat alle instellingen voor uw server bevat. Het ziet er behoorlijk druk uit als je het opent, maar de meeste lijnen zijn opmerkingen. U hoeft alleen maar de regel uncomment die zegt: config.vm.network: overbrugd. Als u alle andere opmerkingen verwijdert, krijgt u een bestand dat er als volgt uitziet:

 Vagrant :: Config.run do | config | config.vm.box = "debian" config.vm.network: overbrugd einde

Deze opties vertellen Vagrant om een ​​nieuwe virtuele machine te maken op basis van onze Debian Squeeze-basisdoos. Vervolgens wordt de netwerkmodus ingesteld op 'overbrugd'. Een VM met een overbrugd netwerk verschijnt als een nieuwe fysieke machine op uw router, dus het haalt automatisch zijn eigen IP-adres op. Hiermee kunt u vanaf elk apparaat op uw netwerk toegang krijgen tot het apparaat (mogelijk buiten uw netwerk als u uw router configureert).

Nu kunnen we onze VM starten met het bevel: "zwervend op"(zonder de aanhalingstekens).

Je zou de uitvoer van Vagrant moeten zien die je VM maakt. Als uw computer meerdere netwerkadapters heeft aangesloten op het netwerk, vraagt ​​Vagrant u om de NIC te kiezen voor overbrugging.

We gebruiken SSH om in te loggen, maar we moeten de ingebouwde versie van Vagrant gebruiken "zwervende ssh"opdracht om in te loggen. Volgens de best practices van Vagrant moeten alle vakjes een gebruiker hebben met de naam" landloper "met het wachtwoord, voor zowel root als vagrant," vagrant ". De zwervende gebruiker wordt toegevoegd als een sudo gebruiker die geen wachtwoord hoeft in te voeren, zodat u het direct kunt gebruiken sudo commando's.

Laten we verder gaan en de software van de server instellen.


De software

De opstelling van Fortrabbit omvat:

  • Apache 2.2
  • PHP 5.4
  • Componist

Bovendien gebruiken ze de dotdeb-repository om het grootste deel ervan te installeren. Voor degenen die niet vertrouwd zijn, is dotdeb een project van Guillaume Plessis dat de meest recente versies van populaire webserverpakketten installeert.

We zijn klaar om te beginnen. Zorg ervoor dat uw terminalvenster geopend is en op de server is ingelogd via SSH. Voeg eerst de dotdeb-repo toe aan APT (de pakketbeheerder) door een nieuw bestand toe te voegen sources.d directory:

 sudo vim /etc/apt/sources.list.d/dotdeb.list

Hiermee wordt een nieuw bestand geopend met de naam dotdeb.list in vim (een teksteditor). De naam is niet belangrijk omdat alle bestanden in deze map in APT worden ingelezen. We moeten vier regels aan dit bestand toevoegen. Als u nog nooit VIM hebt gebruikt, typt u "ikom de invoegmodus te openen en de volgende vier regels te kopiëren / plakken:

 deb http://packages.dotdeb.org squeeze all deb-src http://packages.dotdeb.org squeeze all deb http://packages.dotdeb.org squeeze-php54 all deb-src http: //packages.dotdeb .org squeeze-php54 all

Druk op de knop om te bewaren Esc sleutel en type : wq. Dat is de opdracht om te schrijven en te stoppen, wat in feite betekent opslaan en afsluiten.

Als u op Enter drukt, wordt het bestand opgeslagen en keert u terug naar de opdrachtregel.

We hebben nu de repo's toegevoegd, maar we moeten nog steeds de handtekening toevoegen voordat we ze kunnen gebruiken. Typ het volgende om de GNU-sleutel toe te voegen:

 krul http://www.dotdeb.org/dotdeb.gpg | sudo apt-key toevoegen -

Hiermee wordt de dotdeb-sleutel gedownload en toegevoegd als een bron met bronvermelding. Update APT nu om het nieuwe pakket in te voeren door te typen:

 sudo apt-get update

Dit kan een minuutje duren, maar je hebt alle dotdeb-pakketten vermeld in APT als het klaar is. Vanwege de manier waarop dotdeb is ingesteld en hoe APT-afhankelijkheden worden geladen, kunnen we tegelijkertijd Apache en PHP installeren door het volgende te typen:

 sudo apt-get install php5

Met deze enkele regel installeert en configureert APT Apache2 en PHP5. Als u de memcache-add-on van Fortrabbit gebruikt, kunt u deze installeren met:

sudo apt-get install memcached

Maar ik ga niet in memoriam ingaan in ons voorbeeld in dit artikel.

Nu moeten we de extensies installeren die Fortrabbit gebruikt. Voer de volgende opdracht uit:

 sudo apt-get install php5-xdebug php5-tidy php5-sqlite php5-redis php5-pgsql \ php5-mysqlnd php5-memcache php5-memcached php5-mcrypt php5-imagick php5-http \ php5-gmp php5-gd php5-curl php5 -apc php5-intl

Het laatste dat we moeten installeren is Composer. Ik ga het wereldwijd installeren omdat we het op een paar verschillende locaties zullen gebruiken. De opdrachten voor het wereldwijd installeren van Composer zijn:

 curl -s https://getcomposer.org/installer | php sudo mv composer.phar / usr / local / bin / composer

De eerste opdracht downloadt en voert het installatieprogramma uit; het tweede commando verplaatst Composer naar de bin-map, zodat we het kunnen gebruiken zonder het pad te declareren. Laten we verder gaan met de configuratie.


Apache instellen

De kans is groot dat je aan meerdere projecten werkt. Als dit het geval is, zorgt het hebben van een staging-server voor elk project voor veel overhead. Om meerdere sites op één server toe te staan, moeten we op naam gebaseerde virtuele hosts toevoegen aan Apache en moeten mappen en repo's voor elk project worden gescheiden.

Laten we beginnen met een virtuele host.

Ik ga vim blijven gebruiken, maar weet dat als je in je eigen programma's wilt werken, je het kunt kopiëren en plakken of opslaan in de staging_server map die u op uw computer hebt gemaakt.

Die map wordt gedeeld met uw VM en u hebt toegang tot de bestanden in de zwerver root directory. U kunt dan gebruiken: sudo cp / vagrant / bestand nieuw bestand of sudo mv / vagrant / filee nieuw bestand om de bestanden respectievelijk te kopiëren of te verplaatsen.

Om een ​​nieuwe virtuele host te maken, moeten we een bestand maken in de / Etc / apache2 / sites-available / directory. Om dit te doen met VIM, typt u het volgende:

 sudo vim /etc/apache2/sites-available/demo.site

Vul het volgende in (druk op "ik"voor invoegmodus):

  ServerAdmin [email protected] Servernaam demo.dev DocumentRoot / var / www / demo  Opties Indices FollowSymLinks MultiViews AllowOverride ALL Order toestaan, weigeren toestaan ​​van iedereen  ErrorLog $ APACHE_LOG_DIR /demo.log Foutopsporing LogLevel 

De eerste regel declareert een virtuele host die luistert naar verzoeken op elk IP-adres op poort 80. Vervolgens stellen we de admin-e-mail van de server en de servernaam in. De e-mail is bedoeld voor het melden van fouten en de optie voor de servernaam vertelt Apache wanneer deze virtuele host moet worden gelezen. Reguliere virtuele hosts werken op IP's. Elke vhost luistert bijvoorbeeld op een ander IP; zo onderscheidt Apache ze.

Aangezien u waarschijnlijk slechts één IP-adres hebt, kunnen we naamgebaseerde virtuele hosts gebruiken, zodat u een andere naam op hetzelfde IP-adres kunt opgeven.

In ons voorbeeld worden alle verzoeken gericht aan demo.dev opgehaald door deze virtuele host.

De volgende regel stelt de hoofdmap van het document in. Dit is waar Apache bestanden voor deze vhost ophaalt. De uitspraken in de directory richtlijn stelt machtigingen in voor deze vhost. Ik zal niet te veel ingaan op details, maar we hebben eerst de mappen Apache-opties ingesteld, vervolgens stellen we in wat er kan worden overschreven in een .htaccess-bestand en tot slot bepalen we wie toegang heeft tot de site (iedereen kan in ons geval).

De laatste twee regels vertellen Apache wat het logboekbestand moet worden genoemd en wat er naar het logboek moet worden geschreven. Ons logbestand wordt demo.log genoemd in de Apache-logmap op / Var / log / apache2 / op deze VM.

Typ het volgende om deze vhost in te schakelen:

 sudo a2ensite demo.site

Hiermee wordt een symbolische koppeling gemaakt tussen het bestand in de map met beschikbare sites naar een bestand in de map met sites. Na het uitvoeren van deze opdracht wordt u gevraagd om Apache opnieuw te starten. U krijgt een foutmelding als u probeert Apache opnieuw te starten omdat we de map van de site niet hebben gemaakt. Dit is gemakkelijk te repareren door het creëren van de demonstratie map waarnaar we in het vhost-bestand verwezen:

 sudo mkdir / var / www / demo

We willen niet dat de rootgebruiker de map bezit, dus verander deze naar de zwerfvaardige gebruiker met de chown commando:

 sudo chown -R vagrant: vagrant / var / www / demo

Start nu Apache opnieuw:

 sudo service apache2 opnieuw opstarten

Onze nieuwe site zou nu volledig functioneel moeten zijn. Onze volgende stap is het instellen van GIT.


Opvolgen met Some GIT Magic

Zorg ervoor dat je in de homedirectory zit door te typen cd ~. Maak een nieuwe map voor de repo: mkdir demo.git, ga naar de map en initialiseer een nieuwe, blote GIT repository:

 cd demo.git git init --bare

Een kale repo is in wezen een standaard repo zonder werkmap. Als je meer wilt weten over GIT, bekijk dan Andrew Burgess 'videoserie.

We hebben nu de mogelijkheid nodig om code naar de map van de site te pushen, en er zijn veel manieren om dit te bereiken. Maar ik vind het leuk om dingen zo dicht mogelijk te laten lijken op de service die ik aan het emuleren ben. Hier is een afbeelding van het git-proces van fortrabbit, afkomstig van hun site:

Je ziet dat het push-proces drie stappen doorloopt. Het geeft een update-bericht weer wanneer het verbinding maakt en het gebruikt de site in de directory. De laatste stap installeert alles als het commit-bericht de sleutelwoorden "[trigger: composer]" bevat. Daarna, nadat deze drie stappen voltooid zijn, krijgt u het ">> allemaal gedaan" te zien <

Voordat we de haken maken, wil ik het hebben over kleuren.

Ik werk het meeste van mijn werk in de terminal, en vaker wel dan niet laten terminal-apps alles in dezelfde kleur. Door verschillende kleuren aan uw app toe te voegen, verhoogt u niet alleen de leesbaarheid, maar vergroot u ook de vindbaarheid. Dus om "kleurpraktijken" beter te verspreiden in terminal-apps, zal ik even stilstaan ​​om te bespreken hoe ze werken.


Terminal kleuren

Terminals worden geleverd met zestien ANSI-kleuren die gedurende de terminal kunnen worden geconfigureerd en gebruikt. Hier is een afbeelding van het iTerm2-instellingenscherm met de zestien kleursegmenten:

U kunt ze in de terminal openen door het escape-teken te typen, gevolgd door de vierkante open haak en vervolgens de kleurcode. U kunt in deze afbeelding zien dat de kleuren in twee lijnen zijn gesplitst: de ene met het label "Normaal" en de andere met "Helder". De codes voor de normale kleuren zijn de nummers 30-37 gevolgd door de letter "m", en de felle kleuren zijn van 90-97 weer gevolgd door een m. Je kunt dit in je terminalvenster testen met echo. Typ het volgende om het escape-teken te maken ctrl-v gevolgd door Ctrl- [. Je krijgt een personage dat eruit ziet ^ [, maar het zal niet werken als je gewoon "^ [" (shift-6 en vervolgens vierkante haakje) typt. Dus in het terminalvenster type:

 echo "^ [[31m Hallo wereld ^ [[0m"

Nogmaals, de eerste ^ [ is niet getypt maar is gemaakt met ctrl-v en dan Ctrl- [. De 0m tekencode is de resetcode; het verwijdert alle opmaak. Dit komt omdat de kleurcodes niet eindigen na het volgende woord, ze gaan door totdat ze een andere code ontvangen.

Als het goed is gedaan, geeft de bovenstaande code de woorden "Hallo wereld" in rood weer (tenzij je die sleuf hebt ingesteld op een andere kleur).

Gedurende de rest van de tutorial zal ik kleuren aan de commando's toevoegen. Aarzel niet om ze te volgen of weg te laten; ze zijn niet strikt vereist. Maar als je kleuren wilt gebruiken, gebruik dan gerust mijn kleurhulpklasse. Laten we nu teruggaan naar het schrijven van de haken.


De haken maken

Als je de Fortrabbit-afbeelding nog een keer bekijkt, zul je zien dat het bericht 'Stap 1: De repository bijwerken' wordt weergegeven voordat de repo wordt bijgewerkt. Om dit correct te doen, moeten we dit bericht plaatsen in de pre-receive hook, die wordt uitgevoerd voordat de repo is bijgewerkt. Typ in het terminalvenster:

 vim ~ / demo.git / hooks / pre-receive

Dit opent de haak voor bewerking. Voeg de volgende code toe:

 #! / Usr / bin / php 

De eerste regel vertelt het besturingssysteem dat dit een PHP-bestand is en dat het als zodanig wordt uitgevoerd. Vervolgens wijzen we een kleur en de reset-reeks toe aan variabelen. De laatste stap echos de lijn.

De volgende haak is iets gecompliceerder omdat deze de rest van de acties afhandelt. We zullen het stap voor stap doen, dus sla de eerste hook (: wq) op en open de volgende hook:

 vim ~ / demo.git / hooks / post-receive

De haak na ontvangst wordt uitgevoerd nadat de repo is bijgewerkt. We moeten eerst de site bijwerken en vervolgens controleren op de trigger Composer. Hier is een skelet van ons programma, zonder enige nieuwe logica:

 #! / Usr / bin / php  ". $ cyaan." OK ". $ blanco." \ n "; echo $ geel." Stap 2: Implementatie ". $ blank." \ n "; / * TODO: Implementeren naar site * / echo" -> ". $ cyan. "OK". $ blank. "\ n"; / * TODO: Controleer of commit trigger * / echo $ yellow heeft geactiveerd. ">> All Done <<" . $blank . "\n"; ?>

Dit is slechts een schets om mee te werken. Het eerste dat we moeten aanbrengen is de functie om de nieuwe versie van de repo in de directory van de site te plaatsen. Traditioneel typ ik het volgende als ik in de map zat:

 git fetch origin git reset - harde oorsprong / meester

Je zou zoiets kunnen gebruiken git pull, maar dit kan fouten veroorzaken. Als een bestand direct is gewijzigd of als u een commit hebt gemist, dan git pull zal niet toestaan ​​dat je je niet-gevonden bestanden verwijdert of verwijdert.

Dit zijn twee eenvoudige opdrachten, maar u krijgt een foutmelding als u probeert ze uit de haak te halen.

GIT stelt een aantal omgevingsvariabelen in voordat de hooks worden uitgevoerd. Je kunt dit omzeilen met een van de twee oplossingen, en ik zal het jullie beiden laten zien.

De eerste is om de omgevingsvariabelen op te heffen en de informatie direct door te geven. De tweede wist de variabelen volledig. Ik zal de eerste optie in dit voorbeeld en de tweede optie gebruiken wanneer we werken aan de trigger voor de componist. Vervang de opmerking die ik hierboven heb toegevoegd, waar staat "TODO Deploy to site" met het volgende:

 $ git = "git --git-dir = / var / www / demo / .git / --work-tree = / var / www / demo /"; exec ("$ git fetch -q origin"); exec ("$ git reset - harde oorsprong / master");

Dit heft de omgevingsvariabelen op en roept de bovengenoemde functies aan. De toegevoegde -q parameter vertelt GIT "quiet" te zijn, wat GIT verbiedt echo's van berichten te herhalen.

Nu moeten we controleren op de trigger van de Composer. Laten we dit in twee stappen breken. We controleren eerst de trigger en vervolgens Composer. Vervang de tweede TODO-opmerking door het volgende:

 $ msg = exec ("$ git log -n 1 --format = format:% s% b"); if (strpos ($ msg, "[trigger: composer]")! == false) echo $ yellow. "Step3: Composer Hook". $ leeg. "\ N"; echo "-> Triggering installatie - haal een". $ cyaan. "koffie" . $ leeg. "\ N"; // run composer echo "->". $ cyaan. "OK" . $ leeg. "\ N"; 

De eerste regel haalt het commit-bericht op met behulp van de git log commando en doorgeven in een speciaal formaat om eventuele aanvullende informatie uit te sluiten. Vervolgens controleren we of de string het speciale trigger-woord heeft en echo de derde stap en OK-bericht. We controleren het trefwoord Composer, maar u kunt meerdere zoekwoorden implementeren voor andere functies, zoals: migreren in Laravel of eenheidstests uitvoeren. Voeg iets toe om uw workflow te verbeteren.

De laatste stap is om Composer uit te voeren. Composer heeft twee opdrachten: componist installeren en update van de componist.

Het installatiecommando leest de composer.json bestand als het een vindt composer.lock, en omdat sommige mensen kunnen toevoegen composer.lock naar hun .gitignore-bestand, is het veiliger om uit te voeren update van de componist (het kijkt altijd naar de composer.json het dossier.

Het tweede probleem is dat Composer soms GIT gebruikt om pakketten te downloaden en deze pogingen mislukken vanwege de omgevingsvariabelen. Dus hier is een goede plek om gewoon de omgevingsvariabele "GIT_DIR" te verwijderen. Vervang de opmerking om Composer uit te voeren met het volgende:

 chdir ( "/ var / www / demo"); putenv ( "GIT_DIR"); exec ("update van de componist");

Deze code is ongecompliceerd. We verplaatsen het PHP-proces naar de map van de site en verwijderen het GIT_DIR omgevingsvariabele, zodat GIT normaal functioneert. De laatste regel voert Composer uit.


Loose Ends binden

We hebben nu beide hooks ingesteld, maar we zijn nog niet helemaal klaar om onze server te gaan gebruiken. Eerst moeten we deze hooks uitvoerbaar maken:

 chmod a + x ~ / demo.git / hooks / pre-receive chmod a + x ~ / demo.git / hooks / post-receive

Maak vervolgens een GIT-repository in de map van de site. We krijgen een foutmelding als we proberen onze hooks uit te voeren, omdat de map van de site geen GIT-repo is. Om dit type te repareren:

 cd / var / www / demo git init git remote add origin /home/vagrant/demo.git

De eerste twee regels maken de repo en vervolgens voegen we de bare repository toe als de oorsprong van deze repo.

Voeg ook uw openbare sleutel toe aan de bevoegde hosts van deze server, zodat u zonder wachtwoord toegang tot de server kunt krijgen via GIT. U kunt uw openbare sleutel kopiëren door op uw computer te typen (niet de VM):

 cat ~ / .ssh / id_rsa.pub | pbcopy

Plak hem dan gewoon op de server in het bestand ~ / .Ssh / authorized_keys:

 vim ~ / .ssh / authorized_keys

Voeg het gewoon toe aan het bestand, maar laat wat er al in zit.

Vervolgens moeten we het IP-adres van deze server toevoegen aan ons hosts-bestand. Om het IP te vinden, typt u:

 ip -4 -o addr show label eth *

Dit toont u het IP-adres van alle netwerkapparaten op deze VM. Voeg degene toe die verbinding maakt met uw lokale netwerk. Als u niet kunt bepalen welk IP-adres u moet gebruiken, kopieert en plakt u er een in uw browser. Als het verbinding maakt, hebt u het juiste IP-adres.

Neem het IP-adres en voeg het toe aan het hostbestand van uw computer (niet het hosts-bestand van de VM). Het hosts-bestand op een Mac bevindt zich op etc / hosts:

 sudo vim / etc / hosts

Voeg vervolgens de volgende regel toe:

 #Format: IP-adres sitenaam 192.168.0.110 demo.dev

Als dit werkt, kunt u navigeren naar http://demo.dev in uw browser. Maak, terwijl je nog steeds op je Mac bent, een map en initialiseer een GIT-repo:

 mkdir ~ / demo cd ~ / demo git init echo "Hallo wereld"> index.php git add. git commit -am "heeft index.php toegevoegd" git remote add staging [email protected]: demo.git git push staging master

Als alles goed is gegaan, zou je een antwoord van onze GIT hooks moeten zien. Navigeren naar http://demo.dev moet resulteren in het bericht "Hello World" dat in uw browser wordt weergegeven.


Conclusie

Dus dat is hoe u een staging-omgeving kunt creëren die de functionaliteit van een typische PAAS nabootst. Als u problemen ondervindt om mee te nemen of als u meerdere staging-omgevingen wilt instellen, heb ik een script gemaakt dat het proces volledig automatiseert. Voor meer informatie kunt u stagr.gmanricks.com bezoeken.

Ik hoop dat je het artikel leuk vond. Aarzel niet om eventuele vragen te stellen in de opmerkingen. Bedankt voor het lezen.