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.
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 echtewp-config.phpwordt tijdens de installatie aangemaakt.- Wijzig
$table_prefixop 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:
| Onderdeel | Wat het bevat | Kun je het wijzigen? |
|---|---|---|
DB_NAME, DB_USER, DB_PASSWORD, DB_HOST | De 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_COLLATE | Hoe 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_SALT | Acht beveiligingssleutels en salts voor inlogcookies. | Ja. Wijzigen logt alle gebruikers uit. |
$table_prefix | De 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_DEBUG | Debugmodus, 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.php | Het 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
falsein 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_DAYSop0zetten 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_MODSgaat verder en blokkeert ook het installeren en bijwerken van plugins en thema’s. - HTTPS: als de instelling “WordPress-adres” al met
httpsbegint, zet WordPressFORCE_SSL_ADMINzelf optrue. Deze regel verandert alleen iets als het adres niet methttpsbegint. - 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
- Download eerst een kopie. Bewaar die op je eigen computer. Een kopie die op de server staat onder een naam als
wp-config.php.bakkan leesbaar zijn in een browser, omdat de server het niet meer als PHP behandelt. - 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.
- Zoek de regel “stop editing” en zet je nieuwe regels er direct boven. Staat de instelling al hogerop, wijzig dan die regel.
- Sla op, upload en laad je site in een privévenster van je browser, samen met één pagina in wp-admin.
- 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.phpplakken. 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. Schrijffalsezonder 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_DISPLAYstaat standaard optrue, dus als je alleenWP_DEBUGaanzet, 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_REPAIRaan 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
- WordPress Advanced Administration: wp-config.php, Hardening WordPress, File permissions, Editing files
- WordPress-broncode: wp-config-sample.php, wp-load.php, default-constants.php, setup-config.php, cron.php
- PHP-handleiding: Constants, Booleans
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.