Installeer composer en drush op een webserver

Moeilijkheid

Trefwoorden

Voorwoord

Normaal worden composer en drush door de hosting voorzien. Is dat niet zo dan kan het zelf doen, maar je moet tot één en ander toegang hebben.
Zo moeten composer en drush geïnstalleerd worden in de hoofdmap van je domein ( meestal de map net boven de public_html map ) zodat die van buitenaf niet bereikbaar zijn.
Toegang tot die map is dus vereist.

Deze tutorial kan ook gebruikt worden om een recente versie van composer of drush op een server te gebruiken waar verouderde versies geïnstalleerd zijn.

Om drush te kunnen installeren heb je eerst composer nodig. Die gaan we dus eerst installeren.

Wat je moet weten

Belangrijk!!
Voor je begin moet je weten hoeveel werkgeheugen uw server heeft.
Composer gebruikt heel wat geheugen en het heeft geen zin om composer te installeren op een server die minder dan 2GB aan werkgeheugen heeft.
Een kleine module installeren zal misschien nog net lukken, maar een composer update commando zal resulteren in een "Killed" resultaat. 

SSH verbinden met de server
Zorg dat je via ssh bent ingelogd op de server. Dit kan op 3 manieren.

  1. Via putty op windows( Zie SSH toegang met Putty ) 
  2. Via de terminal op uw mac.
    commando: ssh -p 1234 account@example.com en druk enter en vul uw hoofdwachtwoord en druk nogmaals op enter.
    Vervang 1234 door de poort die uw provider gebruikt. De standaard poort is 22. account vervang je door accountnaam van uw hoofddomein en example.com vervang je uiteraard door uw eigen domein.
  3. Sommige providers zoals Neostrada bieden ook een terminal aan via cpanel. Deze kan je ook gebruiken.

=> Nog even vermelden dat je na iedere commando die je ingeeft op enter moet drukken om het uit te voeren.

Enkele commando's en termen die we gaan gebruiken.

  • mkdir staat voor make directory. Daarmee maak je een nieuwe map aan op uw server
  • cd staat voor change directory. Met dit commando navigeer je door de mappenstructuur van uw uw server. Geef het commando cd in gevolgd door de naam van de map waar je heen wil. Wil je in een drupal installatie bijvoorbeeld naar de map files die in sites => default staat dan geef je het command cd sites/default/files in. Een map terug gaan doe je met het command cd ../ Vanuit de map files terug naar de drupal root doe je dus zo cd ../../../ zo ga je  mappen terug naar boven.
  • cd ~/ Dat is een speciaal cd commando die er voor zorg van je van in eender welke map je staat terug naar de hoofdmap gaat.
  • ls ( let op: kleine letter L) Staat voor list en geeft je een overzicht van de mappen en bestanden die aanwezig zijn in de map waar je op dat moment in staat.
  • alias Een alias is een commando die je zelf aanmaakt om te gebruiken op uw domein. Het commando is vrij te kiezen behalve als het al bestaat. 
    Een eigen alias ga je bijvoorbeeld niet cd of ls gaan benoemen. Het zal werken, maar het originele commando wordt overruled en is niet meer bruikbaar.
  • nano Dit is een editor die bestanden kan weergeven en bewerken op de server.

Installatie composer

Zorg dat je in de hoofdmap van uw domein staan. Weet niet zeker of je daar bent geef dan het commando cd ~/ in.

Maak een map aan om composer in te downloaden. vb mycomposer (de naam van de map kies je zelf, maar die moet je dan later correct in de alias zetten)
mkdir mycomposer 

Controleren of de map is aangemaakt dat kan met het commando ls zoals hierboven besproken.

Navigeer naar de net aangemaakte map mycompser:
cd mycomposer

Geef onderstaande commando in om composer te downloaden:
curl -sS https://getcomposer.org/installer | php

Het bestand, composer.phar genaamd, is nu gedownload in de map mycomposer.
Controleer met het commando ls
Als het goed is zie je composer.phar staan.

Mocht het curl command niet werken op uw server dan kan composer hier handmatig gedownload worden. Scroll naar beneden op de pagina tot bij de verschillende versies van composer. Download versie 1.9.3 en upload via ftp of via bestandsbeheer van het cpanel in de map mycomposer.

Als we dit op een server in eigen beheer zouden uitvoeren, dan hernoemen we composer.phar naar composer en verplaatsen die naar de map /usr/local/bin.
Van daaruit zou hij dan globaal beschikbaar zijn. 
Maar omdat we op een gedeelde server zitten hebben we geen toegangsrechten tot die mappen.
Daarom maken we een alias aan zodat composer globaal op het domein en de subdomeinen kan worden gebruikt.

Daarvoor ga je terug in de hoofdmap van je domein.
cd ~/

Open het verborgen .bash_profile bestand met nano. (in dit bestand worden alle instellingen van uw domein opgeslagen)
nano .bash_profile (let op de punt voor bash_profile, die moet er zeker staan)

Het kan dat er al enkel lijnen code in het bestand staan.

Onder de bestaande lijnen voeg je onderstaande toe.
alias composer="php ~/mycomposer/composer.phar" 

Composer alias aanmaken

Sla op met ctrl + o (kleine letter o van oscar) en daarna druk je op enter.
ctrl + x om nano te verlaten.

Heel belangrijk!
Herlaad .bash_profile. (Aliassen werken namelijk pas nadat het bestand opnieuw geladen is)
Dit kan je op 2 manier doen:
1. commando: source ~/.bash_profile
2. Log uit met commando exit en log terug in

De tweede manier is het beste omdat source nogal eens kan tegenwerken.

Vanaf nu zou composer moeten werken op uw server.
Dit kan je controleren door het commando composer -v in te geven.
Als je geen foutmeldingen krijgt, dan verschijnt een lijst met alle mogelijke composer commando's.

De composer versie kan je bekijken met commando composer --version (let op 2x koppelteken voor version anders wordt het als een waarde gezien krijg je een foutmelding)

Installatie Drush

Nu composer is geïnstalleerd kunnen we die gebruiken om drush te installeren.

Ga op nieuw in de hoofdmap van het domein staan. cd ~/

Maak een map mydrush aan of kies zelf een naam die je dan later in alias correct toevoegd.
mkdir mydrush

Navigeer naar de nieuwe map mydrush
cd mydrush

Om drush te downloaden geef je onderstaande commando in:
composer require drush/drush:9.x 

Die 9.x moet je mee geven zodat je niet de meest recente en experimentele versie download wat momenteel 10.x is.
Die is nog experimenteel en er zijn heel wat dingen gewijzigd.

Er worden nu een heel aantal bestanden gedownload. Laat dit lopen tot alles geïnstalleerd is.

Drush zelf zal je vinden in de map vendor/drush/drush

Nu moeten we net als bij composer nog een alias aanmaken om het globaal op het domein te kunnen gebruiken.

Ga naar de hoofdmap van het domein. cd ~/

Open .bash_profile met nano
nano .bash_profile

Zet onder lijn waar je daarnet de composer alias hebt geplaatst nu de drush alias.
alias drush="php ~/mydrush/vendor/drush/drush/drush"

Alias drush aanmaken

Opslaan met ctrl + o en enter drukken
Afsluiten met ctrl + x en enter.

Rest ons nog om .bash_profile opnieuw te laden. Net zoals daarnet bij composer kan dat op twee manier:

  1. commando: source ~/.bash_profile
  2. Log uit met commando exit en log terug in

Waarbij 2 het zekerste is.

Nadat je terug ingelogd bent kan je drush testen.

drush --version geeft je de versie van drush
Het commando drush zelf geeft je een overzicht van de commando's die je kan gebruiken.
Ga voor deze laatste wel in een map staan waar een drupal installatie staat. Zo krijg je de volledige lijst.
Sta je niet in een Drupal map dan krijg een beperkte lijst en ook een waarschuwing dat er geen drupal installatie is gevonden.

Er is ook een screencast van deze turorial op youtube. Zie onderaan deze pagina.

Wat betref het uitloggen en opnieuw inloggen in het filmpje:
Ik werk met terminal van mac waar snelkoppelingen naar de server voor zijn ingesteld.
Vandaar dat het opnieuw verbinden met de server zo snel gaat.

Enjoy composer en drush