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=123 místo /nazev-clanku/
  • Bezpečnostní pravidla – blokování přístupu k citlivým souborům, omezení přístupu do wp-content/uploads pro 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:

apache
# 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í:

php
// 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:

ini
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.ini se 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_filesize i post_max_size je potřeba nastavit společně – pokud je jedna hodnota nižší než druhá, platí vždy ta nižší
  • max_input_vars bý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

  1. Zkontrolovat, že .htaccess obsahuje funkční WordPress blok a permalinky fungují (ne ?p=123)
  2. V wp-config.php ověřit WP_DEBUG je false na produkci, klíče a soli jsou unikátní, DB_HOST odpovídá skutečnému hostiteli databáze
  3. Nastavit user.ini (nebo .user.ini) s dostatečnými limity pro paměť a nahrávání souborů podle pluginů, které web používá
  4. Otestovat formulář s více poli nebo builder stránky (Elementor) – pokud se něco neuloží beze chyby, zkontrolovat max_input_vars
  5. 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.

Máte dotaz? Napište mi na WhatsApp.