Modul 1 · 1.3
Soubory, wp-config a databáze
Modul 1: Jak WordPress funguje · Doba čtení: 9 minut
Cíl lekce: Po této lekci rozpoznáte složky WordPressu, nastavení v wp-config.php a nejdůležitější databázové tabulky, a budete vědět, co kde najít.
Klíčové pojmy: wp-admin, wp-includes, wp-content (themes, plugins, uploads, mu-plugins), wp-config.php (DB_*, table_prefix, klíče a salts, WP_DEBUG), .htaccess, wp_options (siteurl, home), wp_posts, wp_users
Dvě poloviny: soubory a databáze
Web na WordPressu se vždy skládá ze dvou částí, které patří k sobě:
- Soubory ve webovém adresáři Vaší domény (v DirectAdminu
domains/example.com/public_html): kód WordPressu, Vaše šablony, Vaše pluginy a vše, co nahrajete. - Databáze: všechny Vaše texty, stránky, menu, nastavení, uživatelé a komentáře.
Toto rozlišení je důležité při zálohování a stěhování. Záloha pouze souborů postrádá všechny Vaše texty. Záloha pouze databáze postrádá všechny Vaše fotografie. Potřebujete obojí (lekce 8.1).
Složky
Když otevřete svůj webový adresář ve Správci souborů nebo pomocí FTP programu, uvidíte přibližně toto:
public_html/
├── wp-admin/ administrace (jádro)
├── wp-includes/ zbytek WordPressu (jádro)
├── wp-content/ vše, co patří Vám
│ ├── themes/ šablony
│ ├── plugins/ pluginy
│ ├── uploads/ Vaše média, podle roku a měsíce: uploads/2026/11/
│ ├── mu-plugins/ pluginy typu „must use“ (pokud existují)
│ ├── languages/ překlady
│ └── upgrade/ dočasná složka pro aktualizace
├── .htaccess pravidla pro webový server
├── index.php výchozí bod každého požadavku na stránku
├── wp-config.php nastavení této instalace
├── wp-login.php přihlašovací stránka
├── xmlrpc.php staré rozhraní pro aplikace (lekce 7.3)
└── ... další wp-*.php soubory jádraZákladní pravidlo: wp-admin, wp-includes a jednotlivé soubory wp-*.php patří WordPressu. Při každé aktualizaci se přepíší. Nikdy do nich nic sami nevkládejte a nic v nich neupravujte.
wp-content patří Vám. Aktualizace WordPressu tuto složku nechá na pokoji (kromě výchozích šablon a pluginů, které jsou její součástí). Sem patří Vaše šablony, pluginy a nahrané soubory. Několik věcí, které je dobré vědět:
- uploads roste nejrychleji. Každou nahranou fotografii WordPress uloží ve více formátech (lekce 4.4). Web s mnohaletou historií zpráv může mít v uploads i řadu gigabajtů dat.
- mu-plugins (must use) jsou pluginy, které jsou vždy aktivní a nelze je v administraci vypnout. Používají je někteří poskytovatelé hostingu a pluginy. Rádi sem také něco schovávají útočníci (lekce 7.5). Pokud nějaký soubor neznáte, zjistěte, odkud pochází.
- Smazaný plugin zmizí ze složky
plugins. Vypnutý plugin zůstává na místě, se vším svým kódem (lekce 5.4).
wp-config.php: nastavení
wp-config.php je první, co WordPress načte. Jsou v něm údaje, pomocí kterých se WordPress připojuje k databázi, a několik nastavení platných pro celou instalaci. Zkrácená verze:
define( 'DB_NAME', 'gebruiker_wp1' );
define( 'DB_USER', 'gebruiker_wp1' );
define( 'DB_PASSWORD', 'een-lang-willekeurig-wachtwoord' );
define( 'DB_HOST', 'localhost' );
define( 'DB_CHARSET', 'utf8mb4' );
define( 'AUTH_KEY', 'lange willekeurige tekst' );
define( 'SECURE_AUTH_KEY', 'lange willekeurige tekst' );
define( 'LOGGED_IN_KEY', 'lange willekeurige tekst' );
define( 'NONCE_KEY', 'lange willekeurige tekst' );
define( 'AUTH_SALT', 'lange willekeurige tekst' );
define( 'SECURE_AUTH_SALT', 'lange willekeurige tekst' );
define( 'LOGGED_IN_SALT', 'lange willekeurige tekst' );
define( 'NONCE_SALT', 'lange willekeurige tekst' );
$table_prefix = 'wp_';
define( 'WP_DEBUG', false );
/* Dat is alles, stop met bewerken! */
require_once ABSPATH . 'wp-settings.php';Co to znamená:
- DB_NAME, DB_USER, DB_PASSWORD, DB_HOST: s jakou databází, uživatelem a heslem se WordPress připojuje a na jakém serveru. Pokud některý z těchto údajů neodpovídá, zobrazí se hláška „Error establishing a database connection“. To se často stává po přestěhování nebo po změně hesla k databázi.
- Klíče a salts (osm řádků s KEY a SALT): náhodné texty, kterými WordPress podepisuje přihlašovací cookies. Kdo je zná, může teoreticky vytvořit platnou přihlašovací cookie. Pokud je nahradíte, budou všichni odhlášeni. Přesně to uděláte po napadení webu (lekce 7.5). Nové hodnoty získáte na adrese
https://api.wordpress.org/secret-key/1.1/salt/. - $table_prefix: předpona všech názvů tabulek, obvykle
wp_. Umožňuje, aby si více instalací sdílelo jednu databázi. Volba jiné předpony není skutečným zabezpečením, ale ani neškodí. - WP_DEBUG: zapíná chybová hlášení. Na ostrém webu je toto nastavení vypnuté (
false). Jak si chyby bezpečně prohlédnout, aniž byste je zobrazovali návštěvníkům, se dočtete v lekci 5.4. - Nastavení, která si přidáváte sami (například
DISALLOW_FILE_EDITz lekce 7.4 neboDISABLE_WP_CRONz lekce 6.3), patří nad řádek „stop met bewerken“.
wp-config.php obsahuje heslo k Vaší databázi. Soubor nikdy nikomu nesdílejte, nevkládejte jeho kopii do webového adresáře (jako wp-config.php.bak nebo wp-config.old: takový soubor si může kdokoli stáhnout, protože webový server ho nespouští jako PHP) a nastavte mu přísná oprávnění k souborům (lekce 7.4).
.htaccess
U LiteSpeed a Apache se ve webovém adresáři nachází soubor .htaccess s pravidly pro webový server. Jeho název začíná tečkou, takže je v mnoha programech skrytý. WordPress do něj vkládá tento blok kvůli hezkým adresám (permalinks):
# 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 WordPressJednoduše řečeno: „pokud se nejedná o existující soubor (!-f) ani existující složku (!-d), předej požadavek souboru index.php.“ To je krok 2 z lekce 1.2. Pluginy (cache, zabezpečení) často přidávají vlastní bloky. Vlastní pravidla umisťujte mimo bloky WordPressu a pluginů, protože tyto bloky se občas znovu přepisují. U nginx soubor .htaccess neexistuje; tam toto řeší poskytovatel hostingu přímo v konfiguraci serveru.
Databáze: která tabulka k čemu slouží
Pomocí phpMyAdmin (v DirectAdminu pod Databasebeheer) se můžete podívat do databáze. Běžná instalace má dvanáct tabulek; pluginy jich často přidávají více. Ty nejdůležitější:
| Tabulka | Co obsahuje |
|---|---|
wp_posts | Příspěvky, stránky, revize, položky menu, a u blokových šablon také šablony a vzory. Také obrázky jsou zde uloženy jako „příspěvek“ typu attachment |
wp_postmeta | Doplňkové údaje k příspěvkům, například cena produktu nebo nastavení stránkového builderu |
wp_options | Nastavení webu a pluginů. Zde se nachází siteurl a home (lekce 3.1), název aktivní šablony a seznam aktivních pluginů |
wp_users a wp_usermeta | Uživatelé, jejich (zašifrovaná) hesla a jejich role |
wp_terms, wp_term_taxonomy, wp_term_relationships | Rubriky, štítky a to, ke kterým příspěvkům patří |
wp_comments a wp_commentmeta | Komentáře |
Dva užitečné postřehy. Za prvé: v wp_options se nachází siteurl a home. Pokud jsou tyto hodnoty nesprávné (například po přestěhování), Váš web pošle každého na špatnou adresu a Vy se už nedostanete do administrace. V takovém případě je můžete opravit v phpMyAdmin nebo pomocí řádků ve wp-config.php (lekce 3.1). Za druhé: mnoho nastavení se ukládá serializovaně, což je forma PHP, kde se počítá i délka každého textu. Pokud takovou hodnotu upravíte ručně, nebo na databázi pustíte obyčejné „najít a nahradit“, délka už nebude sedět a nastavení se poškodí (lekce 3.2).
Prohlížení v phpMyAdmin je bezpečné. Úpravy provádějte jen tehdy, pokud přesně víte, co děláte, a vždy se zálohou.
V praxi: jak to vypadá v panelu
Jako příklad použijeme DirectAdmin. V cPanel a Plesk se tyto součásti jmenují podobně: Bestandsbeheer (File Manager) a phpMyAdmin.
- Otevřete Správce souborů a přejděte do
domains/example.com/public_html. Zapněte zobrazování skrytých souborů, abyste viděli.htaccess. - Klikněte na
wp-config.phpa zvolte zobrazení (ne úpravu). VyhledejteDB_NAMEa$table_prefix. - Otevřete phpMyAdmin, vlevo zvolte databázi s tímto názvem a podívejte se, jaké tabulky obsahuje.
- Klikněte na tabulku
wp_options(s Vaší předponou) a vyhledejte řádkysiteurlahome.
Shrnutí
- Web na WordPressu tvoří soubory plus databáze; záloha potřebuje obojí.
wp-admin,wp-includesa jednotlivé soubory jádra patří WordPressu;wp-contentpatří Vám.- wp-config.php obsahuje databázové údaje, klíče a salts, předponu tabulek a nastavení jako WP_DEBUG. Nikdy z něj neukládejte kopii do webového adresáře.
.htaccesspřesměruje vše, co není souborem, na index.php; vlastní pravidla umisťujte mimo bloky WordPressu.- V
wp_optionsse nachází siteurl a home; serializovaná data neupravujte ručně.
Kvíz
Úkol
Úkol D1.3: Prozkoumejte vlastní instalaci. Otevřete svůj webový adresář ve Správci souborů nebo pomocí FTP programu, a poté svou databázi v phpMyAdmin. Nedělejte nic jiného než prohlížení. Zaškrtněte, co jste našli, a vyplňte: předponu tabulek, počet tabulek v databázi, hodnoty siteurl a home v wp_options a složky v wp-content. Zapište si také, zda jsou ve složce wp-content/mu-plugins nějaké soubory a zda víte, odkud pocházejí. Nikdy nesdílejte heslo k databázi, a to ani v tomto formuláři.
Úkol D1.3: Prozkoumejte vlastní instalaci
Tento úkol provádíte sami; nikdo ho nekontroluje. Odškrtněte, co jste udělali, a označte úkol jako splněný.
Předpona tabulek končí podtržítkem (například wp_ nebo náhodným kódem). Běžná instalace má 12 tabulek, pluginy jich přidávají více. siteurl a home začínají na https://. Nikdy nikomu nesdělujte heslo k databázi z wp-config.php, ani zde ne.
Vaše zaškrtnutí a poznámky zůstávají pouze v tomto prohlížeči; nikam je neposíláme. Pokud jste přihlášeni, ukládáme v sekci Moje kurzy pouze to, že jste úkol splnili.
Doporučená literatura
Tyto články popisují postupy v panelech WebOké; v jiných panelech fungují obdobně.
- Příručka k DirectAdmin 11.1: Otevření Správce souborů: složky ve Vašem balíčku
- Příručka k DirectAdmin 11.4: Zobrazení a úprava skrytých souborů jako .htaccess
- Příručka k DirectAdmin 12.3: Otevření a používání phpMyAdmin
- Jaké je uživatelské jméno, heslo a název databáze pro MySQL?
- Příručka k DirectAdmin 18.6: „Error establishing a database connection“
- wp-config.php (developer.wordpress.org, anglicky): https://developer.wordpress.org/advanced-administration/wordpress/wp-config/
