Drush installeren in een Windows omgeving

Ingediend door Donny op do, 24/02/2011 - 06:56

Wie geregeld werkt aan Drupal websites weet dat er heel wat tijd kan kruipen in het up to date houden van de installatie en alle bijhorende modules. Gelukkig genoeg biedt Drupal hier ook weer een geweldige module voor die je hier bij kan helpen, namelijk Drush. Al is het eigenlijk niet echt een module maar eerder zoals op de projectpagina staat omschreven een command line shell of scripting interface voor Drupal. (Drupal's Swiss Army knife).

Indien je dit wenst te gebruiken op je hosting moet deze uiteraard al SSH toegang bieden, welke je op de meeste shared hostings niet zal krijgen. Als je op zoek gaat naar een hosting die deze optie aanbiedt kan ik je zeker Linuxsystems.be aanbevelen. (Zie eerdere blogpost: 'verhuisd van hosting')

Je website zal online waarschijnlijk draaien op een LAMP platform (Linux Apache MySQL PHP) maar je kan Drush evengoed installeren op een Windows systeem. Let wel dat er nog hard gewerkt wordt om Drush dezelfde functionaliteiten te bieden op een Windows systeem als bij een Linux systeem.

Zelf voeg ik Drush ook steeds toe aan mijn lokale installaties, zodat ik tijdens het testen of lokaal ontwikkelen van Drupal sites snel alles kan updaten of uitbreiden. Hieronder zal ik de nodige stappen overlopen die je dient uit te voeren om Drush lokaal op je Windows computer te installeren.

Indien je nog geen ervaring hebt met de command line kan je best even de blogpost 'Bespaar tijd door gebruik te maken van de command line' doorlezen.

Vooraleer van start te gaan geef ik nog graag even volgende tips mee die het werken met de command line nog wat kunnen vergemakkelijken. Misschien heb je reeds de MySQL server proberen aan te spreken maar kreeg je steeds te horen dat het commando MySQL niet gevonden kon worden.

Dit komt omdat het pad naar MySQL nog dient opgegeven te worden bij de systeemvariabelen, dit kan je doen door onderstaande stappen te volgen:

  • Rechtermuisknop op 'Deze computer' -> Eigenschappen -> Geavanceerde systeeminstellingen
  • Selecteer hier Omgevingsvariabelen -> Systeemvariabelen
  • Zoek hier naar de variabele 'Path' en klik op bewerken
  • Vul achteraan dit veld het pad in naar je MySQL bin map. Indien je gebruik maakt van een XAMPP installatie vul je hier volgend pad in: ;c:\xampp\mysql\bin

Als je nu je command line opent (of herstart indien deze nog open stond) kan je gebruik maken van het MySQL commando en zo de databases aanspreken.

Een andere handigheid is het werken met aliassen, indien je regelmatig dezelfde handelingen uitvoert via de command line kan je hiervoor een alias aanmaken. (Snelkoppelingen of shortcuts).

  • Open je command line tool (Zelf gebruik ik meestal Git Bash, welke met Git mee komt), standaard zal je startpositie in jouw gebruikersmap zijn, indien dit niet het geval is navigeer dan naar C:/Documents and Settings/jouw gebruikersnaam.
  • Al je aliassen of andere instellingen kan je plaatsen in het bestand .bash_profile. Geef daarom volgend commando op om het bestand aan te passen, indien het nog niet bestaat zal het automatisch aangemaakt worden: vim .bash_profile
  • Je zal onmiddelijk in de 'insert modus' geplaatst worden zodat je onmiddelijk je eerste alias kan toevoegen.
  • Indien je gebruik maakt van XAMPP is het bv handig om een alias naar je htdocs map toe te voegen, voeg volgende regel toe aan .bash_profile: alias root='cd C:/Xampp/htdocs'
    (Vervang root door de naam die je voor deze alias wilt gebruiken)
  • :w enter (om het bestand op te slaan)
  • :q enter (om het bestand te sluiten)

Indien je vanaf nu 'root' ingeeft in je command line zal je onmiddelijk verder verplaatst worden naar de root map van je websites. Op de meeste servers zal je ook gebruik kunnen maken van de Vim editor, deze kan je indien gewenst ook installeren op jouw Windows pc. Je kan het programma vinden op vim.org.

Vooraleer we Drush kunnen gaan installeren op onze lokale Windows pc dienen we nog enkele tools bij te installeren, waaronder LibArchive, Gzip en Wget. Deze gaan we nu eerst installeren en configureren.

Download LibArchive op http://gnuwin32.sourceforge.net/packages/libarchive.htm en installeer het programma (Indien de vraag komt voor de bestanden (sources) te downloaden mag je dit aanvinken)

Download en installeer Gzip op http://gnuwin32.sourceforge.net/packages/gzip.htm

Download en installeer Wget http://gnuwin32.sourceforge.net/packages/wget.htm

Voer nu eerst volgende wijzigingen uit:

  • Kopiëer het bestand bsdtar.exe -> C:\Program Files\GnuWin32\bin\bsdtar.exe en plak het terug als tar.exe -> C:\Program Files\GnuWin32\bin\tar.exe
  • Net zoals we het MySQL path hebben toegevoegd aan de omgevingsvariabelen gaan we dit nu ook doen voor Drush. Voeg volgende regel achteraan toe bij de Path variabele (dus na MySQL): ;C:\xampp\php;C:\xampp\htdocs\drush;C:\Program Files\GnuWin32\bin
    Zoals je kan zien verwijs ik Drush hier naar onze root (htdocs), dit omdat we dan Drush dadelijk voor al onze Drupal sites kunnen gebruiken. Indien je niet gebruik maakt van een XAMPP installatie dien je het eerste deel van deze regel aan te passen en te verwijzen naar de locatie waar bij jouw PHP geïnstalleerd staat.
  • Nu gaan we Drush downloaden en plaatsen in onze htdocs map, dit kan je doen via FTP maar vanaf nu kan je dat ook doen via de command line met het Wget commando.
    Voer hier volgend commando uit in je command line: wget http://ftp.drupal.org/files/projects/drush-All-versions-4.2.tar.gz
  • Pak het bestand uit met volgend commando: tar -xzvf drush-All-versions-4.2.tar.gz
  • Open nu het bestand drush.bat in de Drush map en voeg volgende regel toe: 
    @php.exe C:\xampp\htdocs\drush\drush.php %1 %2 %3 %4 %5 %6 %7 %8 %9

Vanaf nu kunnen we Drush beginnen te gebruiken voor al onze lokale Drupal projecten. Laten we even via de command line een Drupal site opstarten en deze voorzien van extra modules met Drush.

Eerst gaan we een database voorzien. Hiervoor gaan we verbinden met MySQL, gebruik hiervoor jouw gebruikersnaam en paswoord.

  • mysql -u username -p (Waarna je gevraagd zal worden je paswoord in te geven)

We maken een database aan (Naam zelf op te geven)

  • create database databasenaam

We verlaten MySQL terug met 'exit' en 'enter'

Nu gaan we ons verplaatsen naar onze htdocs map, indien je hier de alias voor hebt aangemaakt kan je deze nu ingeven of anders kan je naar navigeren met het cd commando.

  • root (Zelf heb ik root als alias opgegeven)

Nu gaan we Drupal downloaden en uitpakken. Zelf kijk ik op Drupal.be altijd naar de laatste download link, deze is voorzien van het Nederlandse profiel en bevat ook al dadelijk Views en CCK.

Alles is nu uitgepakt naar de map drupal-6.20, we gaan dit even hernoemen naar drupal en ruimen het tar bestand op

  • mv drupal-6.20 drupal
  • rm drupal-6.20.tar.gz

Als we nu surfen met onze browser naar http://localhost/drupal krijgen we het installatiescherm van Drupal te zien, wanneer we de installatie proberen te starten krijgen we nog de melding dat settings.php en de map files ontbreken, laten we dit ook even doen via de command line.

Indien je jezelf ook bevindt in de htdocs map kan je onderstaand pad gebruiken anders dien je het aan te passen naar de locatie waar jij je bevindt

  • cp drupal/sites/default/default.settings.php drupal/sites/default/settings.php
  • mkdir drupal/sites/default/files

Aangezien Windows niet met schrijfrechten werkt dienen we deze hier niet op te geven, dit kan je anders doen met het chmod commando.

We kunnen nu verder gaan met onze installatie, als we nu in de browser hiermee starten komen we op het scherm terecht waar we onze databasenaam en andere gegevens kunnen opgeven. Vervolledig nu de installatie.

Nu we een werkende Drupal installatie hebben kunnen we gaan spelen met Drush, laten we een template bij plaatsen en enkele modules.

Eerst gaan we naar de root van onze Drupal installatie gaan, navigeer hier naar toe met het cd commando, zelf stond ik nog in de htdocs map dus voor mij is het cd drupal

Om Drush even te testen kan je nu het commando drush status gebruiken, daarna krijg je de gegevens voor je Drupal installatie te zien.

Laten we even een template downloaden, downloaden doen we met drush dl (template of module naam) en inschakelen met drush en (template of module naam)

  • drush dl kanji
  • drush en kanji

Waarschijnlijk zul je hier en daar af en toe wel foutmeldingen zien optreden maar dit komt door het feit dat we nog op een Windows systeem zitten en de werking van Drush nog niet te vergelijken is met een Linux systeem. (Op mijn Macbook werkt dit ook zonder problemen)

We plaatsen er voor de handigheid ook nog even de admin menu module bij

  • drush dl admin_menu
  • drush en admin_menu

Als laatste zullen we ckeditor bij plaatsen maar deze vraagt iets meer stappen aangezien het om een externe plugin gaat. Eerst gaan we hiervoor de wysiwyg module downloaden en installeren

  • drush dl wysiwyg
  • drush en wysiwyg

De editor zelf dient in de libraries map te komen onder sites. Laten we deze map ook aanmaken. Afhankelijk van waar je je bevind op dit moment (normaal nog steeds in de root van onze Drupal installatie) geven we volgend commando op:

  • mkdir sites/all/libraries

Daarna verplaatsen we ons naar daar met cd sites/all/libraries

We gaan nu de editor zelf downloaden, afhankelijk van welke je wenst te plaatsen dien je op de website van de editor zelf de link op te zoeken, ikzelf geef de voorkeur aan ckeditor. Downloaden doen we terug met wget (Pakket komt niet van Drupal)

Uitpakken en opkuisen

  • tar -xzvf ckeditor_3.5.2.tar.gz
  • rm ckeditor_3.5.2.tar.gz

Nu kunnen we terug naar onze browser gaan en alles daar verder instellen. Voor even aan te tonen hoe snel dit allemaal kan gaan heb ik alles vanaf het maken van de database samengevat in onderstaande video.

Meer info over Drush en de commando's kan je terugvinden op: http://drush.ws

Laat gerust weten in de reacties wat je van Drush vind en je ervaringen ermee, welke commando's je geregeld gebruikt.

Video