De 15 meest voorkomende Drupal problemen en oplossingen
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:
- Exporteer de view configuratie
- Verwijder de view
- 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:
- Configuration → Performance
- Zet "Page cache maximum age" op een uur of meer
- 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
- Drupal installeren via Installatron
- Drupal basis configuratie
- Drupal beveiliging
- Drupal backup en migratie
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.
0 van 0 vonden dit nuttig