{"id":22045,"date":"2026-03-03T11:06:11","date_gmt":"2026-03-03T11:06:11","guid":{"rendered":"https:\/\/codico.io\/your-php-installation-appears-to-be-missing-the-mysql-extension-in-wordpress-complete-fix\/"},"modified":"2026-03-04T07:40:20","modified_gmt":"2026-03-04T07:40:20","slug":"wordpress-mysql-extensie-ontbreekt-oplossing","status":"publish","type":"post","link":"https:\/\/codico.io\/nl\/wordpress-mysql-extensie-ontbreekt-oplossing\/","title":{"rendered":"Your PHP-Installatie Lijkt de MySQL-Extensie te Missen in WordPress \u2013 Volledige Oplossing"},"content":{"rendered":"<h2 class=\"wp-block-heading\">De Fout Die Plotseling Verschijnt<\/h2><p>Je upgrade PHP.<br\/>Of migreert je website.<br\/>Of zet een nieuwe VPS op en installeert WordPress vanaf nul.<\/p><p>Alles lijkt prima \u2014 totdat dat niet meer zo is.<\/p><p>Plotseling zie je, in plaats van je homepage, dit:<\/p><blockquote class=\"wp-block-quote is-layout-flow wp-block-quote-is-layout-flow\"><p><em>Your PHP installation appears to be missing the MySQL extension which is required by WordPress.<\/em><\/p><\/blockquote><p>Het is zo\u2019n melding die eenvoudig klinkt\u2026 maar dat zelden is.<\/p><p>In oudere handleidingen is de uitleg bijna altijd hetzelfde:<br\/>\u201cInstalleer de MySQL-extensie.\u201d<\/p><p>In werkelijkheid, vooral in moderne omgevingen (PHP 8.2, 8.3, 8.4), heeft deze fout meestal weinig te maken met een ontbrekende extensie \u2014 en veel meer met hoe PHP is geconfigureerd, geladen of gescheiden tussen verschillende omgevingen.<\/p><p>Soms verschijnt deze fout:<\/p><ul class=\"wp-block-list\"><li>direct na het upgraden naar PHP 8.3<\/li>\n\n<li>na het overstappen van Apache naar Nginx<\/li>\n\n<li>tijdens een Docker-rebuild<\/li>\n\n<li>na een servermigratie<\/li>\n\n<li>wanneer CLI en FPM verschillende PHP-versies gebruiken<\/li><\/ul><p>En soms \u2014 na<\/p><h2 class=\"wp-block-heading\">Snelle Diagnose in 60 Seconden<\/h2><p>Voordat je iets opnieuw installeert of configuratiebestanden wijzigt, is het verstandig even te stoppen. Wanneer je de melding <em>your php installation appears to be missing the mysql extension<\/em> ziet, is de eerste reactie meestal om direct pakketten te gaan installeren. In de praktijk maakt dat het probleem vaak alleen maar groter.<\/p><p>Het echte doel is eenvoudig: bepalen of <em>wordpress missing mysql extension<\/em> daadwerkelijk wordt veroorzaakt door een ontbrekende extensie, of dat PHP iets anders laadt dan je verwacht.<\/p><p>In moderne omgevingen, vooral met PHP 8.2 of 8.3, draait het probleem vaak meer om de context dan om een ontbrekende component.<\/p><h3 class=\"wp-block-heading\">1. Controleer de Actieve PHP-versie<\/h3><p>Begin met de basis. Welke PHP-versie draait er eigenlijk?<\/p><p>Als je SSH-toegang hebt:<\/p><pre class=\"wp-block-preformatted\">php -v<\/pre><p>Dit toont de CLI-versie. Dat is nuttig, maar niet doorslaggevend. Je webserver kan namelijk een compleet andere PHP-build gebruiken.<\/p><p>Om de web runtime te controleren, maak een tijdelijk bestand aan met de naam <code>info.php<\/code> in de rootmap van je WordPress-installatie:<\/p><pre class=\"wp-block-preformatted\"><?php phpinfo();<\/div??><\/pre><p>Open dit in je browser en controleer:<\/p><ul class=\"wp-block-list\"><li>de PHP-versie<\/li>\n\n<li>het pad van het <em>Loaded Configuration File<\/em><\/li>\n\n<li>de Server API (Apache, FPM\/FastCGI, enz.)<\/li><\/ul><p>Het komt verrassend vaak voor dat je in de CLI PHP 8.3 ziet, terwijl de browser PHP 8.1 rapporteert. In zo\u2019n situatie heeft <em>php missing mysql extension wordpress<\/em> mogelijk helemaal niets met MySQL te maken. Het kan simpelweg een andere PHP-instantie zijn die wordt gebruikt.<\/p><h3 class=\"wp-block-heading\">2. Controleer of MySQLi of PDO_MySQL Is Geladen<\/h3><p>Zoek in de output van <code>phpinfo()<\/code> naar:<\/p><ul class=\"wp-block-list\"><li><code>mysqli<\/code><\/li>\n\n<li><code>pdo_mysql<\/code><\/li><\/ul><p>Als geen van beide verschijnt, dan heeft PHP daadwerkelijk geen MySQL-ondersteuning en is de melding <em>your php installation appears to be missing the mysql extension<\/em> technisch gezien correct.<\/p><p>Als ze wel verschijnen, wordt de situatie interessanter. WordPress kan nog steeds een <em>missing mysqli extension wordpress<\/em>-fout tonen, ook al bestaat de extensie. Dat wijst meestal op een configuratieverschil in plaats van een installatieprobleem.<\/p><p>Via SSH kun je ook het volgende uitvoeren:<\/p><pre class=\"wp-block-preformatted\">php -m | grep -i mysql<\/pre><p>Ook dit controleert alleen de CLI-modules. De webserver kan een andere set extensies laden.<\/p><h3 class=\"wp-block-heading\">3. Controleer het Geladen php.ini-Bestand<\/h3><p>Zoek op de <code>phpinfo()<\/code>-pagina naar de regel:<\/p><p><em>Loaded Configuration File<\/em><\/p><p>Zorg ervoor dat het pad overeenkomt met de PHP-versie die je webserver daadwerkelijk gebruikt.<\/p><p>Zoek vervolgens naar:<\/p><pre class=\"wp-block-preformatted\">extension_dir<\/pre><p>Als <code>extension_dir<\/code> naar een verkeerde map of naar een andere PHP-build verwijst, kunnen extensies zoals <code>mysqli<\/code> of <code>pdo_mysql<\/code> wel op de server aanwezig zijn maar niet worden geladen tijdens runtime. In zulke gevallen betekent <em>fix mysql extension error wordpress<\/em> niet dat je iets nieuws moet installeren. Het betekent dat je PHP moet laten verwijzen naar de juiste extensiemap.<\/p><p>Op dit punt ontstaat meestal \u00e9\u00e9n van de volgende conclusies:<\/p><ul class=\"wp-block-list\"><li>De extensie is helemaal niet ge\u00efnstalleerd.<\/li>\n\n<li>De extensie is ge\u00efnstalleerd maar niet geactiveerd voor de actieve runtime.<\/li>\n\n<li>CLI en web-PHP gebruiken verschillende configuraties.<\/li><\/ul><p>Ga pas verder nadat je hebt vastgesteld welk scenario van toepassing is. Anders loop je het risico dat je het verkeerde probleem probeert op te lossen.<\/p><h2 class=\"wp-block-heading\">Waarom Deze Fout Misleidend Is in Moderne PHP-omgevingen<\/h2><p>Op het eerste gezicht klinkt de melding <em>your php installation appears to be missing the mysql extension<\/em> heel precies. Het suggereert dat er iets ontbreekt en dat het installeren ervan alles zal oplossen.<\/p><p>In 2026 is die aanname echter vaak onjuist.<\/p><p>De oorspronkelijke <code>mysql<\/code>-extensie is al jaren verouderd en volledig verwijderd uit moderne PHP-versies. WordPress gebruikt deze niet meer. In plaats daarvan maakt het gebruik van <code>mysqli<\/code> of <code>pdo_mysql<\/code>, die beide standaard aanwezig zijn in PHP 8.x-builds.<\/p><p>Dus wanneer WordPress tegenwoordig een <em>wordpress missing mysql extension<\/em>-fout toont, betekent dit zelden dat je \u201cMySQL-ondersteuning vergeten bent te installeren.\u201d Vaker geeft het aan dat PHP tijdens runtime de juiste module niet heeft geladen.<\/p><p>Dit verschil is belangrijk.<\/p><p><em><mark>Lees ook:<a href=\"https:\/\/codico.io\/nl\/functions-php-bewerken-wordpress\/\"> <\/a><a href=\"https:\/\/codico.io\/nl\/hoe-de-time-to-first-byte-ttfb-van-je-wordpress-site-te-verbeteren\/\" title=\"\">Hoe je Time to First Byte (TTFB) voor je WordPress-site kunt verbeteren<\/a><\/mark><\/em><\/p><div class=\"wp-block-image\"><figure class=\"aligncenter size-full\"><img fetchpriority=\"high\" decoding=\"async\" width=\"968\" height=\"520\" src=\"https:\/\/codico.io\/wp-content\/uploads\/2026\/03\/MySQL-vs-MySQLi.png\" alt=\"MySQL-vs-MySQLi\" class=\"wp-image-22032\" srcset=\"https:\/\/codico.io\/wp-content\/uploads\/2026\/03\/MySQL-vs-MySQLi.png 968w, https:\/\/codico.io\/wp-content\/uploads\/2026\/03\/MySQL-vs-MySQLi-300x161.png 300w, https:\/\/codico.io\/wp-content\/uploads\/2026\/03\/MySQL-vs-MySQLi-768x413.png 768w, https:\/\/codico.io\/wp-content\/uploads\/2026\/03\/MySQL-vs-MySQLi-600x322.png 600w\" sizes=\"(max-width: 968px) 100vw, 968px\" \/><\/figure><\/div><h3 class=\"wp-block-heading\">MySQL vs MySQLi: De Naamval<\/h3><p>De foutmelding verwijst nog steeds naar de \u201cMySQL-extensie\u201d, waardoor veel ontwikkelaars naar het verkeerde pakket zoeken. Ze proberen <code>mysql<\/code> te installeren, maar dat bestaat niet meer in PHP 8.2 of 8.3.<\/p><p>Wat WordPress daadwerkelijk nodig heeft is:<\/p><ul class=\"wp-block-list\"><li><code>mysqli<\/code><\/li>\n\n<li>of <code>pdo_mysql<\/code><\/li><\/ul><p>Als geen van beide beschikbaar is voor de actieve PHP-runtime, kun je variaties tegenkomen zoals <em>missing mysqli extension wordpress<\/em> of <em>php missing mysql extension wordpress<\/em>.<\/p><p>Maar de formulering in de foutmelding is niet mee ge\u00ebvolueerd met PHP. Daar begint de verwarring.<\/p><h3 class=\"wp-block-heading\">PHP 8.x en het Probleem van Runtime-context<\/h3><p>Moderne PHP-configuraties zijn zelden eenvoudig.<\/p><p>Je kunt bijvoorbeeld hebben:<\/p><ul class=\"wp-block-list\"><li>meerdere ge\u00efnstalleerde PHP-versies<\/li>\n\n<li>afzonderlijke PHP-FPM-pools<\/li>\n\n<li>containerized deployments<\/li>\n\n<li>op maat gecompileerde PHP-builds<\/li>\n\n<li>verschillende <code>php.ini<\/code>-bestanden voor CLI en web<\/li><\/ul><p>In zulke omgevingen betekent <em>fix mysql extension error wordpress<\/em> niet dat je een module moet downloaden. Het gaat erom dat de juiste PHP-runtime de juiste extensie uit de juiste map laadt.<\/p><p>Bijvoorbeeld:<\/p><ul class=\"wp-block-list\"><li>CLI kan tonen dat <code>mysqli<\/code> geladen is<\/li>\n\n<li>maar de web-runtime mogelijk niet<\/li>\n\n<li>of PHP-FPM kan verwijzen naar een verouderde <code>extension_dir<\/code><\/li>\n\n<li>of een container-rebuild kan <code>pdo_mysql<\/code> hebben overgeslagen<\/li><\/ul><p>Al deze scenario\u2019s veroorzaken dezelfde melding.<\/p><p>Daarom is het zelden de juiste eerste stap om blind pakketten te installeren. Het echte probleem draait bijna altijd om afstemming.<\/p><p>WordPress, PHP en de database moeten binnen dezelfde configuratiecontext werken. Wanneer \u00e9\u00e9n onderdeel verschuift \u2014 vooral tijdens een upgrade naar PHP 8.3 \u2014 breekt het systeem stilletjes, en toont WordPress deze algemene foutmelding.<\/p><h3 class=\"wp-block-heading\">Wanneer het Niet eens om de Extensie Gaat<\/h3><p>Er is nog een nuance die makkelijk over het hoofd wordt gezien.<\/p><p>Soms is de extensie correct geladen, maar kan WordPress nog steeds geen verbinding maken met de database. In zulke gevallen kan de melding verschijnen omdat de database-laag al vroeg in het bootstrap-proces faalt.<\/p><p>Dit kan gebeuren wanneer:<\/p><ul class=\"wp-block-list\"><li>databasegegevens onjuist zijn<\/li>\n\n<li>het MySQL-socketpad is gewijzigd<\/li>\n\n<li>MariaDB via TCP draait terwijl PHP een Unix-socket verwacht<\/li>\n\n<li>de databaseservice niet draait<\/li>\n\n<li>SELinux de toegang blokkeert<\/li><\/ul><p>Vanuit het perspectief van WordPress mislukt de databaseverbinding. De standaardaanname is dan dat MySQL-ondersteuning ontbreekt.<\/p><p>Met andere woorden: de foutmelding beschrijft niet altijd de werkelijke oorzaak. Ze beschrijft het symptoom.<\/p><p>Als je deze context begrijpt, verandert ook je aanpak van het probleem. In plaats van extensies opnieuw te installeren, begin je de uitvoeringsketen te volgen.<\/p><p>En daar begint de echte diagnose.<\/p><p><em><mark>Lees ook:<a href=\"https:\/\/codico.io\/nl\/functions-php-bewerken-wordpress\/\"> <\/a><a href=\"https:\/\/codico.io\/nl\/hoe-wordpress-cache-wissen\/\" title=\"\">Hoe je de WordPress-cache wist wanneer je wijzigingen niet zichtbaar zijn<\/a><\/mark><\/em><\/p><h2 class=\"wp-block-heading\">Waar de Verbinding Breekt<\/h2><p>Wanneer WordPress de melding <em>your php installation appears to be missing the mysql extension<\/em> toont, faalt er iets in de uitvoeringsketen. De duidelijkste manier om dit te begrijpen is door die keten zelf te bekijken.<\/p><p>Op hoofdniveau ziet de flow er zo uit:<\/p><pre class=\"wp-block-preformatted\">WordPress Core<br\/> \u2193<br\/>PHP Runtime (Web SAPI \/ PHP-FPM \/ Apache Module)<br\/> \u2193<br\/>MySQL-extensie (mysqli of pdo_mysql)<br\/> \u2193<br\/>Database-engine (MySQL 8 \/ MariaDB)<\/pre><p>Als een schakel in deze keten niet goed op elkaar aansluit, kan WordPress de database-laag niet initialiseren. Het resultaat kan een <em>wordpress missing mysql extension<\/em>-fout zijn, zelfs als de extensie technisch gezien aanwezig is.<\/p><p>Laten we bekijken waar deze keten meestal breekt.<\/p><h3 class=\"wp-block-heading\">1. De Extensie Is Niet Ge\u00efnstalleerd<\/h3><p>Dit is het eenvoudigste scenario. PHP is ge\u00efnstalleerd zonder <code>mysqli<\/code> of <code>pdo_mysql<\/code>.<\/p><p>Dit kan gebeuren wanneer:<\/p><ul class=\"wp-block-list\"><li>PHP vanuit de bron wordt gebouwd zonder <code>mysqlnd<\/code><\/li>\n\n<li>er minimale container-images worden gebruikt<\/li>\n\n<li>PHP handmatig op een VPS wordt ge\u00efnstalleerd zonder het MySQL-pakket<\/li><\/ul><p>In dat geval zullen <code>php -m<\/code> en <code>phpinfo()<\/code> geen <code>mysqli<\/code> of <code>pdo_mysql<\/code> tonen. De foutmelding is dan correct.<\/p><h3 class=\"wp-block-heading\">2. De Extensie Is Ge\u00efnstalleerd maar Niet Geactiveerd<\/h3><p>Hier bestaat de extensie wel op de server, maar wordt deze niet geladen.<\/p><p>Veelvoorkomende oorzaken:<\/p><ul class=\"wp-block-list\"><li><code>extension=mysqli<\/code> ontbreekt in <code>php.ini<\/code><\/li>\n\n<li>de extensie is gecompileerd maar niet geactiveerd<\/li>\n\n<li>er worden verschillende <code>php.ini<\/code>-bestanden gebruikt voor CLI en web<\/li>\n\n<li>een verkeerde <code>extension_dir<\/code> is ingesteld<\/li><\/ul><p>Hier vallen veel gevallen van <em>php missing mysql extension wordpress<\/em> onder. Ontwikkelaars zien <code>mysqli.so<\/code> in de map met extensies en gaan ervan uit dat alles in orde is. Ondertussen laadt PHP-FPM deze extensie helemaal niet.<\/p><h3 class=\"wp-block-heading\">3. CLI en Web-PHP Zijn Verschillend<\/h3><p>Dit is een van de meest voorkomende oorzaken in moderne configuraties.<\/p><p>Je voert uit:<\/p><pre class=\"wp-block-preformatted\">php -m | grep -i mysql<\/pre><p>Het toont <code>mysqli<\/code>.<\/p><p>Alles lijkt correct.<\/p><p>Maar de webserver gebruikt een compleet andere PHP-versie. Die versie kan MySQL-ondersteuning mogelijk niet geactiveerd hebben.<\/p><p>In deze situatie is het probleem niet dat MySQL-ondersteuning ontbreekt. Het is een mismatch in de runtime.<\/p><p>Dit komt vooral vaak voor na:<\/p><ul class=\"wp-block-list\"><li>een upgrade naar PHP 8.3<\/li>\n\n<li>het wisselen van hostingpanelen<\/li>\n\n<li>het inschakelen van MultiPHP in cPanel<\/li>\n\n<li>een migratie van Apache naar Nginx<\/li><\/ul><p>De CLI- en webomgevingen lopen dan ongemerkt uit elkaar.<\/p><h3 class=\"wp-block-heading\">4. De Extensie Wordt Geladen maar de Databaselaag Faalt<\/h3><p>Dit is het subtiele geval.<\/p><p><code>mysqli<\/code> verschijnt in <code>phpinfo()<\/code>.<br\/>PHP is correct.<br\/>Configuratiepaden lijken in orde.<\/p><p>Toch toont WordPress nog steeds meldingen van het type <em>fix mysql extension error wordpress<\/em>.<\/p><p>Hier ontstaat de breuk lager in de keten:<\/p><ul class=\"wp-block-list\"><li>verkeerd socketpad<\/li>\n\n<li>onjuiste host in <code>wp-config.php<\/code><\/li>\n\n<li>de databaseservice draait niet<\/li>\n\n<li>MariaDB is ge\u00fcpdatet en heeft standaardinstellingen gewijzigd<\/li>\n\n<li>rechtenproblemen op het socketbestand<\/li><\/ul><p>Vanuit het perspectief van WordPress mislukt de verbinding tijdens het bootstrapproces. De foutmelding gaat ervan uit dat de extensielaag verantwoordelijk is.<\/p><p>Technisch gezien is dat niet zo.<\/p><h3 class=\"wp-block-heading\">5. Gecontaineriseerde en Cloudomgevingen<\/h3><p>In Docker- of cloudimplementaties kan de breuk tijdens de buildfase ontstaan.<\/p><p>Bijvoorbeeld:<\/p><ul class=\"wp-block-list\"><li>de basisimage bevat geen <code>pdo_mysql<\/code><\/li>\n\n<li><code>docker-php-ext-install mysqli pdo_mysql<\/code> is overgeslagen<\/li>\n\n<li>een rebuild verving de PHP-laag maar niet de configuratie<\/li>\n\n<li>omgevingsvariabelen wijzigden de databaseverbinding<\/li><\/ul><p>In zulke gevallen kan <em>wordpress missing mysql extension<\/em> verschijnen na wat een ogenschijnlijk niet-gerelateerde infrastructuurupdate leek.<\/p><p>Daarom staat deze fout zelden op zichzelf. Ze is bijna altijd contextgebonden.<\/p><p>Wanneer je de keten begrijpt, behandel je dit niet langer als een eenvoudig installatieprobleem. In plaats daarvan bepaal je welke laag is verschoven.<\/p><p>Met dat perspectief wordt de oplossing methodisch in plaats van reactief.<\/p><h2 class=\"wp-block-heading\">De Werkelijke Oorzaken Achter de MySQL-extensiefout<\/h2><p>Tegen dit punt heb je waarschijnlijk al vastgesteld waar de keten breekt. Nu wordt de vraag praktisch: wat moet er precies worden gecorrigeerd?<\/p><p>Het antwoord hangt volledig af van je omgeving. Een shared hostingomgeving werkt heel anders dan een eigen VPS of een Docker-deployment. De foutmelding kan hetzelfde zijn, maar de onderliggende oorzaak verschilt.<\/p><p>Laten we de meest voorkomende scenario\u2019s bekijken.<\/p><h3 class=\"wp-block-heading\">Shared Hostingomgevingen<\/h3><p>Op shared hosting, vooral met cPanel of vergelijkbare controlepanelen, heeft het probleem vaak te maken met het wisselen van PHP-versies.<\/p><p>Veel hostingproviders laten meerdere PHP-versies naast elkaar bestaan. Je kunt bijvoorbeeld upgraden naar PHP 8.3 in het paneel, terwijl het domein nog steeds gekoppeld is aan een oudere handler.<\/p><p>Als je <em>wordpress missing mysql extension<\/em> ziet op shared hosting, controleer dan:<\/p><ul class=\"wp-block-list\"><li>welke PHP-versie aan het domein is toegewezen<\/li>\n\n<li>of <code>mysqli<\/code> en <code>pdo_mysql<\/code> zijn ingeschakeld in de lijst met PHP-extensies<\/li>\n\n<li>of MultiPHP Manager de juiste handler toepast<\/li><\/ul><p>In cPanel betekent dit meestal:<\/p><ol class=\"wp-block-list\"><li><em>Select PHP Version<\/em> openen<\/li>\n\n<li>controleren dat PHP 8.2 of 8.3 actief is<\/li>\n\n<li>controleren dat <code>mysqli<\/code> en <code>mysqlnd<\/code> zijn aangevinkt<\/li><\/ol><p>Na het opslaan vernieuw je de website. Als de runtime correct wisselt, verdwijnt de fout onmiddellijk.<\/p><p>Als dat niet gebeurt, kan het domein nog steeds aan een andere PHP-pool gekoppeld zijn.<\/p><p>Hier voorkomt goed <em>doorlopend <mark style=\"background-color:rgba(0, 0, 0, 0)\" class=\"has-inline-color has-red-color\"><a href=\"https:\/\/codico.io\/nl\/website-maintenance\/\" title=\"\">WordPress onderhoud<\/a><\/mark><\/em> stille configuratiedrift. Kleine versieverschillen zijn makkelijk te missen totdat ze de productieomgeving verstoren.<\/p><h3 class=\"wp-block-heading\">VPS- en Dedicated Server-configuraties (Ubuntu \/ Debian)<\/h3><p>In VPS-omgevingen is het probleem meestal duidelijker zichtbaar.<\/p><p>Als PHP zonder MySQL-ondersteuning is ge\u00efnstalleerd, kun je dit controleren:<\/p><pre class=\"wp-block-preformatted\">php -m | grep -i mysql<\/pre><p>Als er niets verschijnt, installeer dan de vereiste module:<\/p><pre class=\"wp-block-preformatted\">sudo apt update<br\/>sudo apt install php-mysql<\/pre><p>Start daarna de juiste service opnieuw:<\/p><pre class=\"wp-block-preformatted\">sudo systemctl restart php8.3-fpm<\/pre><p>Of, als je Apache gebruikt:<\/p><pre class=\"wp-block-preformatted\">sudo systemctl restart apache2<\/pre><p>Maar hier maken mensen vaak een fout.<\/p><p>Ze herstarten de verkeerde PHP-FPM-versie.<\/p><p>Als meerdere versies zijn ge\u00efnstalleerd, zorg er dan voor dat je precies de service herstart die je webserver gebruikt. Het herstarten van <code>php8.2-fpm<\/code> terwijl Nginx naar <code>php8.3-fpm<\/code> verwijst, verandert niets.<\/p><p>Alleen al deze mismatch kan <em>php missing mysql extension wordpress<\/em>-fouten veroorzaken, zelfs wanneer de extensie aanwezig is.<\/p><h3 class=\"wp-block-heading\">Nginx + PHP-FPM mismatch<\/h3><p>In moderne configuraties, vooral na PHP-upgrades, verwijzen configuratiebestanden soms nog steeds naar oudere sockets.<\/p><p>Bijvoorbeeld:<\/p><pre class=\"wp-block-preformatted\">fastcgi_pass unix:\/run\/php\/php8.1-fpm.sock;<\/pre><p>Als het systeem is ge\u00fcpgraded naar PHP 8.3 maar Nginx nog steeds naar de 8.1-socket verwijst, laadt WordPress de verkeerde runtime.<\/p><p>In dat scenario:<\/p><ul class=\"wp-block-list\"><li>CLI toont <code>mysqli<\/code><\/li>\n\n<li>PHP 8.3 heeft MySQL-ondersteuning<\/li>\n\n<li>De webserver blijft 8.1 gebruiken zonder deze ondersteuning<\/li><\/ul><p>De fout verschijnt en lijkt op een ontbrekende extensie.<\/p><p>In werkelijkheid is het een probleem met een configuratieverwijzing.<\/p><h3 class=\"wp-block-heading\">Docker- en containergebaseerde deployments<\/h3><p>Gecontaineriseerde omgevingen voegen nog een extra laag toe.<\/p><p>Als je bouwt vanuit de offici\u00eble PHP-image, zijn MySQL-extensies niet altijd standaard inbegrepen. Je moet ze expliciet toevoegen tijdens de build:<\/p><pre class=\"wp-block-preformatted\">RUN docker-php-ext-install mysqli pdo pdo_mysql<\/pre><p>Als deze regel wordt verwijderd, overgeslagen of overschreven tijdens een rebuild, kan de volgende deployment plotseling de fout <em>your php installation appears to be missing the mysql extension<\/em> veroorzaken.<\/p><p>Dit gebeurt vaak na:<\/p><ul class=\"wp-block-list\"><li>upgrades van de base image<\/li>\n\n<li>het overschakelen van Debian- naar Alpine-images<\/li>\n\n<li>wijzigingen in de CI\/CD-pipeline<\/li><\/ul><p>De extensie werd nooit handmatig \u201cverwijderd\u201d. De container werd simpelweg opnieuw opgebouwd zonder deze extensie.<\/p><p>In complexe omgevingen met API-lagen, SaaS-systemen of <em><mark style=\"background-color:rgba(0, 0, 0, 0)\" class=\"has-inline-color has-red-color\"><a href=\"https:\/\/codico.io\/nl\/ai-integration\/\" title=\"\">AI-integratie in moderne webplatforms<\/a><\/mark><\/em> komen deze bijwerkingen van rebuilds vaak voor. WordPress kan slechts \u00e9\u00e9n onderdeel zijn binnen een grotere architectuur.<\/p><h3 class=\"wp-block-heading\">Meerdere PHP-installaties<\/h3><p>Dit verdient extra aandacht.<\/p><p>Veel servers draaien met:<\/p><ul class=\"wp-block-list\"><li><code>\/usr\/bin\/php<\/code><\/li>\n\n<li><code>\/usr\/local\/bin\/php<\/code><\/li>\n\n<li>meerdere FPM-pools<\/li>\n\n<li>afzonderlijke pools per domein<\/li><\/ul><p>Je kunt bevestigen dat <code>mysqli<\/code> globaal is ge\u00efnstalleerd, maar de actieve pool kan een ander <code>php.ini<\/code> gebruiken.<\/p><p>Hier wordt ervaring met <em><mark style=\"background-color:rgba(0, 0, 0, 0)\" class=\"has-inline-color has-red-color\"><a href=\"https:\/\/codico.io\/nl\/web-development\/\" title=\"\">professionele WordPress webontwikkeling<\/a><\/mark><\/em> relevant. Vaststellen welke PHP-runtime het verzoek daadwerkelijk verwerkt, vereist het analyseren van poolconfiguratiebestanden, niet alleen het controleren van modules.<\/p><p>Wanneer multi-versie configuraties uit elkaar beginnen te lopen, maakt WordPress zich niet druk over de reden. Het meldt simpelweg een ontbrekende extensie.<\/p><p>In al deze scenario\u2019s is het patroon hetzelfde. Het probleem gaat zelden over het installeren van iets nieuws. Het gaat erom dat de juiste runtime de juiste extensie laadt binnen de juiste configuratiecontext.<\/p><p>Hoe complexer de infrastructuur, hoe subtieler de misconfiguratie.<\/p><p><em><mark>Lees ook:<a href=\"https:\/\/codico.io\/nl\/functions-php-bewerken-wordpress\/\"> <\/a><a href=\"https:\/\/codico.io\/nl\/5-stappen-301-redirects-wordpress-htaccess\/\" title=\"\">5 stappen om 301-redirects aan WordPress toe te voegen via htaccess (volledige praktische gids)<\/a><\/mark><\/em><\/p><h2 class=\"wp-block-heading\">Probleemoplossingstabel: Symptoom \u2192 Oorzaak \u2192 Oplossing<\/h2><p>Hieronder vind je een praktisch overzicht van de meest voorkomende variaties van de fout <em>your php installation appears to be missing the mysql extension<\/em>.<\/p><figure class=\"wp-block-table\"><table class=\"has-fixed-layout\"><thead><tr><th>Symptoom<\/th><th>Waarschijnlijke hoofdoorzaak<\/th><th>Wat controleren<\/th><th>Praktische oplossing<\/th><\/tr><\/thead><tbody><tr><td><code>php -m<\/code> toont geen MySQL-modules<\/td><td>MySQL-extensie niet ge\u00efnstalleerd<\/td><td>CLI-modulenlijst<\/td><td>Installeer <code>php-mysql<\/code> of schakel <code>mysqli<\/code> \/ <code>pdo_mysql<\/code> in<\/td><\/tr><tr><td><code>php -m<\/code> toont <code>mysqli<\/code>, browser niet<\/td><td>Mismatch tussen CLI en web-PHP<\/td><td><code>phpinfo()<\/code> vs CLI-versie<\/td><td>Stem de PHP-FPM-versie af op de webserver<\/td><\/tr><tr><td><code>mysqli<\/code> zichtbaar in <code>phpinfo()<\/code>, maar WordPress faalt<\/td><td>Verkeerde <code>extension_dir<\/code><\/td><td><code>extension_dir<\/code> in <code>php.ini<\/code><\/td><td>Corrigeer het directorypad en herstart FPM<\/td><\/tr><tr><td>Fout verschijnt na PHP-upgrade<\/td><td>Nginx of Apache verwijst naar oude socket<\/td><td>Webserverconfiguratie<\/td><td>Werk <code>fastcgi_pass<\/code> of de PHP-handler bij<\/td><\/tr><tr><td>Fout na migratie<\/td><td>PHP-versie stilzwijgend gewijzigd<\/td><td>Hostingpaneel \/ MultiPHP<\/td><td>Wijs opnieuw de juiste PHP-versie aan het domein toe<\/td><\/tr><tr><td>Fout in Docker<\/td><td>Extensie niet ge\u00efnstalleerd tijdens build<\/td><td>Dockerfile<\/td><td>Voeg <code>docker-php-ext-install mysqli pdo_mysql<\/code> toe en bouw opnieuw<\/td><\/tr><tr><td>Databaseverbinding blijft mislukken<\/td><td>Socket- of hostmismatch<\/td><td><code>wp-config.php<\/code> DB_HOST<\/td><td>Pas de host aan naar het juiste TCP- of socketpad<\/td><\/tr><tr><td>Fout verschijnt willekeurig<\/td><td>Meerdere PHP-pools actief<\/td><td>FPM-poolconfiguraties<\/td><td>Controleer de actieve pool en herstart de juiste service<\/td><\/tr><\/tbody><\/table><\/figure><p>Deze tabel laat zien wat doorgaans de fout <em>wordpress missing mysql extension<\/em> veroorzaakt in moderne PHP 8.x-omgevingen.<\/p><p>Let op iets belangrijks.<\/p><p>In meer dan de helft van deze scenario\u2019s is de extensie technisch gezien aanwezig. Het probleem is contextueel \u2014 verkeerde runtime, verkeerd configuratiebestand of een verkeerde service-restart.<\/p><p>Daarom lost het blind opnieuw installeren van pakketten vaak niets op.<\/p><p>Als geen van de bovenstaande rijen op jouw situatie van toepassing is, is het de moeite waard om naar het werkelijke gedrag van het systeem te kijken in plaats van alleen naar de theorie.<\/p><p>Laten we bekijken hoe dit er in de praktijk uitziet.<\/p><h2 class=\"wp-block-heading\">Praktijkvoorbeeld: na een upgrade naar PHP 8.3<\/h2><p>Een veelvoorkomende situatie ziet er als volgt uit.<\/p><p>Een server draait PHP 8.1 zonder problemen.<br\/>Alles werkt.<br\/>De beheerder upgradet naar PHP 8.3.<\/p><p>Direct na de upgrade toont WordPress:<\/p><p><em>your php installation appears to be missing the mysql extension<\/em><\/p><p>De eerste reflex is om te denken dat PHP 8.3 MySQL-ondersteuning heeft laten vallen.<\/p><p>Dat is niet zo.<\/p><p>Wat er in veel van deze gevallen daadwerkelijk gebeurde:<\/p><ul class=\"wp-block-list\"><li>PHP 8.3 werd correct ge\u00efnstalleerd<\/li>\n\n<li><code>mysqli<\/code> werd gecompileerd en was beschikbaar<\/li>\n\n<li>Nginx verwees nog steeds naar de oude 8.1-socket<\/li>\n\n<li>PHP-FPM 8.3 werd nooit opnieuw gestart<\/li><\/ul><p>Vanuit het perspectief van WordPress faalde de databaselaag tijdens het opstarten. Daardoor verscheen de generieke foutmelding.<\/p><p>Bij <mark style=\"background-color:rgba(0, 0, 0, 0)\" class=\"has-inline-color has-red-color\"><em><a href=\"https:\/\/codico.io\/nl\/\" title=\"\">CoDiCo<\/a><\/em><\/mark> hebben we dit patroon herhaaldelijk gezien tijdens versieovergangen. De oplossing was zelden het installeren van iets nieuws. Bijna altijd ging het om het uitlijnen van de runtime-lagen na de upgrade.<\/p><p>Zodra de webserver naar de juiste FPM-pool verwees en de service correct opnieuw werd gestart, verdween de fout meteen.<\/p><h2 class=\"wp-block-heading\">Randgevallen die je niet zou verwachten<\/h2><p>Er zijn situaties waarin alles aan de oppervlakte correct lijkt. <code>mysqli<\/code> is zichtbaar in <code>phpinfo()<\/code>. De PHP-versie komt overeen met wat de server zou moeten draaien. De databasegegevens in <code>wp-config.php<\/code> lijken correct. En toch meldt WordPress nog steeds <em>your php installation appears to be missing the mysql extension<\/em>.<\/p><p>Op dit punt ligt het probleem meestal dieper in de stack.<\/p><p>Een van de meest over het hoofd geziene oorzaken is een socket-mismatch. Op veel Linux-systemen communiceert MySQL of MariaDB via een Unix-socketbestand in plaats van via TCP. Als het socketpad verandert tijdens een upgrade, kan PHP nog steeds <code>mysqli<\/code> laden, maar geen verbinding tot stand brengen. WordPress toont dan een generieke melding <em>wordpress missing mysql extension<\/em>, ook al werkt de extensie zelf perfect.<\/p><p>Een ander subtiel probleem verschijnt na MariaDB-upgrades. Standaard authenticatiemethoden of verbindingsinstellingen kunnen ongemerkt veranderen. Als PHP \u00e9\u00e9n configuratie verwacht terwijl de databaseserver nu een andere vereist, mislukt de handshake al vroeg. Vanuit de applicatielaag lijkt het alsof MySQL-ondersteuning ontbreekt. In werkelijkheid gaat het om een authenticatie- of transportprobleem.<\/p><p>SELinux kan ook interfereren. Op streng beveiligde systemen kunnen beveiligingsregels, zelfs wanneer <code>mysqli<\/code> is ingeschakeld en correct geladen, voorkomen dat PHP toegang krijgt tot de database-socket. De extensie is aanwezig, maar de runtime kan deze niet gebruiken. De foutmelding die volgt is misleidend, maar technisch gezien consistent met een mislukte database-initialisatie.<\/p><p>Aangepast gecompileerde PHP-builds introduceren nog een extra variabele. Als PHP is gecompileerd zonder <code>mysqlnd<\/code>, of is gebouwd tegen een incompatibele clientbibliotheek, kan de module ge\u00efnstalleerd lijken maar onvoorspelbaar gedrag vertonen. Deze gevallen zijn zeldzaam, maar wanneer ze optreden, werken standaard troubleshootingstappen niet omdat het probleem structureel is.<\/p><p>Containerorkestratie voegt nog meer complexiteit toe. In gedistribueerde omgevingen kan de databasehost die in <code>wp-config.php<\/code> is gedefinieerd, binnen het containernetwerk anders worden opgelost. Een verkeerd geconfigureerde servicenaam of omgevingsvariabele kan de connectiviteit verbreken, en WordPress kan opnieuw melden <em>php missing mysql extension wordpress<\/em>, zelfs wanneer de extensie correct binnen de container wordt geladen.<\/p><p>Het patroon in al deze randgevallen is consistent. De zichtbare fout beschrijft zelden de echte oorzaak. Ze geeft alleen aan dat WordPress zijn databaselaag niet kon initialiseren, waarbij de extensielaag simpelweg de eerste veronderstelling is.<\/p><p>Tegen de tijd dat je dit niveau van troubleshooting bereikt, gaat de oplossing niet langer over het installeren van pakketten. Het wordt een proces van het volgen van de uitvoeringsstroom, het controleren van configuratie-afstemming en het bevestigen dat elke laag precies communiceert zoals bedoeld.<\/p><p>Het goede nieuws is dat, zodra het echte breekpunt is gevonden, de oplossing meestal eenvoudig is. De moeilijkheid ligt niet in het toepassen van de correctie, maar in het vaststellen van de juiste laag.<\/p><p>Vervolgens bundelen we alles in een laatste diagnostische checklist, zodat je elke laag systematisch kunt controleren voordat je verder escaleert.<\/p><p><em><mark>Lees ook:<a href=\"https:\/\/codico.io\/nl\/functions-php-bewerken-wordpress\/\" title=\"\"> Een eenvoudige, duidelijke gids voor het bewerken van het functions.php-bestand in WordPress<\/a><\/mark><\/em><\/p><h2 class=\"wp-block-heading\">Laatste diagnostische checklist<\/h2><p>Als je dit probleem op een duidelijke en systematische manier wilt oplossen zonder steeds willekeurige fixes te proberen, gebruik dan de onderstaande checklist. Deze is bedoeld voor precies de situatie waarin WordPress blijft melden <em>your php installation appears to be missing the mysql extension<\/em>, terwijl de echte oorzaak verborgen kan zitten in de runtimecontext.<\/p><ul class=\"wp-block-list\"><li>Controleer de PHP-versie in de browser via <code>phpinfo()<\/code>, niet alleen via SSH. Als CLI- en webversies verschillen, debug je niet dezelfde runtime.<\/li>\n\n<li>Controleer in <code>phpinfo()<\/code> of <code>mysqli<\/code> of <code>pdo_mysql<\/code> wordt vermeld. Als geen van beide verschijnt, ontbreekt de extensie daadwerkelijk.<\/li>\n\n<li>Controleer het pad bij <em>Loaded Configuration File<\/em>. Zorg ervoor dat de <code>php.ini<\/code> die je bewerkt daadwerkelijk door de webruntime wordt geladen.<\/li>\n\n<li>Zoek <code>extension_dir<\/code> en controleer of dit overeenkomt met de actieve PHP-build. Een verkeerd pad kan stilletjes voorkomen dat modules worden geladen.<\/li>\n\n<li>Als je PHP-FPM gebruikt, controleer welke pool en welke socket door je webserver worden gebruikt. Na upgrades blijven Nginx- of Apache-configuraties vaak naar oudere sockets verwijzen.<\/li>\n\n<li>Herstart de juiste service. Het herstarten van \u201ceen\u201d PHP-FPM-service is niet voldoende als er meerdere versies bestaan. De actieve service moet opnieuw worden gestart.<\/li>\n\n<li>Als de extensie geladen is maar de fout blijft bestaan, controleer de databaseverbinding: servicestatus, hosttype (socket vs TCP) en of het socketpad is gewijzigd.<\/li>\n\n<li>Controleer opnieuw <code>wp-config.php<\/code> voor <code>DB_HOST<\/code>. In containeromgevingen is de juiste host vaak een servicenaam in plaats van <code>localhost<\/code>.<\/li>\n\n<li>Als je systeem SELinux of andere streng beveiligde policies gebruikt, controleer dan of PHP toegang heeft tot de databasesocket of netwerkpoort.<\/li>\n\n<li>Verwijder het bestand <code>info.php<\/code> zodra je klaar bent. Het publiek toegankelijk laten is een beveiligingsrisico.<\/li><\/ul><p>Als je alle bovenstaande punten kunt afvinken en de site nog steeds niet werkt, zit je niet langer in het \u201contbrekende extensie\u201d-scenario. In dat stadium gaat het om een dieper infrastructuur- of buildconsistentieprobleem, niet om een WordPress-updateprobleem.<\/p><h2 class=\"wp-block-heading\">FAQ<\/h2><h3 class=\"wp-block-heading\">Waarom zegt WordPress dat de MySQL-extensie ontbreekt als MySQLi ge\u00efnstalleerd is?<\/h3><p>Omdat de melding verouderde formulering gebruikt. WordPress heeft <code>mysqli<\/code> of <code>pdo_mysql<\/code> nodig, maar als PHP ze niet laadt in de actieve runtime, of als de runtimecontext niet overeenkomt, kan WordPress toch <em>wordpress missing mysql extension<\/em>-fouten tonen.<\/p><h3 class=\"wp-block-heading\">Ondersteunt PHP 8.3 nog steeds MySQL?<\/h3><p>Ja. PHP 8.3 ondersteunt MySQL via <code>mysqli<\/code> en <code>pdo_mysql<\/code>. Als je <em>php missing mysql extension wordpress<\/em> ziet, gaat het meestal om een configuratie- of runtime-afstemmingsprobleem en niet om ontbrekende ondersteuning in PHP zelf.<\/p><h3 class=\"wp-block-heading\">Hoe schakel ik MySQLi in PHP in?<\/h3><p>Op de meeste systemen doe je dit door het juiste pakket te installeren (vaak <code>php-mysql<\/code>) of de module in je hostingpaneel te activeren. Op Windows kan het nodig zijn om <code>extension=mysqli<\/code> in <code>php.ini<\/code> te decommentari\u00ebren. Het belangrijkste detail is dat je het inschakelt voor de PHP-runtime die je webserver daadwerkelijk gebruikt.<\/p><h3 class=\"wp-block-heading\">Waarom toont <code>php -m<\/code> mysqli, maar werkt WordPress nog steeds niet?<\/h3><p>Omdat <code>php -m<\/code> de CLI-runtime controleert. Je webserver kan een andere PHP-versie gebruiken, een andere <code>php.ini<\/code> laden of een andere PHP-FPM-pool draaien. Dit is een van de meest voorkomende oorzaken achter situaties met <em>fix mysql extension error wordpress<\/em>.<\/p><h3 class=\"wp-block-heading\">Kan deze fout worden veroorzaakt door onjuiste databasegegevens?<\/h3><p>Ja. Als WordPress vroeg faalt tijdens de initialisatie van de database, kan de foutmelding misleidend zijn. Verkeerde inloggegevens, een niet draaiende databaseservice of een socket-mismatch kunnen vergelijkbare symptomen veroorzaken, zelfs wanneer <code>mysqli<\/code> geladen is.<\/p><h3 class=\"wp-block-heading\">Wordt dit probleem meestal opgelost door WordPress bij te werken?<\/h3><p>Soms, maar in moderne configuraties niet vaak. In PHP 8.x-omgevingen hangt deze fout meestal samen met serverconfiguratie en niet met verouderde WordPress corebestanden.<\/p><h2 class=\"wp-block-heading\">Afsluitende opmerking<\/h2><p>In de meeste praktijkgevallen is <em>your php installation appears to be missing the mysql extension<\/em> geen WordPress-probleem en ook geen kwestie van \u201cPHP opnieuw installeren\u201d. Het is een signaal dat \u00e9\u00e9n laag in de PHP-runtimeketen niet goed is afgestemd. Zodra je vaststelt welke runtime het verzoek daadwerkelijk verwerkt en bevestigt dat <code>mysqli<\/code> of <code>pdo_mysql<\/code> daar geladen is, is de oplossing meestal direct.<\/p><p>Bij <em><mark style=\"background-color:rgba(0, 0, 0, 0)\" class=\"has-inline-color has-red-color\"><a href=\"https:\/\/codico.io\/nl\/\" title=\"\">CoDiCo<\/a><\/mark><\/em> komen de snelste oplossingen bijna altijd voort uit het eerst controleren van runtime-afstemming, niet uit het installeren van extra pakketten.<\/p><p><\/p>","protected":false},"excerpt":{"rendered":"<p>De Fout Die Plotseling Verschijnt Je upgrade PHP.Of migreert je website.Of zet een nieuwe VPS op en installeert WordPress vanaf nul. Alles lijkt prima \u2014 totdat dat niet meer zo is. Plotseling zie je, in plaats van je homepage, dit: Your PHP installation appears to be missing the MySQL extension which is required by WordPress. [&hellip;]<\/p>\n","protected":false},"author":66,"featured_media":22026,"comment_status":"closed","ping_status":"closed","sticky":false,"template":"","format":"standard","meta":{"footnotes":""},"categories":[102],"tags":[113,126,101],"class_list":["post-22045","post","type-post","status-publish","format-standard","has-post-thumbnail","hentry","category-tutorials-nl","tag-plugins-nl","tag-top-10-nl","tag-wordpress-nl"],"aioseo_notices":[],"_links":{"self":[{"href":"https:\/\/codico.io\/nl\/wp-json\/wp\/v2\/posts\/22045","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/codico.io\/nl\/wp-json\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/codico.io\/nl\/wp-json\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/codico.io\/nl\/wp-json\/wp\/v2\/users\/66"}],"replies":[{"embeddable":true,"href":"https:\/\/codico.io\/nl\/wp-json\/wp\/v2\/comments?post=22045"}],"version-history":[{"count":5,"href":"https:\/\/codico.io\/nl\/wp-json\/wp\/v2\/posts\/22045\/revisions"}],"predecessor-version":[{"id":22052,"href":"https:\/\/codico.io\/nl\/wp-json\/wp\/v2\/posts\/22045\/revisions\/22052"}],"wp:featuredmedia":[{"embeddable":true,"href":"https:\/\/codico.io\/nl\/wp-json\/wp\/v2\/media\/22026"}],"wp:attachment":[{"href":"https:\/\/codico.io\/nl\/wp-json\/wp\/v2\/media?parent=22045"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/codico.io\/nl\/wp-json\/wp\/v2\/categories?post=22045"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/codico.io\/nl\/wp-json\/wp\/v2\/tags?post=22045"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}