Hoe zorg je voor zorgeloze Drupalhosting?

Door Thomas van EldijkBijgewerkt op 25 april 2024 0 Reacties

Om ervoor te zorgen dat jouw Drupalwebsite qua hosting zonder problemen functioneert en jij je volledig kunt concentreren op het beheren van je website, heb ik een aantal ‘best practices’ verzameld die wij als Drupaldevelopers in de afgelopen jaren hebben geleerd.

Deze tips vereisen wel dat je al enige kennis hebt van hoe een webserver functioneert. Heb je hier geen ervaring mee? Dan raad ik je aan niet het wiel opnieuw te gaan uitvinden en je tijd beter te besteden. Kijk bijvoorbeeld naar een hostingoplossing zoals Pantheon.io

PHP-werkgeheugen vergroten

Drupal heeft minimaal 128 MB PHP-werkgeheugen nodig. PHP is de scripttaal waarin Drupal geschreven is en wat voor bijna alle functies nodig is.

Een goed voorbeeld van een functie binnen Drupal die veel PHP-werkgeheugen nodig heeft is de Imagefield Crop-module. Met name wanneer je grote afbeeldingen wilt uploaden, moeten de bewerkingen die je doet plaatsvinden in het PHP-werkgeheugen.

Een van de vervelende eigenschappen van te weinig PHP-werkgeheugen is dat je hier binnen Drupal niet snel achter komt. Een functie of module doet het gewoon niet meer, met meestal een WSOD (White Screen of Death) als gevolg. Om er achter te komen dat het PHP-werkgeheugen tekort schiet moet je de Apache Error Logs raadplegen. Hier verschijnen dan meldingen zoals:

“PHP Fatal error: Allowed memory size of ******* bytes exhausted (tried to allocate * ) in voorbeeld.php”

Hoe je het PHP-werkgeheugen kunt ophogen kun je zien in deze tutorial

Hoe groot het PHP-werkgeheugen moet zijn, hangt af van de functies van jouw website. De ene website doet het prima met 128 MB (het minimum dat aanbevolen wordt door Drupal.org), de ander moet toch echt 256 MB, 512 MB of meer hebben. Zeker modules als Image Crop of Backup and Migrate hebben veel geheugen nodig.

MySQL max_allowed_packet size vergroten

Het opvragen van data uit de database heet een query en deze wordt in een ‘packet’ verstuurd richting de database. Hoe groot deze ‘packet’ mag zijn, hangt af van je MySQL-versie, dit kan variëren van 1 MB tot 16MB. Omdat de queries vanuit Drupal vrij groot zijn, ontstaat bij de wat grotere Drupalwebsites de melding dat de ‘packet size’ te klein is. Er is geen richtlijn hoe groot deze moet zijn. Dit verschilt namelijk per website, of beter gezegd: per query. Over het algemeen is 256 MB meer dan voldoende. De maximale grootte van de packet is 1024 MB.

Een ontwikkelomgeving

Als je al bekend bent met een ontwikkel/test/productie-omgeving, dan kun je dit punt overslaan. Je weet dan welke grote voordelen dit biedt. Door niet direct in de productiewebsite updates uit te voeren, modules te installeren of css-aanpassingen te doen, voorkom je een hoop mogelijke problemen.

Die problemen kunnen natuurlijk wel op de ontwikkelomgeving plaatsvinden, maar daar is hij voor. In de meest simpele vorm zet je naast je live-website nog een website neer die je gebruikt om op te ontwikkelen.

Het wordt nog beter wanneer je kan gaan werken met GIT en onafhankelijk van de omgeving de database, files of code van Drupal kunt synchroniseren. Je kunt dit zelf op gaan zetten maar als je onze blogartikelen vaker leest, dan weet je dat hiervoor een out-of-the-box oplossing is: www.pantheon.io

Op de hoogte blijven van internet trens en ontwikkelen? Meld je aan op onze nieuwsbrief

Cron opdelen via Elysia Cron

Binnen Drupal zijn er diverse processen die automatisch uitgevoerd worden. Denk aan het plaatsen van content in een searchtabel zodat bezoekers hierop kunnen zoeken, het maken van een back-up of het opschonen van sessies.

Deze processen worden verzameld in een cronjob die Drupal automatisch start. Je kunt binnen Drupal zelf bepalen hoe vaak de cron geactiveerd wordt. Eens per drie uur, per dag of per week.

Er kleven verschillende nadelen aan het uitstellen van de cronjob. Een van de grootste is wel dat wanneer je geregeld content schrijft, deze niet direct vindbaar is in de zoekfunctie van de website. Maak je weinig nieuwe content of heb je helemaal geen zoekfunctionaliteit aangezet op jouw website? Dan heb je hier geen last van.

Wil je meer controle over wat er gebeurt binnen de cron of wil je zware processen op specifieke tijden laten plaatsen vinden (bv. ‘s nachts), dan is Elysia Cron een ideale module.

Cloudflare

Cloudflare is een externe dienst en maakt in principe elke hosting een stuk aangenamer. Cloudlare fungeert als een superslimme DNS-server. Een DNS-server regelt het verkeer van je domeinnaam. Cloudflare biedt je verschillende features, zoals: caching, een beveiligde omgeving via HTTPS, en een firewall, waarbij je kunt aangeven welk cms je host. Op het moment dat bots of hackers je Drupalwebsite benaderen via de url: /wp-admin (Wordpress) of /adminstrator (Joomla), dan blokkeert Cloudflare de toegang. Dit scheelt je server een hoop ongewenst bezoek.

Lees hier meer over de voordelen van Cloudflare

Drush

Heb je een eigen server of virtual server tot je beschikking? Dan is de installatie van Drush aan te raden. Drush is een command line script voor linux / unix systemen. Je kunt met Drush via een commando zoals ‘drush up’ je Drupal website updaten.

Dit zijn een paar basiscommando’s voor Drush

Drush is niet per se nodig voor het hosten van een Drupalwebsite, maar het maakt het beheer ervan wel een stuk aangenamer. Alles wat je over Drush wilt weten, vind je op: http://www.drush.org/

Backup and Migrate

Dit is een module voor Drupal die het mogelijk maakt om de data van je website veilig op te slaan. Een van de sterke eigenschappen van Backup and Migrate is dat het je in staat stelt meerdere back-upschema’s te maken.

Bijvoorbeeld eens per week een complete back-up die naar een FTP-locatie wordt gestuurd, en elke nacht een back-up van de database die op de webserver zelf bewaard wordt. Zo’n schema kost je niet al te veel dataverkeer, en mocht er iets mis gaan met de content van de website, dan heb je i.i.g. een back-up van de dag ervoor.

Naast een op maat back-upschema kun je het opslaan van je websitedata nog verder verfijnen. Zo kun je oude back-ups op je lokale FTP-server verwijderen of een melding laten sturen naar je e-mail adres wanneer er iets mis is gegaan met de back-up.

Hopelijk zorgen deze tips ervoor dat je de hosting van je Drupalwebsite net iets meer kunt verfijnen en zorgeloos kunt werken aan je website. Mocht je zelf nog tips hebben om de hosting te verbeteren? Ben ik iets vergeten? Ik zie je tips of vragen graag terug in het reactiegedeelte hieronder.

Meer inzichten over Hosting