Een selectie van opdrachtgevers

Drupal installeren met Composer

Er zijn vele wegen die naar Rome leiden en zo is het ook met Drupal. Zo zijn er om te beginnen ook al verschillende manieren op Drupal te installeren.

Je kunt kiezen voor command line met behulp van Drush, je kunt alles los downloaden, een installation profile gebruiken en nu ook middels Composer installeren. Het voordeel van de laatst genoemde is dat allerlei CLI commando's ook automatisch kunnen worden uitgevoerd.

 

In dit voorbeeld combineer ik de installatie middels een installation-profile en middels Composer.

 

Wat is Composer?

"Composer is a tool for dependency management in PHP. It allows you to declare the dependent libraries your project needs and it will install them in your project for you."

http://getcomposer.org/doc/00-intro.md

 

Wat is een dependency manager?

Met een dependency manager kun je third-party libraries die je project gebruikt makkelijker inladen. Het Symfony framework maak hier veelvuldig gebruik van door het inladen van bijv. Doctrine, Twig, Swiftmailer, etc, maar je kunt ook denken aan jQuery, Shadowbox plugin, etc. Normaliter moest je deze libraries handmatig downloaden en in het project plaatsen en als er updates zijn diezelfde stappen doorlopen.

Door het gebruik van een dependancy manager kun je aangeven welke library er gebruikt moet worden en welke minimum versie er gebruikt moet worden. Door het uitvoeren van de install / update optie wordt gecontroleerd welke libraries ontbreken of verouderd zijn.

 

Composer wordt in dit geval niet echt gebruikt als dependency manager, maar eerder als handig hulpmiddel om de installatie te vereenvoudigen.

 

Composer installeren

De makkelijkste manier om Composer binnen te halen is middels curl:

curl -sS https://getcomposer.org/installer | php

 

Als je geen beschikking hebt over curl kan het ook nog op een andere manier:

php -r "eval('?>'.file_get_contents('https://getcomposer.org/installer'));"

 

Na het uitvoeren van het curl commando zie je in de terminal:

#!/usr/bin/env php
All settings correct for using Composer
Downloading...
Composer successfully installed to: /Users/MacBookPro/Sites/www.patrickkannekens.nl/composer.phar
Use it: php composer.phar

 

En dat is het. Composer is nu 'geïnstalleerd' voor het project.

 

Composer JSON maken

De volgende stap is een Composer JSON bestand maken. Hierin komen alle commando's die moeten worden uitgevoerd.

 

De JSON die ik gebruik voor de installatie is als volgt:

{
  "name":"Installation profile",
  "description":"Install",
  "scripts": {
  "pre-install-cmd":[
    "drush make --no-cache /Users/MacBookPro/Sites/installation-profile/installation-profile.make -y",
    "mkdir sites/default/files",
    "cp sites/default/default.settings.php sites/default/settings.php",
    "chmod 777 sites/default/files",
    "chmod 777 sites/default/settings.php",
    "drush site-install installation-profile --db-url=mysql://[db-username]:[db-password]@[servername]/[databasename] --account-name=[admin-account] --account-pass=[admin-account-password] --site-name='[site-name]' -y",
    "rm sites/default/default.settings.php",
    "chmod 444 sites/default/settings.php"
    ]
  }
}

 

Binnen het JSON bestand kun je commando's opgeven die voor of na de installatie moeten lopen. Omdat we in dit geval niet echt een installatie doen (d.w.z. we maken geen gebruik van een Drupal package die wordt geïnstalleerd) worden er alleen pre-install commando's uitgevoerd.

 

De opdrachten stap-voor-stap

drush make --no-cache /Users/MacBookPro/Sites/installation-profile/installation-profile.make -y

Het uitvoeren van het installatie profiel. Hiermee wordt de laatste versie van Drupal gedownload en alle modules die staan aangegeven binnen het installation profile.

 

mkdir sites/default/files

Maak een map aan voor de bestanden.

 

cp sites/default/default.settings.php sites/default/settings.php

Kopieer de default.settings.php naar settings.php

 

chmod 777 sites/default/files
chmod 777 sites/default/settings.php

Verander de permissies van de bestanden en mappen zodat ze schrijfbaar zijn tijdens installatie.

 

drush site-install installation-profile --db-url=mysql://[db-username]:[db-password]@[servername]/[databasename] --account-name=[admin-account] --account-pass=[admin-account-password] --site-name='[site-name]' -y

Voor de site installatie uit middels drush. Hierbij is ruimte om automatisch gebruikersnaam en wachtwoord voor de database in te voeren en het admin account in te richten.

 

chmod 444 sites/default/settings.php

Als de installatie is voltooid kunnen de rechten van het settings bestand weer terug naar read-only worden gezet.

 

Uitvoeren

Het uitvoeren is eenvoudig. Kopieer het composer.phar en het composer.json bestand naar de map waarin je de site wilt installeren (/Users/MacBookPro/Sites/www.patrickkannekens.nl/ in dit geval).

Voer vervolgens het volgende commando uit:

php composer.phar install

 

Op dat moment gaat de installatie lopen en kun je achterover leunen :)

Tags

Drupal