Die wp-config.php in WordPress

WordPress speichert alle wichtigen Daten wie die Datenbank Verbindung, grundlegende Einstellungen in der wp-config.php Datei. Diese Datei ist sicherlich eines der wichtigsten Dateien in WordPress, darum gilt immer – macht eine Kopie als „Backup“ bevor Ihr diese editiert.

Die Frage stellt sich, wann müsst Ihr diese bearbeiten?

  • Oft nach Umzügen von Eurem Hoster zu einem anderen, dann müssen die neuen Datenbank Verbindungsdaten wie Benutzername und auch Passwort oder auch Host angepasst werden
  • Bei Problemen um den Debug Modus zu aktivieren
  • Um sicherheitsrelevante Sachen zu sperren

Die Datei kann nicht wie gewohnt in WordPress über ein Menü bearbeitet werden, eventuell gibt es Plugins, die dies ermöglichen – ich empfehle euch, Abstand von solchen Plugins zu halten – bzw. es nur im äußersten Notfall zu verwenden. Danach auf jeden Fall ein solches Plugin wieder deaktivieren und auch löschen.

Lokation der Datei

Die Datei ist im „Stammordner/Root Ordner“ von WordPress zu finden.
/wp-config.php und Besitz im Normalfall die Dateirechte 0644.

Zugriff auf die Datei

Auf die Datei kann mittels einem FTP Programm (FileZilla) oder auch über die vom Hoster bereitgestellten Möglichkeiten zb. WebFTP zugegriffen werden.

Die Datei wp-config.php

Die wp-config.php muss einige Elemente beinhalten, die für die Datenbank Verbindung usw. zuständig sind. Ohne diesen Einträgen funktioniert euer WordPress nicht!
Diese Informationen werden während der Installationsroutine abgefragt, oder bei „1-click“ Installationen von eurem Hoster bereits ausgefüllt.

Wichtig, die Werte die angegeben werden, müssen zwischen einem Hochkomma/ Apostrophe sein. 'Mein Wert'
Die Backticks sind Falsch! ´Mein Wert´ WordPress wird danach nicht mehr funktionieren.

Abschnitt – Datenbank

Im oberen Abschnitt der Datei sind die Grundlegenden Datenbank relevanten Daten gespeichert.

// ** MySQL settings - You can get this info from your web host ** //
/** The name of the database for WordPress */
define( 'DB_NAME', 'database_name_here' );

/** MySQL database username */
define( 'DB_USER', 'username_here' );

/** MySQL database password */
define( 'DB_PASSWORD', 'password_here' );

/** MySQL hostname */
define( 'DB_HOST', 'localhost' );

/** 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', '' );

Kurze Erläuterung zu den Einträgen:
DB_NAME: Datenbankname – dieser bekommt Ihr vom Hoster. (Wird beim Erstellen einer neuen Datenbank angezeigt)
DB_USER: Datenbank Benutzer, beachtet dazu, dass der Benutzer immer nur die Rechte bekommt, die er benötigt. NIEMALS root!
DB_PASSWORD: Passwort, dies dem Datenbankbenutzer zugewiesen wurde.
DB_HOST: Datenbank Server – normal „localhost“ viele Hoster haben aber separierte Server.
Hier kann auch der Port geändert werden: localhost:3302
DB_CHARSET: Zeichensatz der Datenbank (utf8, …)
DB_COLLATE: Datenbank collate, bleibt meistens leer.

Abschnitt Authentifizierungsschlüssel und Salts

Alle kritischen Daten werden in WordPress verschlüsselt, dh. Logins, Cookies, usw. Um dies zu ermöglichen, benötigt es „Schlüssel“ – wie auch im echten Leben. –> ohne Schlüssel, gibt es kein Schloss.

WordPress bietet eine Möglichkeit diese Schlüssel Online zu generieren bzw. bei der Installation (neuen Installation) zu generieren.

Sollte dieser Absatz in euerer WordPress wp-config.php fehlen, bitte ich euch, diesen nachzuholen. Grund dafür ist, dass WordPress diese Schlüssel erst seit der Version 2.6 hat. Je nach alter von eurem Blog, ist es möglich, dass dieser Absatz fehlt.

Ihr könnte zu jederzeit diese Keys ändern, dies empfiehlt sich, nach einer Übernahme von WordPress oder auch bei Infizierungen durch Malware usw.
Werden die Keys geändert, muss sich jeder Benutzer neu Einloggen.

/**#@+
 * 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',         'put your unique phrase here' );
define( 'SECURE_AUTH_KEY',  'put your unique phrase here' );
define( 'LOGGED_IN_KEY',    'put your unique phrase here' );
define( 'NONCE_KEY',        'put your unique phrase here' );
define( 'AUTH_SALT',        'put your unique phrase here' );
define( 'SECURE_AUTH_SALT', 'put your unique phrase here' );
define( 'LOGGED_IN_SALT',   'put your unique phrase here' );
define( 'NONCE_SALT',       'put your unique phrase here' );

Datenbankprefix

Das Datenbankpräfix ist ein Vorangestellte Zeichenkette der Tabellen Namen, das sogenannte Tabellenpräfix.
In einer Datenbank ist es möglich, mehrere WordPress Installationen zu erstellen. zb. WP_1 und WP_2 usw. um dies zu unterscheiden, gibts es dieses Präfix.

Im Normalfall wird als Präfix wp_ verwendet. Viele Security Experten, sind der Meinung, dass dies nicht so sein soll, da es einen Angriffspunkt mehr gibt.
In neueren oder „1-click“ Installationen wird anstatt wp_ eine Zufallskombination aus Buchstaben und zahlen verwendet.
Wichtig, ändert dies nur, wenn Ihr auch das Präfix in der Datenbank geändert habt!

Ihr könnte zu jederzeit das Präfix ändern, dies empfiehlt sich, nach einer Übernahme von WordPress oder auch bei Infizierungen durch Malware usw.

/**#@-*/

/**
 * 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 = 'wp_';

Debug Mode

Sehr hilfreich ist der DEBUG Modus, wenn es Probleme mit Plugins, Theme oder auch WordPress Core gibt. Dieser sollte nur in einem Fehlerfall aktiviert werden. Dazu wird 'false' in 'true' ersetzt.

Es werden unter andere die Meldungen von PHP „Warnings“ dargestellt.

/**
 * 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 Codex.
 *
 * @link https://codex.wordpress.org/Debugging_in_WordPress
 */
define( 'WP_DEBUG', false );

Zum Aktivieren, je nach WordPress Version:

define( 'WP_DISABLE_FATAL_ERROR_HANDLER', true );   // 5.2 and later
define( 'WP_DEBUG', true );

Ende der Datei

Am Ende der Datei dürfen keine Änderungen mehr gemacht werden.

/* That's all, stop editing! Happy publishing. */

/** Absolute path to the WordPress directory. */
if ( ! defined( 'ABSPATH' ) ) {
	define( 'ABSPATH', dirname( __FILE__ ) . '/' );
}

/** Sets up WordPress vars and included files. */
require_once( ABSPATH . 'wp-settings.php' );

Weitere Einstellungsmöglichkeiten

WordPress bietet noch eine reihe an weiteren Einstellungsmöglichkeiten, damit können für den Betreiber der WordPress Instanz viele Sachen auch deaktiviert werden. zb. Plugins hochladen. Oder auch Einstellungen getätigt werden, die es nicht erlauben direkten Zugriff auf die Bilder zu haben.

Alle Möglichkeiten sind in der WordPress Dokumentation vertreten.

Diese zusätzlichen Einstellungen stehen vor dem letzten Absatz

HIER

/* That's all, stop editing! Happy publishing. */

/** Absolute path to the WordPress directory. */
if ( ! defined( 'ABSPATH' ) ) {
	define( 'ABSPATH', dirname( __FILE__ ) . '/' );
}

/** Sets up WordPress vars and included files. */
require_once( ABSPATH . 'wp-settings.php' );

WP-Cron deaktivieren

Der WordPress interne Cron kann dadurch deaktiviert werden, dies trifft zu, wenn der Cron extern aufgerufen wird. Diese Einstellung sollte nach den Datenbank Abschnitt erfolgen, um die darunter folgenden Einstellungen nicht zu beeinträchtigen.

    define('DISABLE_WP_CRON', true);

Es kann auch der Cron Timeout angepasst werden:

    define( 'WP_CRON_LOCK_TIMEOUT', 60 );

Bearbeiten von Dateien ausschalten

Bei einigen Projekten ist es sinnvoll, dass der Kunde keine Dateien bearbeiten darf.

    define('DISALLOW_FILE_EDIT', true);

Site / Home URL ändern

Nach Änderungen an der Domain, kommt es oft vor, dass wir keinen Zugriff mehr auf die WordPress Seite haben. Um das Problem Temporär zu beheben, kann dazu die Site und Home URL in der wp-config angegeben werden. Es empfiehlt sich, sobald wir Zugreifen auf die WordPress Datenbank haben, dies in der Datenbank zu ändern.

Nach dem Aktivieren, sind die Felder in der Administration ausgegraut!

    define('WP_HOME','http://example.com');
    define('WP_SITEURL','http://example.com');

Updates deaktivieren

In einigen Projekten kommt es vor, dass wir es nicht erlauben wollen, dass WordPress automatische Updates durchführt.

 # Disable all core updates:
 define( 'WP_AUTO_UPDATE_CORE', false );

 # Enable all core updates, including minor and major:
 define( 'WP_AUTO_UPDATE_CORE', true );

 # Enable core updates for minor releases (default):
 define( 'WP_AUTO_UPDATE_CORE', 'minor' );

Post Review – limits oder ausschalten

Post Reviews können zu einem großen Overhead in der Datenbank führen. Wird dies nicht regelmäßig aufgeräumt, kann sich die Datenbank schnell füllen. Um diesem entgegenzuwirken, ist es möglich dies zu limitieren oder sogar ganz zu deaktivieren.

    define( 'WP_POST_REVISIONS', 3 );
    define( 'WP_POST_REVISIONS', false );

Upload/PluginVerzeichnis verändern

    define( 'UPLOADS', 'wp-content/anderer-media-ordner' );
    define( 'WP_PLUGIN_DIR', dirname(__FILE__) . '/blog/wp-content/plugins' );
    

Automatisches Speichern

Beiträge werden automatisch gespeichert, dies kann deaktiviert oder auch das Intervall kann geändert werden.

define( 'AUTOSAVE_INTERVAL', 160 ); // Seconds

define( 'AUTOSAVE_INTERVAL', 0); // deactivate

PHP Memory limit anpassen

WordPress versucht automatisch das Limit zu ermitteln, wenn dies nicht möglich ist, sollte dies in de wp-config.php angegeben werden. Hier als Beispiel mit 64 MB

define( 'WP_MEMORY_LIMIT', '64M' );

Cache Module

Der WP_CACHE inkludiert die Datei, wp-content/advanced-cache.php sobald die wp-settings.php Aufgerufen wird.

define( 'WP_CACHE', true );

WordPress Sprache einstellen

Alle verfügbaren Sprachen sind hier aufgelistet.

define( 'WPLANG', 'de_DE' );
define( 'WP_LANG_DIR', dirname(__FILE__) . 'wordpress/languages' );

Papierkorb automatisch löschen oder deaktivieren

define( 'EMPTY_TRASH_DAYS', 30 ); // 30 days
define( 'EMPTY_TRASH_DAYS', 0 ); // Zero days -> deactivated

Datenbank Reapieren funktion

Sollte es Probleme mit der Datenbank geben, versucht WordPress dieses selbst zu reparieren. Dieser Prozess kann auch manuell gestartet werden.

Sollte diese Option aktiviert werden, ist es wichtig nach dem Durchführen diese wieder zu deaktivieren.

Aufruf ist dann: URL /wp-admin/maint/repair.php

 define( 'WP_ALLOW_REPAIR', true );
Christoph Purin
Christoph Purin

Mein Name ist Christoph Purin und befasse mich mit IoT Geräten wie Raspberry, Arduino, ESP. Auch Aktivitäten wie die FFW, Quad-fahren, Amateurfunk zählen zu meinen bevorzugten Hobbys.
Dieser Blog, stellt eine Sammlung meiner Projekte dar, wie Dinge gelöst oder umgebaut werden können.

Artikel: 345

Schreibe einen Kommentar

Deine E-Mail-Adresse wird nicht veröffentlicht. Erforderliche Felder sind mit * markiert