Přenos webu na nový hosting nebo první nastavení WordPressu bývá plné drobných souborů, u kterých není na první pohled jasné, k čemu slouží a kam přesně patří. Špatně umístěný nebo špatně nakonfigurovaný soubor dokáže web zpomalit, rozbít, nebo otevřít bezpečnostní díru – aniž byste na první pohled poznali proč. Tenhle článek projde čtyři klíčové soubory a nastavení, které při každém novém webu kontroluji jako první.
Struktura – kam co patří
Standardní instalace WordPressu má kořenový adresář (root), kam patří základní soubory jako index.php, wp-load.php a další jádro. Vedle nich se v témže kořenovém adresáři nachází i soubory, které řídí chování celého serveru pro daný web:
/public_html (nebo /www, podle hostingu)
├── wp-admin/
├── wp-content/
├── wp-includes/
├── .htaccess
├── wp-config.php
├── user.ini (nebo php.ini)
└── index.php
Všechny čtyři soubory zmíněné v tomto článku patří do kořenového adresáře webu – tam, kde je i wp-config.php a index.php, ne do podadresáře.
.htaccess – pravidla pro Apache server
Soubor .htaccess řídí chování webového serveru Apache pro danou složku a vše pod ní. U WordPressu se používá především pro:
- Přesměrování (redirects) – například ze staré URL adresy na novou
- Pretty permalinks – bez tohoto souboru by adresy stránek vypadaly jako
?p=123místo/nazev-clanku/ - Bezpečnostní pravidla – blokování přístupu k citlivým souborům, omezení přístupu do
wp-content/uploadspro spustitelné soubory - Nastavení cache hlaviček pro statické soubory (obrázky, CSS, JS)
Základní WordPress blok, který tam WordPress sám vygeneruje, vypadá takto:
# BEGIN WordPress
RewriteEngine On
RewriteBase /
RewriteRule ^index\.php$ - [L]
RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME} !-d
RewriteRule . /index.php [L]
# END WordPress
Důležité: vlastní úpravy (přesměrování, bezpečnostní pravidla) vkládejte mimo blok # BEGIN WordPress / # END WordPress – WordPress tento blok při některých akcích přepisuje a vaše úpravy uvnitř by zmizely.
Pokud web běží na Nginx místo Apache, .htaccess se nepoužije vůbec – ekvivalentní pravidla se nastavují přímo v konfiguraci serveru, kam běžný uživatel hostingu obvykle nemá přístup a musí kontaktovat podporu.
wp-config.php – srdce konfigurace WordPressu
Tenhle soubor obsahuje nejcitlivější nastavení celého webu – přístupové údaje k databázi, bezpečnostní klíče a klíčové konstanty, které řídí chování WordPressu. Mezi nastavení, která se vyplatí zkontrolovat nebo doplnit při každém nasazení:
// Přístup k databázi (vyplní hosting/instalace)
define('DB_NAME', 'nazev_databaze');
define('DB_USER', 'uzivatel');
define('DB_PASSWORD', 'heslo');
define('DB_HOST', 'localhost');
// Ladicí režim - v produkci vždy false
define('WP_DEBUG', false);
// Zvýšení paměťového limitu pro WordPress
define('WP_MEMORY_LIMIT', '256M');
// Vynucení SSL v administraci
define('FORCE_SSL_ADMIN', true);
// Omezení počtu revizí příspěvků (šetří databázi)
define('WP_POST_REVISIONS', 5);
// Interval automatického ukládání konceptu (v sekundách)
define('AUTOSAVE_INTERVAL', 120);
Bezpečnostní klíče a soli (AUTH_KEY, SECURE_AUTH_KEY a další) by měly být vždy unikátní pro každou instalaci – WordPress nabízí generátor na api.wordpress.org/secret-key/1.1/salt/, odkud se vygenerovaný blok jednoduše vloží.
Pozor: soubor wp-config.php by nikdy neměl být veřejně dostupný nebo zálohovaný na místě přístupném z webu (například jako wp-config.php.bak) – obsahuje přístupové údaje k databázi v čitelné podobě.
user.ini – PHP nastavení bez přístupu k serveru
Na sdíleném hostingu obvykle nemáte přístup k hlavnímu php.ini souboru serveru. Místo toho většina hostingů (včetně WEDOS) umožňuje přepsat vybraná PHP nastavení pomocí souboru user.ini v kořenovém adresáři webu. Typický obsah, který se hodí u WordPressu s náročnějšími pluginy:
memory_limit = 256M
upload_max_filesize = 64M
post_max_size = 64M
max_execution_time = 300
max_input_vars = 3000
Několik praktických poznámek:
- Změny v
user.inise neprojeví okamžitě – server je typicky načítá s určitým zpožděním (u WEDOS obvykle do několika minut, u jiných hostingů to může být i déle) upload_max_filesizeipost_max_sizeje potřeba nastavit společně – pokud je jedna hodnota nižší než druhá, platí vždy ta nižšímax_input_varsbývá opomíjené nastavení, které způsobuje záhadné problémy s ukládáním složitějších formulářů nebo nastavení pluginů (Elementor, WooCommerce) – pokud se stránka builderu nebo nastavení “utne” bez chyby, tohle je první podezřelý
Na hostingu s PHP-FPM se místo user.ini může používat i .user.ini (s tečkou na začátku) – záleží na konkrétní konfiguraci poskytovatele, takže při problémech ověřte v dokumentaci hostingu, který název systém skutečně čte.
Kontrolní checklist při nastavování nového hostingu
- Zkontrolovat, že
.htaccessobsahuje funkční WordPress blok a permalinky fungují (ne?p=123) - V
wp-config.phpověřitWP_DEBUGjefalsena produkci, klíče a soli jsou unikátní,DB_HOSTodpovídá skutečnému hostiteli databáze - Nastavit
user.ini(nebo.user.ini) s dostatečnými limity pro paměť a nahrávání souborů podle pluginů, které web používá - Otestovat formulář s více poli nebo builder stránky (Elementor) – pokud se něco neuloží beze chyby, zkontrolovat
max_input_vars - Ověřit, že žádný z těchto souborů není veřejně přístupný přes prohlížeč (zadáním přímé URL adresy)
Shrnutí
Tyhle čtyři soubory – .htaccess, wp-config.php, user.ini a jejich správné umístění v kořenovém adresáři – tvoří základ, na kterém stojí zbytek webu. Většina “záhadných” problémů po přesunu na nový hosting (rozbité permalinky, formuláře co se neuloží, chybějící obrázky po nahrání) se dá vystopovat právě sem. Stojí za to je zkontrolovat systematicky hned na začátku, ne až ve chvíli, kdy si problému všimne klient.