Modul 1 · 1.3
Deutsch
Dateien, wp-config und die Datenbank
Modul 1: Wie WordPress funktioniert · Lesezeit: 9 Minuten
Lernziel: Nach dieser Lektion erkennen Sie die Ordner von WordPress, die Einstellungen in wp-config.php und die wichtigsten Datenbanktabellen, und wissen Sie, was Sie wo finden.
Kernbegriffe: wp-admin, wp-includes, wp-content (themes, plugins, uploads, mu-plugins), wp-config.php (DB_*, table_prefix, Schlüssel und Salts, WP_DEBUG), .htaccess, wp_options (siteurl, home), wp_posts, wp_users
Zwei Hälften: Dateien und Datenbank
Eine WordPress-Website besteht immer aus zwei zusammengehörenden Teilen:
- Dateien im Webverzeichnis Ihrer Domain (bei DirectAdmin
domains/example.com/public_html): der Code von WordPress, Ihre Themes, Ihre Plugins und alles, was Sie hochladen. - Eine Datenbank: alle Ihre Texte, Seiten, Menüs, Einstellungen, Benutzer und Kommentare.
Diese Unterscheidung ist wichtig bei Backups und Umzügen. Ein Backup mit nur den Dateien enthält nicht Ihre Texte. Ein Backup mit nur der Datenbank enthält nicht Ihre Fotos. Sie brauchen beides (Lektion 8.1).
Die Ordner
Öffnen Sie Ihr Webverzeichnis im Dateimanager oder mit einem FTP-Programm, dann sehen Sie ungefähr Folgendes:
public_html/
├── wp-admin/ das Dashboard (Core)
├── wp-includes/ der Rest von WordPress (Core)
├── wp-content/ alles, was Ihnen gehört
│ ├── themes/ die Themes
│ ├── plugins/ die Plugins
│ ├── uploads/ Ihre Medien, nach Jahr und Monat: uploads/2026/11/
│ ├── mu-plugins/ "must use"-Plugins (falls vorhanden)
│ ├── languages/ Übersetzungen
│ └── upgrade/ temporärer Ordner für Updates
├── .htaccess Regeln für den Webserver
├── index.php der Ausgangspunkt jeder Seitenanfrage
├── wp-config.php die Einstellungen dieser Installation
├── wp-login.php die Anmeldeseite
├── xmlrpc.php eine alte Schnittstelle für Apps (Lektion 7.3)
└── ... weitere wp-*.php-Dateien des CoreDie Faustregel: wp-admin, wp-includes und die einzelnen wp-*.php-Dateien gehören zu WordPress. Diese werden bei jedem Update überschrieben. Legen Sie dort nie selbst etwas ab und ändern Sie nichts daran.
wp-content gehört Ihnen. Ein Update von WordPress lässt diesen Ordner unangetastet (ausser den mitgelieferten Standard-Themes und -Plugins). Hier liegen Ihre Themes, Plugins und Uploads. Ein paar Dinge, die Sie wissen sollten:
- uploads wächst am stärksten. Jedes Foto, das Sie hochladen, speichert WordPress in mehreren Formaten (Lektion 4.4). Eine Website mit Jahren an Neuigkeiten kann Gigabytes an Uploads haben.
- mu-plugins (must use) sind Plugins, die immer aktiv sind und die Sie im Dashboard nicht deaktivieren können. Manche Hoster und Plugins nutzen sie. Auch Angreifer verstecken dort gerne etwas (Lektion 7.5). Kennen Sie eine Datei dort nicht, finden Sie heraus, woher sie stammt.
- Ein gelöschtes Plugin verschwindet aus
plugins. Ein deaktiviertes Plugin bleibt bestehen, mit seinem gesamten Code (Lektion 5.4).
wp-config.php: die Einstellungen
wp-config.php ist das Erste, was WordPress lädt. Dort stehen die Angaben, mit denen WordPress die Datenbank erreicht, sowie einige Einstellungen für die gesamte Installation. Eine gekürzte Version:
define( 'DB_NAME', 'benutzer_wp1' );
define( 'DB_USER', 'benutzer_wp1' );
define( 'DB_PASSWORD', 'ein-langes-zufälliges-passwort' );
define( 'DB_HOST', 'localhost' );
define( 'DB_CHARSET', 'utf8mb4' );
define( 'AUTH_KEY', 'langer zufälliger Text' );
define( 'SECURE_AUTH_KEY', 'langer zufälliger Text' );
define( 'LOGGED_IN_KEY', 'langer zufälliger Text' );
define( 'NONCE_KEY', 'langer zufälliger Text' );
define( 'AUTH_SALT', 'langer zufälliger Text' );
define( 'SECURE_AUTH_SALT', 'langer zufälliger Text' );
define( 'LOGGED_IN_SALT', 'langer zufälliger Text' );
define( 'NONCE_SALT', 'langer zufälliger Text' );
$table_prefix = 'wp_';
define( 'WP_DEBUG', false );
/* Das war's, nicht weiter bearbeiten! */
require_once ABSPATH . 'wp-settings.php';Was das bedeutet:
- DB_NAME, DB_USER, DB_PASSWORD, DB_HOST: mit welcher Datenbank, welchem Benutzer und welchem Passwort sich WordPress verbindet, und auf welchem Server. Stimmt eine dieser Angaben nicht, sehen Sie "Error establishing a database connection". Das passiert oft nach einem Umzug oder nach einer Änderung des Datenbankpassworts.
- Die Schlüssel und Salts (die acht Zeilen mit KEY und SALT): zufällige Texte, mit denen WordPress die Anmelde-Cookies signiert. Wer sie kennt, kann theoretisch ein gültiges Anmelde-Cookie erzeugen. Ersetzen Sie sie, werden alle abgemeldet. Genau das tun Sie nach einem Hack (Lektion 7.5). Neue Werte erhalten Sie unter
https://api.wordpress.org/secret-key/1.1/salt/. - $table_prefix: das Präfix aller Tabellennamen, meist
wp_. So können mehrere Installationen sich eine Datenbank teilen. Ein anderes Präfix zu wählen ist keine echte Sicherheitsmassnahme, aber auch nicht schädlich. - WP_DEBUG: aktiviert Fehlermeldungen. Auf einer Live-Website ist dies deaktiviert (
false). Wie Sie Fehler sicher einsehen, ohne sie Besuchern zu zeigen, lesen Sie in Lektion 5.4. - Einstellungen, die Sie selbst hinzufügen (zum Beispiel
DISALLOW_FILE_EDITin Lektion 7.4 oderDISABLE_WP_CRONin Lektion 6.3), gehören über die Zeile "nicht weiter bearbeiten".
wp-config.php enthält Ihr Datenbankpasswort. Teilen Sie die Datei niemals, legen Sie keine Kopie davon im Webverzeichnis ab (wie wp-config.php.bak oder wp-config.old: diese kann jeder herunterladen, da der Webserver sie nicht als PHP ausführt) und vergeben Sie strenge Dateiberechtigungen (Lektion 7.4).
.htaccess
Bei LiteSpeed und Apache liegt im Webverzeichnis eine .htaccess-Datei mit Regeln für den Webserver. Sie beginnt mit einem Punkt und ist daher in vielen Programmen verborgen. WordPress trägt dort diesen Block für saubere Adressen (Permalinks) ein:
# BEGIN WordPress
<IfModule mod_rewrite.c>
RewriteEngine On
RewriteBase /
RewriteRule ^index\.php$ - [L]
RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME} !-d
RewriteRule . /index.php [L]
</IfModule>
# END WordPressEinfach gesagt: "Ist es keine bestehende Datei (!-f) und kein bestehender Ordner (!-d), dann leite es an index.php weiter." Das ist Schritt 2 aus Lektion 1.2. Plugins (Caching, Sicherheit) fügen oft eigene Blöcke hinzu. Setzen Sie eigene Regeln ausserhalb der Blöcke von WordPress und Plugins, denn diese Blöcke werden manchmal neu geschrieben. Bei nginx gibt es .htaccess nicht; dort regelt der Hoster dies in der Serverkonfiguration.
Die Datenbank: welche Tabelle wofür
Mit phpMyAdmin (in DirectAdmin unter Datenbankverwaltung) schauen Sie in die Datenbank. Eine normale Installation hat zwölf Tabellen; Plugins fügen oft weitere hinzu. Die wichtigsten:
| Tabelle | Was darin steht |
|---|---|
wp_posts | Beiträge, Seiten, Revisionen, Menüpunkte und bei Block-Themes auch Vorlagen und Muster. Auch Bilder sind hier ein "Beitrag" vom Typ attachment |
wp_postmeta | Zusätzliche Daten zu Beiträgen, wie der Preis eines Produkts oder Einstellungen eines Page-Builders |
wp_options | Einstellungen der Website und der Plugins. Hier stehen siteurl und home (Lektion 3.1), der Name des aktiven Themes und die Liste der aktiven Plugins |
wp_users und wp_usermeta | Benutzer, ihre (verschlüsselten) Passwörter und ihre Rolle |
wp_terms, wp_term_taxonomy, wp_term_relationships | Kategorien, Schlagwörter und welche Beiträge dazugehören |
wp_comments und wp_commentmeta | Kommentare |
Zwei nützliche Hinweise. Erstens: In wp_options stehen siteurl und home. Sind diese falsch (zum Beispiel nach einem Umzug), schickt Ihre Website alle zur falschen Adresse, und Sie kommen nicht mehr ins Dashboard. Dann können Sie sie in phpMyAdmin oder mit Regeln in wp-config.php wiederherstellen (Lektion 3.1). Zweitens: Viele Einstellungen werden serialisiert gespeichert, eine PHP-Form, bei der die Länge jedes Textes mitgezählt wird. Ändern Sie einen solchen Wert von Hand oder lassen Sie eine einfache "Suchen und Ersetzen"-Operation auf die Datenbank los, stimmt diese Länge nicht mehr, und die Einstellung geht kaputt (Lektion 3.2).
In phpMyAdmin nachzusehen ist sicher. Ändern tun Sie nur, wenn Sie wissen, was Sie tun, und stets mit einem Backup.
In der Praxis: so sieht es in einem Panel aus
Als Beispiel verwenden wir DirectAdmin. In cPanel und Plesk heissen die entsprechenden Bereiche Dateimanager (File Manager) und phpMyAdmin ebenfalls so.
- Öffnen Sie den Dateimanager und gehen Sie zu
domains/example.com/public_html. Aktivieren Sie die Anzeige verborgener Dateien, um.htaccesszu sehen. - Klicken Sie auf
wp-config.phpund wählen Sie Ansehen (nicht Bearbeiten). Suchen SieDB_NAMEund$table_prefix. - Öffnen Sie phpMyAdmin, wählen Sie links die Datenbank mit diesem Namen und sehen Sie nach, welche Tabellen vorhanden sind.
- Klicken Sie auf die Tabelle
wp_options(mit Ihrem Präfix) und suchen Sie die Zeilensiteurlundhome.
Zusammenfassung
- Eine WordPress-Website besteht aus Dateien plus Datenbank; ein Backup braucht beides.
wp-admin,wp-includesund die einzelnen Core-Dateien gehören zu WordPress;wp-contentgehört Ihnen.- wp-config.php enthält die Datenbankangaben, die Schlüssel und Salts, das Tabellenpräfix und Einstellungen wie WP_DEBUG. Bewahren Sie nie eine Kopie davon im Webverzeichnis auf.
.htaccessleitet alles, was keine Datei ist, an index.php weiter; eigene Regeln setzen Sie ausserhalb der Blöcke von WordPress.- In
wp_optionsstehen siteurl und home; serialisierte Daten ändern Sie nicht von Hand.
Quiz
Aufgabe
Aufgabe D1.3: Erkunden Sie Ihre eigene Installation. Öffnen Sie Ihr Webverzeichnis im Dateimanager oder mit einem FTP-Programm und danach Ihre Datenbank in phpMyAdmin. Tun Sie nichts ausser nachzusehen. Haken Sie ab, was Sie gefunden haben, und tragen Sie ein: das Tabellenpräfix, die Anzahl der Tabellen in der Datenbank, die Werte von siteurl und home in wp_options, sowie die Ordner in wp-content. Notieren Sie auch, ob Dateien in wp-content/mu-plugins liegen und ob Sie wissen, woher sie stammen. Geben Sie niemals Ihr Datenbankpasswort preis, auch nicht in diesem Formular.
Aufgabe D1.3: Erkunden Sie Ihre eigene Installation
Diese Aufgabe machen Sie selbst; niemand prüft sie nach. Haken Sie ab, was Sie erledigt haben, und markieren Sie die Aufgabe als erledigt.
Das Präfix endet auf einen Unterstrich (zum Beispiel wp_ oder einen zufälligen Code). Eine gewöhnliche Installation hat 12 Tabellen; Plugins fügen weitere hinzu. siteurl und home beginnen mit https://. Geben Sie das Datenbankpasswort aus wp-config.php niemals weiter, auch hier nicht.
Ihre Haken und Notizen bleiben nur in diesem Browser; wir senden sie nirgendwohin. Sind Sie angemeldet, speichern wir in Meine Kurse nur, dass Sie die Aufgabe erledigt haben.
Weiterführende Lektüre
Diese Artikel beschreiben die Schritte in den Panels von WebOké; in anderen Panels funktionieren sie ähnlich.
- DirectAdmin Anleitung 11.1: Dateimanager öffnen: die Verzeichnisse in Ihrem Paket
- DirectAdmin Anleitung 11.4: Versteckte Dateien wie .htaccess anzeigen und bearbeiten
- DirectAdmin Anleitung 12.3: phpMyAdmin öffnen und verwenden
- Wie lauten Benutzername, Passwort und Datenbankname für MySQL?
- DirectAdmin Anleitung 18.6: Fehler beim Herstellen einer Datenbankverbindung
- wp-config.php (developer.wordpress.org, Englisch): https://developer.wordpress.org/advanced-administration/wordpress/wp-config/
