Drupal 8 Multisite – Overzicht
De belangrijkste reden om een multisite-installatie van Drupal te gebruiken, is het besparen van tijd wanneer je meerdere Drupal-websites beheert die allemaal dezelfde versie van de Drupal-kern gebruiken. Telkens wanneer er een nieuwe kernupdate van Drupal wordt uitgebracht, hoef je die update slechts één keer uit te voeren op één codebasis, in plaats van op elke afzonderlijke site. Maar er zijn ook nadelen. Deze worden echter verzacht als je gebruikmaakt van het Aegir-hostingsysteem.
In andere gevallen vereisen de complexiteit en de potentiële problemen die ontstaan bij het handmatig beheren van een multisite-installatie vrij geavanceerde technische vaardigheden. Gebruikers met dat kennisniveau zijn meestal vertrouwd met het gebruik van de “opdrachtregelinterface (CLI)”, en via de commandoregel kun je elke beheerde site in minder dan twee minuten bijwerken. Met Aegir gaat het nog sneller, omdat alle sites in een wachtrij kunnen worden geplaatst voor updates via een “wijs-en-klik”-interface, waarbij het volledige platform (Aegir-talk voor een multisite-codebasis) naar een nieuwere versie wordt gemigreerd. Alle sites die niet correct werken, worden automatisch teruggedraaid.
Multisite-basisprincipes
Hoewel een Drupal-site een webserverprogramma (zoals Apache of IIS), een databaseprogramma (zoals MySQL of MSSql) en een PHP-interpreter nodig heeft, bevindt alles wat uniek is voor jouw site zich in je database en je codebasis.
Het bijwerken van de Drupal-kern komt in wezen neer op het vervangen van je codebasis. Je database blijft ongewijzigd, behalve dat je na het vervangen van de codebasis het “update-script” [JOUWSITE/update.php] voor elke site moet uitvoeren.
Redenen om één database per site te gebruiken
Databases draaien op de achtergrond en worden aangestuurd door de codebasis. Over het algemeen hoef je je nooit zorgen te maken over de database zelf.
Pogingen om slechts één database voor meerdere sites te gebruiken, leveren weinig tot geen voordeel op. De minimale besparing aan schijfruimte die je kunt bereiken door slechts één database te hebben, weegt niet op tegen de potentiële problemen die je daardoor kunt krijgen.
- Als de gegevens van één site per ongeluk door jou of door andere gebruikers worden beschadigd, of door een kwaadwillige aanval worden aangetast, kan dit invloed hebben op alle sites.
- Een database bestaat uit veel “tabellen”. Als je besluit één van je sites uit de multisiteconfiguratie te halen, zal het moeilijk zijn te bepalen welke tabellen bij welke site horen en welke tabellen gedeeld worden door alle sites.
Eén codebasis per site
In theorie zou het hebben van één gedeelde codebasis voor alle sites die draaien op dezelfde versie van Drupal tijd en schijfruimte besparen.
Schijfruimte is goedkoop, dus laten we dat aspect vergeten.
Zoals hierboven vermeld, kan het bijwerken van elke Drupal-site na het uitkomen van een nieuwe kernversie in enkele minuten worden uitgevoerd via de commandoregel. Het is daarom beter om tijd te investeren in het leren van deze vaardigheid dan te proberen te leren hoe je een multisiteconfiguratie kunt opzetten en debuggen.
Het delen van een codebasis zou vooral nuttig zijn als al je sites exact dezelfde modules en instellingen gebruiken, bijvoorbeeld als je afzonderlijke en onderscheidende sites beheert voor elk sportteam binnen een competitie.
Maar als meerdere sites die je beheert verschillende modules gebruiken, loop je het risico dat een fout in een module die niet door alle sites wordt gebruikt, de werking van alle sites verstoort.
Multisite-configuratie in Drupal 8 instellen
Als je Drupal-sites wilt instellen in een multisiteconfiguratie, begin dan hier.