Drupal7 setup met drush en git-ftp
Drush, Git en Git-FTP kunnen ook voor de ontwikkeling van kleinere sites en hosting met alleen FTP toegang een belangrijk verschil maken in gemak en snelheid van zowel ontwikkeling als aanpassingen live doorvoeren. Kennis van Drush, Git of git-ftp is niet nodig. Wel ga ik er van uit dat je een locale server hebt draaien en dat je al eens eerder een Drupal installatie hebt opgezet. Ik werk op een Ubuntu/Debian systeem en installeer in de voorbeelden met 'apt-get install' voor andere besturings systemen kan dit afwijken. Aan het einde van het artikel geef ik in een 'Workflow' samengevat de belangrijkste commando's en stappen.
Drush opzetten en gebruiken:
sudo apt-get install drush
Via het pakket beheer systeem (apt-get install) wordt de daarin gedefinieerde versie van Drush geïnstalleerd. Dit is niet de nieuwste maar in dit geval prima.
Ga, nadat je drush hebt geïnstalleerd, naar je webroot en gebruik drush om Drupal te downloaden:drush dl drupal
Je heb nu dezelfde Drupal gedownload als wanneer je de actuele versie van de drupal.org website zou downloaden. Installeer nu Drupal op de manier die je voorkeur heeft. Dit kan ook via drush maar dat is buiten het bereik van dit artikel.
Nu je Drupal geïnstalleerd hebt kun je vanuit je Drupal root andere drush commando's gebruiken.
Module downloaden: drush dl modulenaam
Module aanzetten (enable): drush en modulenaam
Het geheugen opschonen (cache clear): drush cc
Alle geheugen opschonen: drush cc all
Git:
Git is een programma waarmee je wijzigingen in je code kunt bijhouden en beheren.sudo apt-get install git
De git opdrachten voor Drupal kun je bij een normale installatie uitvoeren vanuit de Drupal root of dieper. Drupal is standaard voorzien van een .gitignore file waardoor git weet welke bestanden hij niet moet volgen. Maar git is nog niet in gang gezet (geinitialiseerd) voor onze website.
Ga naar de Drupal root van de site en initialiseer git: git init
Vanaf nu is git geactiveerd voor de website. Maar welke bestanden git wanneer toevoegd aan de huidige situatie bepaal je zelf. Dit gebeurd in twee stappen. Het toevoegen van bestanden aan de wachtrij met 'git ad'. En na één of meerdere keren toevoegen kun je deze wachtrij committen (aanmelden).
Op dit moment hebben we nog geen bestanden toegevoegd en gaan we eerst kijken wat de status van git is: git status
Als het goed is zie je een hele lijst met bestanden die nog moeten worden toegevoegd. We gaan ze toevoegen en de eerste aanmelding maken.
Voeg de bestanden toe aan de git wachtrij: git ad
Maak de eerste aanmelding (commit): git commit -m "mijn eerste aanmelding in git"
De '-m' staat voor message. Git verplicht de gebruiker om een boodschap (tussen de aanhalingstekens) bij iedere commit achter te laten zodat je terug kan vinden waar de commit over ging.
Op het moment dat je code hebt gewijzigd ten opzichte van de vorige commit kun je dit zien met git status
. Als je wilt weten wat het verschil (difference) is met de vorige commit doe je dat met: git diff
. Als je de wijzigingen hebt bekeken en tevreden bent kun je de wijzigingen weer in de wachtrij toevoegen: git add
en vervolgens na één of meerdere 'git add' opdrachten kun je de code weer aanmelden met git commit
.
Git biedt veel meer mogelijkheden zoals het teruggaan naar een eerdere commit, het maken van een aftakking en het opzetten van een kopie van git op afstand. Iets wat buiten het bereik van dit artikel valt maar waar genoeg over te vinden is.
GitHub youtube kanaal
Gebruik de Youtube search om instructie filmpjes en uitleg over de gewenste git toepassing te vinden.
git-ftp:
sudo apt-get install git-ftp
Stel de git-ftp default in:
Ga naar de git config file. Deze tref je aan in: jou-drupal-root/.git/config
Open de file en voeg de volgende informatie toe:[git-ftp]
user = gebruikersnaam-van-ftp-account
url = adres.nl/naar/drupal_webroot
password = wachtwoord-van-ftp-gebruiker
We gaan nu voor de eerste keer de code naar de productie server verplaatsen (pushen): git ftp init
Het pushen daarna: git ftp push
De workflow
Als het goed is heb je nu de volgende programma's geïnstalleerd: Drush, Git, Git-ftp. Na de configuratie en het initialiseren ziet je workflow er ongeveer zo uit:
Stap 1: Development met Drush:
- Code aanpassen
- eventuele modules downloaden:
drush dl modulenaam
- eventuele modules aan zetten:
drush en modulenaam
- De drupal cache clearen:
drush cc all
- Controleren of alles werkt
Stap 2: Versiebeheer met Git:
- Status bekijken:
git status
- Wijzigingen controleren:
git diff
- Wijzigingen toevoegen:
git add
- Wijzigingen committen:
git commit
Stap 3: Productie bijwerken met git-ftp:
git ftp push
- Live controleren of de wijzigingen goed zijn doorgekomen
Stap 4: Database / instellingen live bijwerken: Let op!!
- Git en git-ftp gaan alleen over de code en niet over de instellingen in de database zoals de aangezette modules (drush en). Er zijn verschillende mogelijkheden om deze wijzigingen door te voeren. Van het handmatig overnemen, het overschrijven van de database tot een drupal module zoals features.
- Log in op de site om cache te clearen en updates te draaien.
- Als alles live goed draait kan weer lokaal met Stap 1 worden begonnen voor de volgende aanpassingen.
Stel dat de code op je productie / live server toch niet goed werkt dan kun je dit makkelijk en snel herstellen door met git naar een eerdere commit of aftakking te gaan en deze eerdere status van je code naar de server te pushen met 'git ftp push'. Het terugspringen naar een eerdere commit kan met git checkout het-nummer-van-de-commit
Conclusie
Ook voor eenvoudige sites en shared hosting kunnen een paar simpele opdrachten in drush, git en git-ftp een verschil maken in gemak en snelheid van ontwikkeling.