WordPress ist eines der beliebtesten Content-Management-Systeme (CMS) weltweit – und das aus gutem Grund. Es ist vergleichsweise leicht zu bedienen, hat unzählige Funktionen, Themes, Plugins und kann relativ einfach an die Bedürfnisse des Nutzers angepasst werden. Eine der Möglichkeiten, WordPress anzupassen, besteht darin, die Datei wp-config.php zu bearbeiten.
Die wp-config.php ist eine der wichtigsten Dateien in einer WordPress-Installation. In diesem Artikel erfährst Du, was sich hinter ihr versteckt und welche wichtigen Konfigurationsoptionen sie enthält.
WordPress-Konfiguration – was ist die wp-config.php?
Die wp-config.php ist eine Datei, die beim Aufsetzen von WordPress erstellt wird und in der alle notwendigen Einstellungen vorgenommen werden. Hierzu gehören unter anderem Angaben zur Datenbankverbindung sowie diverse WordPress-spezifische Konfigurationseinstellungen. Sie ist das Herzstück einer jeden WordPress-Installation und sollte daher sorgfältig gepflegt und geschützt werden.
Ein Beispiel einer ausführlichen WP-Config.php
<?php /** * The base configuration for WordPress * * The wp-config.php creation script uses this file during the installation. * You don't have to use the web site, you can copy this file to "wp-config.php" * and fill in the values. * * This file contains the following configurations: * * * MySQL settings * * Secret keys * * Database table prefix * * ABSPATH * * @link https://wordpress.org/support/article/editing-wp-config-php/ * * @package WordPress */ /* MySQL settings */ define( 'DB_NAME', 'wp_dbname' ); define( 'DB_USER', 'wp_dbuser' ); define( 'DB_PASSWORD', '£$!%swe42x&gZ' ); define( 'DB_HOST', 'localhost' ); define( 'DB_CHARSET', 'utf8mb4' ); /** Database charset to use in creating database tables. */ define( 'DB_CHARSET', 'utf8' ); /** The database collate type. Don't change this if in doubt. */ define( 'DB_COLLATE', '' ); /**#@+ * Authentication unique keys and salts. * * Change these to different unique phrases! You can generate these using * the {@link https://api.wordpress.org/secret-key/1.1/salt/ WordPress.org secret-key service}. * * You can change these at any point in time to invalidate all existing cookies. * This will force all users to have to log in again. * * @since 2.6.0 */ define( 'AUTH_KEY', '-/YOaOWb`RouZzG]?2' ); define( 'NONCE_KEY', 'Mx`RT)=jLC<)S*4<JYa_}Xmb}i=wya+6LR)1}R2rAKJ{YciS<9HmGg#S4+@t@' ); define( 'AUTH_SALT', 'vvuT*SycAsghLA*I/S4)6%^lgsFe]Hvl}jldc$7/kz<+Ts+R1NrlQ{0OHRn4KRq=`o/zAg`gE%-lm2t=' ); /**#@-*/ /** * WordPress database table prefix. * * You can have multiple installations in one database if you give each * a unique prefix. Only numbers, letters, and underscores please! */ $table_prefix = 'customprefix_'; define( 'WP_POST_REVISIONS', 10 ); /** * For developers: WordPress debugging mode. * * Change this to true to enable the display of notices during development. * It is strongly recommended that plugin and theme developers use WP_DEBUG * in their development environments. * * For information on other constants that can be used for debugging, * visit the documentation. * * @link https://wordpress.org/support/article/debugging-in-wordpress/ */ define( 'WP_DEBUG',true ); define( 'WP_DEBUG_LOG', true ); define( 'WP_DEBUG_DISPLAY', false ); define( 'SCRIPT_DEBUG', true ); define( 'SAVEQUERIES',true ); /* Add any custom values between this line and the "stop editing" line. */ /* Custom WordPress URL */ define( 'WP_SITEURL', 'https://www.meinedomain.de' ); define( 'WP_HOME','https://www.meinedomain.de' ); /* Papierkorb leeren in Tage */ define( 'EMPTY_TRASH_DAYS', '7' ); /* Keysalt für Redis Caching */ define( 'WP_CACHE_KEY_SALT', 'https://www.meinedomain.de' ); /* Multisite */ define( 'WP_ALLOW_MULTISITE', false ); /* PHP Memory */ define( 'WP_MEMORY_LIMIT', '128M' ); define( 'WP_MAX_MEMORY_LIMIT', '512M' ); /* WordPress Cache */ define( 'WP_CACHE', true ); /* Kompression */ define( 'COMPRESS_CSS',true ); define( 'COMPRESS_SCRIPTS', true ); define( 'CONCATENATE_SCRIPTS', false ); define( 'ENFORCE_GZIP',true ); /* FTP */ define( 'FTP_USER', 'mywpftpuser' ); define( 'FTP_PASS', '!$RsdhissS72' ); define( 'FTP_HOST', 'ftp.meineseite.com' ); define( 'FTP_SSL', true );/* CRON */ define( 'DISABLE_WP_CRON','false' ); define( 'ALTERNATE_WP_CRON', 'true' ); define( 'WP_CRON_LOCK_TIMEOUT', 30 ); /* Updates */ define( 'WP_AUTO_UPDATE_CORE', true ); define( 'DISALLOW_FILE_MODS', false ); define( 'DISALLOW_FILE_EDIT', false ); /* That's all, stop editing! Happy publishing. */ /** Absolute path to the WordPress directory. */ if ( ! defined( 'ABSPATH' ) ) { define( 'ABSPATH', __DIR__ . '/' ); } /** Sets up WordPress vars and included files. */ require_once ABSPATH . 'wp-settings.php';
Zugriff auf die WordPress-Konfiguration
Die WordPress-Konfigurationsdatei befindet sich im Root-Verzeichnis Deiner WordPress-Installation. Dies ist das Verzeichnis, in dem sich die Dateien index.php und wp-config.php befinden. Um auf die Konfigurationsdatei zuzugreifen, musst Du zuerst auf Deinen Server zugreifen und dann das Root-Verzeichnis Deiner WordPress-Installation öffnen.
Sobald Du im Root-Verzeichnis bist, solltest Du die Datei wp-config.php sehen. Öffne die Datei mit einem Klick auf die rechte Maustaste und wähle das Kontextmenü „Öffnen mit“. In der Liste der verfügbaren Anwendungen solltest Du einen Texteditor sehen.
Wähle den Texteditor Deiner Wahl aus und klicke dann auf „OK“. Der Texteditor sollte nun die Datei WP-Config.php öffnen und Du kannst die verschiedenen Einstellungen sehen, die in dieser Datei vorgenommen wurden.
Lass uns einige der wichtigsten Einstellungen besprechen, die in dieser Datei enthalten sind.
Einige häufig verwendete Konfigurationsoptionen in der wp-config.php
In diesem Abschnitt werden wir einige der häufig verwendeten Konfigurationsoptionen in der wp-config.php-Datei behandeln. Dazu gehören die Definition und Möglichkeiten der Datenbankkonfiguration, verschiedene Sicherheitseinstellung und der Zugriff auf das WordPress-Debugging-Tool.
Datenbankkonfiguration
Die ersten Konfigurationsoptionen in der wp-config.php beziehen sich auf Deine WordPress-Datenbank. Diese Datenbank enthält alle Inhalte und Einstellungen der WordPress-Website. Um auf Deine Datenbank zuzugreifen und sie zu verwenden, musst Du zuerst einen Datenbanknamen, einen Benutzernamen und ein Passwort angeben. Diese Informationen findest Du in Deinem Webhosting-Konto.
Nachdem Du Deinen Datenbanknamen, Deinen Benutzernamen und das Passwort eingegeben hast, musst Du angeben, wo sich Deine Datenbank befindet. Diese Information ist normalerweise auch in Deinem Webhosting-Konto zu finden. Die meisten Hosting-Unternehmen verwenden jedoch die Standarddatenbank-Hosting-Einstellung von „localhost“. Falls dies der Fall ist, kannst Du diese Einstellung in der wp-config.php beibehalten.
// ** MySQL Einstellungen - Diese kennt Dein Webhoster ** // /** Name Deiner WordPress Datenbank */ define( 'DB_NAME', 'wp_dbname' ); /** Nutzername Deiner WordPress Datenbank */ define( 'DB_USER', 'wp_dbuser' ); /** MySQL Datenbank Passwort */ define( 'DB_PASSWORD', '£$!%swe42x&gZ' ); /** MySQL hostname */ define('DB_HOST', 'localhost');
Solltest Du eine manuelle Installation Deiner WordPress-Seite gemacht haben, hast Du wahrscheinlich das Datenbankpasswort selbst generiert. Solltest Du dafür Hilfe benötigen, kannst Du einen Passwort Generator nutzen.
Sicherheitseinstellungen
Die wp-config-Datei kann verwendet werden, um die Sicherheit der WordPress-Website zu erhöhen. Beispielsweise kann der für den Verwaltungsbereich verfügbare Datei-Editor deaktiviert werden. Die nachstehende Konstante blendet den Erscheinungsbild-Editor aus:
define( 'DISALLOW_FILE_EDIT', true );
Ein wesentliches Sicherheitsmerkmal von WordPress ist die Möglichkeit, Daten über SSL zu übertragen. Dazu muss lediglich ein entsprechendes Zertifikat erworben und richtig konfiguriert werden. Hierzu kann die untenstehende Konstante verwendet werden:
define( 'FORCE_SSL_ADMIN', true );
Die zwei weiteren Konstanten sind die Blockierung externer Anfragen und die Zulassung von Hosts.
define( 'WP_HTTP_BLOCK_EXTERNAL', true ); define( 'WP_ACCESSIBLE_HOSTS', 'beispiel.de,*.einanderesbeispiel.de' );
Zu Beginn wurden alle externen Zugriffe unterbunden. Danach wurden die erlaubten Hosts getrennt durch Kommas aufgezählt.
Zugriff auf die Debugging-Tools
WordPress bietet ein Debugging-Tool, das beim Aufruf der WordPress-Website aktiviert wird. Dieses Tool protokolliert Fehlermeldungen, sodass Du sie leichter beheben kannst. Um auf das Debugging-Tool zuzugreifen, musst Du lediglich die folgende Zeile in Deiner wp-config.php-Datei hinzufügen: define(‚WP_DEBUG‘, true);
Wenn Du das Tool nicht mehr benötigst, kannst Du es deaktivieren, indem Du die Zeile entfernst oder false anstelle von true angibst.
Lege diese in die wp-config.php im Rootverzeichnis einer Installation. Logfiles dann unter /wp-content/debug.log einsehbar.
// WP_DEBUG mode Einschalten define( 'WP_DEBUG', true ); // Schreiben der /wp-content/debug.log define( 'WP_DEBUG_LOG', true ); // Warnungen und Fehler im Frontend nicht anzeigen define( 'WP_DEBUG_DISPLAY', false ); @ini_set( 'display_errors', 0 ); // Nutze die dev versionen der Core JS and CSS Dateien (nur benötigt, wenn du diese editieren möchtest) define( 'SCRIPT_DEBUG', true );
Wenn man den Debug anschaltet, sollte die debug.log vom Download geschützt werden. Zugriff von Außerhalb ist ein Sicherheitsmangel.
Um dies zu verhindern, setze auf Apache Webserver folgendes in die .htaccess
<Files "debug.log"> Require all denied </Files>
Und für NGINX Webserver folgendes in die nginx.conf
location ~* /debug\.log$ { deny all; }
SAVEQUERIES
Diese Konstante speichert die Datenbankabfragen in einem Array (im globalen $wpdb->queries) und dieses Array kann angezeigt werden, um die Analyse dieser Abfragen zu erleichtern. Wenn der Wert der Konstante auf true gesetzt wird, wird jede Abfrage gespeichert. Es wird angezeigt, wie lange die Ausführung der Abfrage gedauert hat und welche Funktion sie aufgerufen hat.
define( 'SAVEQUERIES', true );
Stelle daher sicher, dass Du diese Funktion deaktivieren, wenn Du nicht debuggst.
Automatische Updates aktivieren
Wenn Du Deine WordPress-Seite regelmäßig aktualisieren möchtest, kannst Du die automatischen Updates in der wp-config.php aktivieren. Dies ist eine gute Möglichkeit sicherzustellen, dass Deine Seite immer auf dem neuesten Stand ist und Du keine wichtigen Sicherheitsupdates verpasst. Um die automatischen Updates zu aktivieren, musst Du lediglich die folgende Zeile in Deiner wp-config.php hinzufügen:
define( 'WP_AUTO_UPDATE_CORE', true );
Dies wird sicherstellen, dass Dein WordPress immer auf dem neuesten Stand ist, sobald ein Update verfügbar ist. Wenn Du lieber manuell aktualisieren möchtest, kannst Du diese Zeile entfernen oder mit dem Code define( ‚AUTOMATIC_UPDATER_DISABLED‘, true ); deaktivieren.
Site und Home URL angeben
Zum Artikel WordPress Url ändern mittels Site und Home Url
define( 'WP_HOME', 'https://www.meine-website.de' ); define( 'WP_SITEURL', 'https://www.meine-website.de' );
Fazit – Sie stellt das Herzstück jeder WordPress-Webseite dar
Zusammenfassend kann gesagt werden, dass die wp-config.php das Herzstück Deiner WordPress-Webseite darstellt. In dieser Datei werden alle wichtigen Konfigurationen vorgenommen und sie ist somit unerlässlich für den reibungslosen Betrieb Deiner Seite. Achte daher immer darauf, diese Datei sorgfältig zu bearbeiten und zu pflegen.