Naar de inhoud
Configuratie

wp-config.php-bestand in WordPress: functie en bewerken

wp-config.php bevat de databaselogin, beveiligingssleutels en instellingen van WordPress. Zie waar het staat, wat elk deel doet en hoe je het veilig bewerkt.

Gepubliceerd

wp-config.php is het bestand dat WordPress vertelt hoe het met de database verbindt en hoe het moet draaien. Het staat normaal gesproken in de hoofdmap van je installatie, naast wp-admin en wp-content. Boven de regel “That’s all, stop editing!” (“Dat is alles, stop met bewerken!”) kun je veilig instellingen toevoegen of wijzigen, en de twee codeblokken onder die regel laat je met rust. Maak eerst een back-up, want één typefout kan de hele site platleggen.

De belangrijkste punten

  • Het bestand bevat je databasewachtwoord en beveiligingssleutels, dus behandel het als een wachtwoord en plaats de inhoud nooit op een forum of in een supportchat.
  • Eigen instellingen komen boven de regel “stop editing”. De laatste regel daaronder laadt WordPress, en een instelling na die regel komt te laat.
  • De download van WordPress bevat wp-config-sample.php. Het echte wp-config.php wordt tijdens de installatie aangemaakt.
  • Wijzig $table_prefix op een live site niet door alleen die regel te bewerken. WordPress doet dan alsof het niet geïnstalleerd is.

Waar je wp-config.php vindt

Maak verbinding via SFTP of open het bestandsbeheer van je host, en ga naar de map met wp-admin, wp-includes en wp-content. De WordPress-documentatie noemt dit de root van je WordPress-bestandsmap.

Staat het er niet, kijk dan één map hoger. De loader van WordPress controleert eerst de installatiemap en daarna de bovenliggende map, en slaat die over als daar een eigen wp-settings.php staat, want dat betekent dat er een andere WordPress-installatie staat.

Staat het bestand op geen van beide plekken, dan stuurt WordPress bezoekers naar het installatiescherm. Dat scherm maakt het bestand op basis van wp-config-sample.php. Als het niet naar de map kan schrijven, toont het de tekst die je met de hand in een nieuw bestand plakt.

Wat elk standaardonderdeel doet

wp-config-sample.php is de sjabloon, met deze onderdelen in deze volgorde:

OnderdeelWat het bevatKun je het wijzigen?
DB_NAME, DB_USER, DB_PASSWORD, DB_HOSTDe databaselogin. Het voorbeeld gebruikt localhost als host, en je webhost kan je de echte waarden geven.Ja, als je databasegegevens veranderen. Een verkeerde waarde veroorzaakt de fout bij het maken van de databaseverbinding.
DB_CHARSET, DB_COLLATEHoe databasetekst wordt opgeslagen. De standaardwaarden zijn utf8mb4 en een lege waarde.De opmerking in het voorbeeld over DB_COLLATE zegt dat je het bij twijfel niet moet wijzigen.
AUTH_KEY tot en met NONCE_SALTAcht beveiligingssleutels en salts voor inlogcookies.Ja. Wijzigen logt alle gebruikers uit.
$table_prefixDe tekst aan het begin van elke databasetabelnaam, standaard wp_.Alleen bij de installatie, tenzij je ook de tabellen hernoemt en opgeslagen database-items bijwerkt waarvan de naam het voorvoegsel gebruikt.
WP_DEBUGDebugmodus, in het voorbeeld ingesteld op false.Ja. De gids over de locatie van het debuglog legt uit hoe je fouten naar een bestand stuurt.
De opmerking “custom values” (“eigen waarden”)Een lege ruimte voor je eigen instellingen, die eindigt bij de regel “stop editing”.Ja, hier komen je toevoegingen.
ABSPATH en de regel met wp-settings.phpHet pad naar WordPress, daarna de regel die de rest laadt.Nee. Laat deze zoals ze zijn.

Nieuwe sleutels zijn één klik verwijderd: de secret-key-service van WordPress.org geeft je bij elke keer laden een nieuwe set. Vervang alle acht de regels door de nieuwe set.

Oudere bestanden missen misschien de opmerking “custom values” en zeggen “Happy blogging” in plaats van “Happy publishing”. Beide werken, en de regel blijft hetzelfde: voeg je instellingen boven die regel toe.

Instellingen die vaak worden gewijzigd

Elk hiervan is één regel. Ze komen allemaal uit de wp-config.php-documentatie, en de standaardwaarden uit default-constants.php van WordPress.

// Memory for the front end, then for wp-admin
define( 'WP_MEMORY_LIMIT', '256M' );
define( 'WP_MAX_MEMORY_LIMIT', '512M' );

// Keep at most 3 revisions per post (false turns revisions off)
define( 'WP_POST_REVISIONS', 3 );

// Autosave every 180 seconds
define( 'AUTOSAVE_INTERVAL', 180 );

// Empty the trash after 7 days
define( 'EMPTY_TRASH_DAYS', 7 );

// Remove the theme and plugin file editor from wp-admin
define( 'DISALLOW_FILE_EDIT', true );

// Force HTTPS for logins and wp-admin
define( 'FORCE_SSL_ADMIN', true );

// Set the site addresses here
define( 'WP_HOME', 'https://example.com' );
define( 'WP_SITEURL', 'https://example.com' );

Kopieer alleen de regels die je nodig hebt. Bij een paar ervan is het goed om dit te weten:

  • Geheugen: WordPress gebruikt standaard 40M, of 64M op multisite, en 256M voor wp-admin tenzij PHP al meer toestaat. Als je host niet toestaat dat de limiet wordt gewijzigd, gebruikt WordPress de limiet die PHP al heeft. De gids over memory exhausted legt uit wat je dan doet.
  • Revisies: deze staan standaard aan. Stel false in om ze uit te zetten, of een getal om ze te beperken.
  • Automatisch opslaan en prullenbak: de standaardwaarden zijn 60 seconden en 30 dagen. EMPTY_TRASH_DAYS op 0 zetten schakelt de prullenbak uit, en de documentatie waarschuwt dat WordPress dan geen bevestiging vraagt als iemand op “Delete Permanently” (“Definitief verwijderen”) klikt.
  • Bestandseditor: de hardeningsgids zegt dat dit een aanvaller niet tegenhoudt om kwaadaardige bestanden te uploaden, al kan het sommige aanvallen stoppen. DISALLOW_FILE_MODS gaat verder en blokkeert ook het installeren en bijwerken van plugins en thema’s.
  • HTTPS: als de instelling “WordPress-adres” al met https begint, zet WordPress FORCE_SSL_ADMIN zelf op true. Deze regel verandert alleen iets als het adres niet met https begint.
  • Siteadressen: deze overschrijven de opgeslagen waarden zonder te wijzigen wat in de database staat. Neem het deel https:// mee.

Eén instelling vraagt meer voorbereiding. define( 'DISABLE_WP_CRON', true ); voorkomt dat paginabezoeken geplande taken starten, dus stel een cronjob op de server in voor wp-cron.php voordat je dit aanzet, anders draaien geplande berichten en andere getimede taken niet.

wp-config.php veilig bewerken

  1. Download eerst een kopie. Bewaar die op je eigen computer. Een kopie die op de server staat onder een naam als wp-config.php.bak kan leesbaar zijn in een browser, omdat de server het niet meer als PHP behandelt.
  2. Open het bestand in een platte-teksteditor. De bewerkgids van WordPress noemt Notepad++, Sublime Text en Visual Studio Code als geschikt, en waarschuwt voor Google Docs en Microsoft Word, omdat tekstverwerkers aanhalingstekens wijzigen en code kunnen toevoegen die bestanden kapotmaakt.
  3. Zoek de regel “stop editing” en zet je nieuwe regels er direct boven. Staat de instelling al hogerop, wijzig dan die regel.
  4. Sla op, upload en laad je site in een privévenster van je browser, samen met één pagina in wp-admin.
  5. Gaat er iets kapot, zet dan je kopie terug. Dat maakt de bewerking ongedaan, ook als wp-admin niet laadt.

Het bestand boven de webroot plaatsen

De hardeningsgids zegt dat wp-config.php één map boven je WordPress-installatie mag staan, en de loadercode handelt dat af zonder extra instellingen. Verplaats het bestand en controleer of de site nog laadt. De verplaatsing heeft twee beperkingen:

  • De bovenliggende map mag geen andere WordPress-installatie bevatten. De loader negeert een bovenliggende map met een eigen wp-settings.php.
  • Eén niveau hoger is alleen privé als WordPress in de webroot staat. Staat WordPress in een submap zoals /blog/, dan is één niveau hoger meestal nog openbaar.

Dezelfde gids zegt dat sommigen beweren dat de verplaatsing minimale beveiligingsvoordelen heeft, en dat die bij onzorgvuldig uitvoeren ernstige kwetsbaarheden kan veroorzaken. Beschouw het dus als optioneel. Voor Apache geeft de gids ook dit blok voor bovenaan je .htaccess-bestand, dat directe verzoeken naar het bestand weigert:

<Files "wp-config.php">
Require all denied
</Files>

Onze .htaccess-beveiligingsgids behandelt die regel samen met andere regels.

Bestandsrechten voor wp-config.php

De WordPress-documentatie geeft per situatie net andere getallen:

  • De hardeningsgids zegt dat alleen jij en de webserver het bestand mogen kunnen lezen, wat volgens de gids over het algemeen 400 of 440 betekent.
  • De gids over bestandsrechten noemt 440 of 400 op gedeelde hosting met suexec, zodat andere gebruikers op de server het niet kunnen lezen. Ook toont die 600 als beveiligd voorbeeld.
  • Voor gewone WordPress-bestanden noemt die gids 644 of 640.

Welk getal werkt, hangt af van de systeemgebruiker waaronder je webserver draait. De webserver moet het bestand kunnen lezen, dus als de site na een wijziging niet meer laadt, ga dan terug naar de vorige waarde en vraag je host welke bij hun opstelling past.

Veelgemaakte fouten

  • Een instelling na de regel wp-settings.php plakken. Die regel laadt WordPress en stelt de standaardwaarden in. Een PHP-constante kan niet veranderen terwijl een script draait, dus je regel heeft geen effect.
  • Dezelfde instelling twee keer definiëren. De eerste regel stelt de waarde in en de tweede kan die niet wijzigen. Volgens de PHP-handleiding is het opnieuw declareren van een constante verouderd sinds PHP 8.5, dus het kan ook een melding geven. Zoek de naam in het bestand voordat je hem toevoegt.
  • Aanhalingstekens om true of false zetten. 'false' is een niet-lege string, en PHP behandelt die als true. Schrijf false zonder aanhalingstekens. Groottes zoals '256M' hebben ze wel nodig.
  • Gekrulde aanhalingstekens uit een tekstverwerker of webpagina. PHP heeft rechte aanhalingstekens nodig, dus gekrulde veroorzaken een fout waardoor de site niet laadt.
  • Debugfouten tonen op een live site. WP_DEBUG_DISPLAY staat standaard op true, dus als je alleen WP_DEBUG aanzet, verschijnen fouten op de pagina voor bezoekers. De gids over de locatie van het debuglog laat zien hoe je ze naar een bestand stuurt.
  • WP_ALLOW_REPAIR aan laten staan. De documentatie zegt dat je het alleen aanzet wanneer het nodig is en uitzet zodra het probleem is opgelost.

Veelgestelde vragen

Wat is wp-config.php in WordPress? Het is het configuratiebestand dat WordPress bij het opstarten laadt. Het bevat je databaselogin, beveiligingssleutels en tabelvoorvoegsel, en hier voeg je instellingen toe zoals WP_DEBUG of WP_MEMORY_LIMIT.

Waar staat het bestand wp-config.php? Normaal gesproken in de hoofdmap van je WordPress-installatie, de map waar ook wp-admin, wp-includes en wp-content staan. WordPress accepteert het ook één map boven de installatie, zolang die map geen wp-settings.php heeft.

Waar voeg ik code toe in wp-config.php? Boven de regel That’s all, stop editing! Happy publishing. (“Dat is alles, stop met bewerken! Veel publiceerplezier”). In oudere bestanden staat Happy blogging. De laatste regel daaronder laadt WordPress, dus een instelling na die regel komt te laat.

Is het veilig om wp-config.php te bewerken? Ja, als je een back-up bewaart en een platte-teksteditor gebruikt. Eén typefout kan ervoor zorgen dat de hele site niet meer laadt, inclusief wp-admin, dus download eerst een kopie. Gaat de site kapot na je bewerking, zet de kopie dan terug.

Wat gebeurt er als ik wp-config.php verwijder? WordPress kan zijn databaselogin niet meer vinden en start het installatieproces, met de vraag om een configuratiebestand aan te maken. Je inhoud blijft in de database staan, dus de back-up terugzetten of het bestand opnieuw maken met dezelfde gegevens verbindt de site weer.

Welke rechten moet wp-config.php hebben? De hardeningsgids van WordPress zegt dat alleen jij en de webserver het mogen kunnen lezen, wat over het algemeen 400 of 440 betekent. De gids over bestandsrechten toont ook 600. De webserver moet het bestand nog steeds kunnen lezen, dus vraag het je host als de site niet meer laadt.

Bronnen


Stel de instellingen die je nodig hebt samen zonder ze met de hand te typen, inclusief nieuwe beveiligingssleutels, met de gratis wp-config.php-generator.

FAQ

Vragen

Wat is wp-config.php in WordPress?

Het is het configuratiebestand dat WordPress bij het opstarten laadt. Het bevat je databaselogin, beveiligingssleutels en tabelvoorvoegsel, en hier voeg je instellingen toe zoals WP_DEBUG of WP_MEMORY_LIMIT.

Waar staat het bestand wp-config.php?

Normaal gesproken in de hoofdmap van je WordPress-installatie, de map waar ook wp-admin, wp-includes en wp-content staan. WordPress accepteert het ook één map boven de installatie, zolang die map geen wp-settings.php heeft.

Waar voeg ik code toe in wp-config.php?

Boven de regel That's all, stop editing! Happy publishing. ("Dat is alles, stop met bewerken! Veel publiceerplezier"). In oudere bestanden staat Happy blogging. De laatste regel daaronder laadt WordPress, dus een instelling na die regel komt te laat.

Is het veilig om wp-config.php te bewerken?

Ja, als je een back-up bewaart en een platte-teksteditor gebruikt. Eén typefout kan ervoor zorgen dat de hele site niet meer laadt, inclusief wp-admin, dus download eerst een kopie. Gaat de site kapot na je bewerking, zet de kopie dan terug.

Wat gebeurt er als ik wp-config.php verwijder?

WordPress kan zijn databaselogin niet meer vinden en start het installatieproces, met de vraag om een configuratiebestand aan te maken. Je inhoud blijft in de database staan, dus de back-up terugzetten of het bestand opnieuw maken met dezelfde gegevens verbindt de site weer.

Welke rechten moet wp-config.php hebben?

De hardeningsgids van WordPress zegt dat alleen jij en de webserver het mogen kunnen lezen, wat over het algemeen 400 of 440 betekent. De gids over bestandsrechten toont ook 600. De webserver moet het bestand nog steeds kunnen lezen, dus vraag het je host als de site niet meer laadt.