Drupal is een enterprise-level content management systeem dat bekend staat om zijn flexibiliteit en kracht. Maar met die kracht komen ook uitdagingen. In dit artikel behandelen we de 15 meest voorkomende Drupal problemen en hoe je ze oplost.

1. White Screen of Death (WSOD)

Het gevreesde witte scherm zonder enige foutmelding.

Oorzaken

  • PHP geheugen limiet
  • Fatale PHP error
  • Corrupte module
  • Database verbindingsprobleem

Oplossing

Foutmeldingen inschakelen:

Voeg toe aan sites/default/settings.php:

error_reporting(E_ALL);
ini_set('display_errors', TRUE);
ini_set('display_startup_errors', TRUE);
$config['system.logging']['error_level'] = 'verbose';

PHP geheugen verhogen:

ini_set('memory_limit', '512M');

Via Drush (als beschikbaar):

drush watchdog:show --count=50

2. "The website encountered an unexpected error"

Generieke foutpagina in Drupal 8/9/10.

Oplossing

Bekijk de logs:

drush watchdog:show
# of
tail -f /path/to/drupal/sites/default/files/logs/drupal.log

Recent log in database:

SELECT * FROM watchdog ORDER BY wid DESC LIMIT 20;

3. Database connection errors

"PDOException" of "SQLSTATE" foutmeldingen.

Oorzaken

  • Verkeerde database credentials
  • Database server niet bereikbaar
  • Te veel verbindingen
  • Corrupte tabellen

Oplossing

Credentials controleren in settings.php:

$databases['default']['default'] = [
  'database' => 'drupal_db',
  'username' => 'db_user',
  'password' => 'db_password',
  'host' => 'localhost',
  'driver' => 'mysql',
  'port' => 3306,
];

Database repareren:

drush sql:query "REPAIR TABLE cache_default, cache_entity, cache_render;"

4. Cache problemen

Wijzigingen worden niet zichtbaar of site gedraagt zich vreemd.

Oplossing

Alle cache wissen:

drush cache:rebuild
# of korter:
drush cr

Via interface (als bereikbaar): Configuration → Performance → Clear all caches

Handmatig cache wissen:

rm -rf sites/default/files/css/*
rm -rf sites/default/files/js/*

Twig cache:

rm -rf sites/default/files/php/*

5. Module installatie of update mislukt

Composer geeft errors of module werkt niet.

Oorzaken

  • Dependency conflict
  • Onvoldoende rechten
  • Memory limit
  • Incompatibele versie

Oplossing

Composer memory verhogen:

COMPOSER_MEMORY_LIMIT=-1 composer require drupal/module_name

Dependencies updaten:

composer update --with-dependencies

Module status controleren:

drush pm:list --status=enabled

Geforceerde installatie:

drush pm:enable module_name -y
drush updatedb -y

6. Bestandsupload problemen

Media of bestanden uploaden mislukt.

Oplossing

PHP settings aanpassen:

In .htaccess of php.ini:

upload_max_filesize = 64M
post_max_size = 64M
max_file_uploads = 20

Bestandsrechten:

chmod -R 775 sites/default/files
chown -R www-data:www-data sites/default/files

Tijdelijke map: Controleer of de tmp map schrijfbaar is:

// In settings.php
$settings['file_temp_path'] = '/tmp';

7. "Access denied" voor content of admin

Je krijgt onverwacht geen toegang tot bepaalde pagina's.

Oorzaken

  • Permissie instellingen
  • Content access modules
  • Corrupte permissions cache

Oplossing

Permissions cache herbouwen:

drush php-eval 'node_access_rebuild();'

User 1 rechten herstellen:

drush user:login

Rol permissies controleren: Ga naar People → Permissions en controleer de instellingen.

8. Views laden niet of geven errors

Views module problemen zijn veelvoorkomend.

Oplossing

Cache specifiek voor Views:

drush views:invalidate --all
drush cr

View exporteren en opnieuw importeren:

  1. Exporteer de view configuratie
  2. Verwijder de view
  3. Importeer opnieuw

Query debuggen: Schakel Views Query debug in via de view settings.

9. Trage website performance

Drupal kan traag worden zonder goede optimalisatie.

Oplossing

Caching inschakelen:

  1. Configuration → Performance
  2. Zet "Page cache maximum age" op een uur of meer
  3. Vink "Aggregate CSS files" en "Aggregate JavaScript files" aan

Redis/Memcache:

composer require drupal/redis
drush pm:enable redis

Database optimaliseren:

drush sql:query "OPTIMIZE TABLE node, node_field_data, users, cache_default;"

Watchdog logs beperken: Beperk de grootte van de watchdog tabel of schakel over naar syslog.

10. Update hooks falen

drush updatedb geeft errors.

Oplossing

Specifieke update opnieuw uitvoeren:

drush updatedb-status
drush updatedb

Hook handmatig uitvoeren:

drush php-eval 'module_load_install("module_name"); module_name_update_8001();'

Database state resetten:

DELETE FROM key_value WHERE collection = 'system.schema' AND name = 'module_name';

11. Configuratie sync problemen

Config import/export werkt niet correct.

Oorzaken

  • UUID mismatch
  • Missing dependencies
  • Verouderde configuratie

Oplossing

Config status bekijken:

drush config:status

Specifieke config importeren:

drush config:import --partial --source=/path/to/config

UUID synchroniseren:

drush config:get system.site uuid

12. Theme/template problemen

Frontend ziet er verkeerd uit of Twig errors.

Oplossing

Twig debugging inschakelen:

In sites/default/services.yml:

parameters:
  twig.config:
    debug: true
    auto_reload: true
    cache: false

Theme cache wissen:

drush cr

Template suggesties bekijken: Met Twig debug aan zie je template suggestions in de HTML source.

13. Cron draait niet

Geplande taken worden niet uitgevoerd.

Oplossing

Cron handmatig uitvoeren:

drush cron

Cron URL (voor externe cron):

https://jouwsite.nl/cron/CRON_KEY

De cron key vind je in Configuration → Cron.

Server crontab:

0 * * * * cd /path/to/drupal && drush cron

14. SSL/HTTPS mixed content

Onveilige content waarschuwingen na SSL activatie.

Oplossing

Base URL forceren:

In settings.php:

$settings['trusted_host_patterns'] = [
  '^jouwsite\.nl$',
  '^www\.jouwsite\.nl$',
];
$base_url = 'https://jouwsite.nl';

Oude URLs in content vervangen:

UPDATE node__body SET body_value = REPLACE(body_value, 'http://jouwsite.nl', 'https://jouwsite.nl');

15. Memory exhausted errors

"Allowed memory size exhausted" foutmelding.

Oplossing

PHP memory verhogen:

In settings.php:

ini_set('memory_limit', '512M');

In .htaccess:

php_value memory_limit 512M

Batch processing gebruiken: Voor grote operaties, gebruik de Batch API in plaats van alles in één keer.

Nuttige Drush commando's

# Status overzicht
drush status

# Database backup
drush sql:dump > backup.sql

# Module status
drush pm:list

# Updates bekijken
drush pm:security

# Watchdog logs
drush watchdog:show --count=20

Gerelateerde artikelen


Hulp nodig?

Kom je er niet uit? Ons supportteam staat voor je klaar! Stuur een ticket via het klantenportaal en we helpen je meestal binnen een paar uur verder.