Direkt zum Inhalt

Cookie-Einstellungen

Wählen Sie, welche Arten von Cookies Sie erlauben. Sie können Ihre Auswahl jederzeit über Cookie-Einstellungen unten auf jeder Seite ändern. Datenschutzerklärung

Notwendig

Immer aktiv

Nötig zum Einloggen, für Ihren Warenkorb und um Ihre Auswahl zu speichern. Diese sind immer aktiv.

Welche Cookies?
  • weboke_sessie, weboke_klant, weboke_remember: Ihre Sitzung und eingeloggt bleiben
  • weboke_basket: Ihr Warenkorb
  • wkBtwIncl: Preise mit oder ohne MwSt. anzeigen
  • wok_cookies: Ihre Cookie-Auswahl, 12 Monate

Misst, welche Anzeige zu einem Besuch oder einer Bestellung führt, damit wir nicht für Anzeigen zahlen, die nichts bringen.

Welche Cookies?
  • Google Ads über Google Tag Manager (_gcl_au, _gcl_aw), bis zu 90 Tage
  • OpenAI Ads, Anzeigen in ChatGPT
  • wok_aff: über welchen Partner Sie zu uns kamen (Partnerprogramm), 60 Tage

4,6

Land und Sprache

Jedes Land hat seine eigene Website, mit Preisen und MwSt. dieses Landes.

Anzeigen

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:

  1. 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.
  2. 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 Core

Die 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_EDIT in Lektion 7.4 oder DISABLE_WP_CRON in 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 WordPress

Einfach 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:

TabelleWas darin steht
wp_postsBeiträge, Seiten, Revisionen, Menüpunkte und bei Block-Themes auch Vorlagen und Muster. Auch Bilder sind hier ein "Beitrag" vom Typ attachment
wp_postmetaZusätzliche Daten zu Beiträgen, wie der Preis eines Produkts oder Einstellungen eines Page-Builders
wp_optionsEinstellungen 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_usermetaBenutzer, ihre (verschlüsselten) Passwörter und ihre Rolle
wp_terms, wp_term_taxonomy, wp_term_relationshipsKategorien, Schlagwörter und welche Beiträge dazugehören
wp_comments und wp_commentmetaKommentare

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.

  1. Öffnen Sie den Dateimanager und gehen Sie zu domains/example.com/public_html. Aktivieren Sie die Anzeige verborgener Dateien, um .htaccess zu sehen.
  2. Klicken Sie auf wp-config.php und wählen Sie Ansehen (nicht Bearbeiten). Suchen Sie DB_NAME und $table_prefix.
  3. Öffnen Sie phpMyAdmin, wählen Sie links die Datenbank mit diesem Namen und sehen Sie nach, welche Tabellen vorhanden sind.
  4. Klicken Sie auf die Tabelle wp_options (mit Ihrem Präfix) und suchen Sie die Zeilen siteurl und home.

Zusammenfassung

  • Eine WordPress-Website besteht aus Dateien plus Datenbank; ein Backup braucht beides.
  • wp-admin, wp-includes und die einzelnen Core-Dateien gehören zu WordPress; wp-content gehö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.
  • .htaccess leitet alles, was keine Datei ist, an index.php weiter; eigene Regeln setzen Sie ausserhalb der Blöcke von WordPress.
  • In wp_options stehen siteurl und home; serialisierte Daten ändern Sie nicht von Hand.

Quiz

1. Sie möchten eine Anpassung vornehmen, die ein Update von WordPress übersteht. Wo gehört sie hin?



2. Nach einem Umzug sehen Sie "Error establishing a database connection". Wo schauen Sie zuerst nach?



3. Was passiert, wenn Sie die Schlüssel und Salts in wp-config.php ersetzen?



4. Warum ist eine Datei wp-config.php.bak im Webverzeichnis gefährlich?



5. In welcher Tabelle finden Sie die Liste der aktiven Plugins?



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.






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.

Einen Moment bitte…

Richten Sie Ihre Domains ein

Legen Sie für jede Domain die Nameserver, die Verknüpfung mit Ihrem Hosting und den künftigen Inhaber fest.

Ihre Domains werden geladen…