Přejít k obsahu
BeoHosting
BeoHosting
WordPress

Průvodce souborem wp-config.php ve WordPressu

BeoHosting Team··11 min čtení čtení
Průvodce souborem wp-config.php ve WordPressu

Co je wp-config.php

Soubor wp-config.php je jedním z nejdůležitějších souborů v instalaci WordPressu, protože obsahuje konfiguraci, která řídí, jak WordPress komunikuje s databází, spravuje zabezpečení, zpracovává chyby a přiděluje systémové zdroje. Tento soubor se vytváří během instalace WordPressu a nachází se v kořenovém adresáři webu. Na rozdíl od nastavení v administraci uložených v databázi se nastavení wp-config.php uplatní ještě dříve, než WordPress vůbec naváže spojení s databází.

Porozumění souboru wp-config.php je zásadní pro každého, kdo vážně spravuje web na WordPressu. Správná konfigurace tohoto souboru může výrazně zlepšit zabezpečení, výkon a stabilitu webu. Chyby ve wp-config.php mohou web zcela znepřístupnit, protože se soubor načítá dříve než vše ostatní. V tomto průvodci si projdeme každé důležité nastavení s vysvětlením, co dělá, jaké hodnoty použít a kdy je měnit.

Nastavení databáze

Základní konstanty

DB_NAME definuje název databáze, kterou WordPress používá. Tento název se vytváří v ovládacím panelu hostingu nebo přes příkazovou řádku MySQL před instalací WordPressu. DB_USER je uživatelské jméno pro přístup k databázi s dostatečnými oprávněními pro čtení a zápis. DB_PASSWORD je heslo tohoto uživatele, které by mělo být silné a jedinečné. Nikdy nepoužívejte pro WordPress uživatele root, protože to představuje bezpečnostní riziko.

DB_HOST je adresa databázového serveru, obvykle localhost, když jsou webový server a databáze na stejném serveru. Na některých hostingových platformách se tato hodnota může lišit, například IP adresa nebo cesta k socketu. DB_CHARSET definuje znakovou sadu databáze a měl by to být utf8mb4, který podporuje všechny znaky Unicode včetně emotikonů. DB_COLLATE definuje pravidla pro řazení a porovnávání textu a obvykle se ponechává prázdné, takže MySQL použije výchozí kolaci pro zvolenou znakovou sadu.

Prefix tabulek

Konstanta table_prefix definuje prefix všech tabulek WordPressu v databázi. Výchozí hodnotou je wp_, ale doporučuje se změnit ji na něco jedinečného, například abc123_, již během instalace. Jde o základní bezpečnostní opatření, které ztěžuje útoky SQL injection, protože útočník nemůže uhodnout názvy tabulek. Změna prefixu po instalaci je možná, ale vyžaduje pečlivé přejmenování všech tabulek a aktualizaci odkazů v možnostech a metadatech uživatelů.

Bezpečnostní klíče a salts

Co jsou bezpečnostní klíče

WordPress používá osm bezpečnostních konstant — AUTH_KEY, SECURE_AUTH_KEY, LOGGED_IN_KEY, NONCE_KEY a jejich odpovídající varianty SALT. Tyto klíče slouží k šifrování informací uložených v cookies uživatelů. Bez těchto klíčů by byly uživatelské relace zranitelné vůči odposlechu a krádeži identity. Každý klíč by měl být jedinečný, dlouhý a náhodný, s kombinací písmen, číslic a speciálních znaků.

WordPress poskytuje online generátor na adrese api.wordpress.org/secret-key, který vygeneruje osm náhodných klíčů připravených ke zkopírování do wp-config.php. Periodická změna klíčů se doporučuje zejména po bezpečnostním incidentu, protože změna klíčů zneplatní všechny existující relace a přinutí všechny uživatele se znovu přihlásit. Jde o účinný způsob, jak okamžitě odhlásit všechny uživatele včetně případného útočníka, který kompromitoval administrátorský účet.

Správná implementace

Vygenerované klíče zkopírujte a nahraďte ve wp-config.php zástupné hodnoty. Každý klíč musí být jedinečný a nikdy nepoužívejte stejné klíče na dvou různých webech. Pokud web migrujete na nový server, zkopírujte klíče ze starého wp-config.php, aby se uživatelé nemuseli znovu přihlašovat. Zálohu klíčů uchovávejte na bezpečném místě, protože jejich ztráta nezpůsobí trvalou škodu, ale vyžaduje, aby se všichni uživatelé znovu přihlásili.

Režim ladění

WP_DEBUG

Konstanta WP_DEBUG řídí, zda WordPress zobrazuje chyby, varování a upozornění PHP. Výchozí hodnotou je false, která skrývá všechny chyby před návštěvníky. Nastavení na true aktivuje zobrazování chyb a je užitečné během vývoje nebo řešení problémů. Na produkčním webu by WP_DEBUG nikdy nemělo být true, protože zobrazování chyb návštěvníkům odhaluje informace o struktuře webu, které může útočník zneužít.

WP_DEBUG_LOG

Když je WP_DEBUG_LOG nastaveno na true, WordPress zapisuje všechny chyby do souboru wp-content/debug.log místo jejich zobrazování na obrazovce. To je ideální pro produkční weby, kde chcete chyby sledovat, aniž byste je zobrazovali návštěvníkům. Vlastní cestu lze definovat nastavením WP_DEBUG_LOG na absolutní cestu k souboru protokolu. Pravidelně protokol kontrolujte a smažte jej, když se příliš zvětší, protože může zabírat značné množství místa na disku.

WP_DEBUG_DISPLAY

WP_DEBUG_DISPLAY řídí, zda se chyby zobrazují na HTML stránce. Nastavte na false v kombinaci s WP_DEBUG true a WP_DEBUG_LOG true, aby se chyby zaznamenávaly, ale nezobrazovaly návštěvníkům. SCRIPT_DEBUG po nastavení na true nutí WordPress používat nekomprimované verze souborů CSS a JavaScript, což je užitečné při vývoji šablon a pluginů, ale v produkci web zpomaluje.

Paměťový limit

WP_MEMORY_LIMIT

WP_MEMORY_LIMIT definuje maximální množství paměti PHP, které WordPress může využít pro zpracování požadavků na frontendu. Výchozí hodnotou je 40M pro standardní instalace a 64M pro Multisite. U webů s mnoha pluginy, velkými knihovnami médií nebo s WooCommerce se doporučuje zvýšení na 128M nebo 256M. Tato hodnota nemůže překročit nastavení memory_limit v PHP na serveru, protože WordPress nemůže požadovat více paměti, než kolik PHP povoluje.

WP_MAX_MEMORY_LIMIT

WP_MAX_MEMORY_LIMIT definuje paměťový limit pro administraci, která obvykle vyžaduje více paměti než frontend kvůli zpracování obrázků, aktualizacím a správě obsahu. Výchozí hodnotou je 256M. Pokud v administraci dostáváte chyby typu „Allowed memory size exhausted“, tuto hodnotu zvyšte. Pamatujte, že příliš vysoký paměťový limit může maskovat problém s únikem paměti v pluginu nebo šabloně, místo aby jej vyřešil.

Pokročilé konstanty

Automatické ukládání a revize

AUTOSAVE_INTERVAL definuje interval v sekundách mezi automatickým ukládáním příspěvků v editoru. Výchozí hodnotou je 60 sekund. Snížení na 30 sekund poskytuje častější zálohy obsahu během psaní, ale zvyšuje počet požadavků na server. WP_POST_REVISIONS řídí, kolik revizí se ukládá pro každý příspěvek. Ve výchozím nastavení WordPress uchovává neomezený počet revizí, což může u webů s velkým množstvím obsahu zaplnit databázi. Nastavte konkrétní číslo, například 5 nebo 10, pro rozumný kompromis mezi bezpečností obsahu a velikostí databáze.

Koš

EMPTY_TRASH_DAYS definuje, kolik dní se smazaný obsah uchovává v koši před trvalým smazáním. Výchozí hodnotou je 30 dní. Snižte na 7 dní, pokud chcete smazaný obsah automaticky uklízet rychleji. Nastavte na 0 pro úplné vypnutí koše, což znamená, že se obsah maže trvale okamžitě. To se nedoporučuje, protože pro omylem smazaný obsah neexistuje možnost obnovy.

Automatické aktualizace

WP_AUTO_UPDATE_CORE řídí automatické aktualizace jádra WordPressu. Hodnota true povoluje všechny aktualizace včetně hlavních verzí, minor povoluje pouze drobné bezpečnostní aktualizace, což je výchozí, a false zcela vypíná automatické aktualizace. AUTOMATIC_UPDATER_DISABLED nastavené na true vypíná všechny procesy automatických aktualizací včetně pluginů a šablon s možností automatické aktualizace.

SSL a URL

FORCE_SSL_ADMIN nastavené na true vynucuje HTTPS pro přihlášení a administraci. Více se dozvíte o nastavení SSL certifikátů. To je povinné na každém webu s SSL certifikátem, protože chrání přihlašovací údaje administrátora před odposlechem. WP_HOME a WP_SITEURL definují URL webu a mohou být užitečné při migraci webu na novou adresu. Tyto konstanty mají přednost před nastavením v databázi, což znamená, že je můžete použít pro rychlou změnu URL bez přístupu do administrace.

Cron a naplánované úlohy

WordPress používá systém wp-cron pro naplánované úlohy, jako je publikování naplánovaných příspěvků, kontrola aktualizací a odesílání e-mailových oznámení. WP-cron se spouští při každé návštěvě webu, což není ideální pro weby s nízkou nebo naopak velmi vysokou návštěvností. DISABLE_WP_CRON nastavené na true tento systém vypíná a vyžaduje konfiguraci systémového cronu, který spouští wp-cron.php v pravidelných intervalech, obvykle každých 5 nebo 15 minut.

ALTERNATE_WP_CRON používá alternativní metodu spouštění naplánovaných úloh, která je v některých hostingových prostředích spolehlivější. WP_CRON_LOCK_TIMEOUT definuje čas v sekundách, po který je wp-cron uzamčen, aby se zabránilo souběžnému spuštění více instancí. V BeoHostingu naše hostingové balíčky podporují systémový cron, který je spolehlivější než interní cron systém WordPressu, a můžeme jej pro váš web nakonfigurovat.

Bezpečnostní konstanty

Ochrana souborového systému

DISALLOW_FILE_EDIT nastavené na true vypíná vestavěný editor šablon a pluginů v administraci. Jde o důležité bezpečnostní opatření, protože pokud útočník kompromituje administrátorský účet, nemůže editor využít k vložení škodlivého kódu do souborů šablony nebo pluginu. DISALLOW_FILE_MODS jde o krok dál a vypíná instalaci a aktualizaci šablon a pluginů přes administraci, čímž nutí provádět všechny změny přes FTP nebo SSH.

Přesun wp-config.php o jeden adresář nad kořen webu je možný, protože WordPress soubor automaticky hledá v nadřazeném adresáři. Tím se zabrání přímému přístupu k souboru přes webový prohlížeč v případě, že PHP přestane fungovat a server začne servírovat PHP soubory jako text. Kombinace těchto opatření se správnými oprávněními souborů 644 pro wp-config.php nebo dokonce 440 na serverech, kde má přístup uživatel webového serveru, výrazně zlepšuje zabezpečení.

Optimalizace výkonu

Cache a komprese

WP_CACHE nastavené na true aktivuje mechanismus pro pokročilé cache pluginy jako WP Super Cache nebo W3 Total Cache. Tato konstanta umožňuje načtení souboru advanced-cache.php, který cache plugin vytváří pro zpracování požadavků dříve, než WordPress načte všechny pluginy a šablonu. Bez této konstanty nemohou cache pluginy fungovat optimálně. Komprese obsahu pomocí define COMPRESS_CSS true a define COMPRESS_SCRIPTS true může zmenšit velikost souborů CSS a JavaScript.

Databáze

SAVEQUERIES nastavené na true zaznamenává všechny databázové dotazy a dobu jejich provádění do globální proměnné wpdb queries. To je užitečné pro diagnostiku pomalého webu, protože můžete identifikovat dotazy, které trvají příliš dlouho nebo se zbytečně opakují. Nikdy toto nenechávejte zapnuté v produkci, protože ukládání všech dotazů do paměti zvyšuje spotřebu zdrojů. Používejte to pouze dočasně pro analýzu výkonu v kombinaci s pluginem jako Query Monitor.

Závěr

Soubor wp-config.php je řídicím centrem instalace WordPressu, které definuje chování webu na základní úrovni. Správná konfigurace bezpečnostních klíčů, režimu ladění, paměťových limitů a pokročilých konstant může výrazně zlepšit zabezpečení, výkon a stabilitu webu. Pravidelně nastavení kontrolujte a aktualizujte podle růstu webu a změn infrastruktury. V BeoHostingu vám náš tým může pomoci s optimalizací nastavení wp-config.php pro maximální výkon na naší hostingové platformě.

BeoHosting Team

10+ let zkušeností — Specialisté na webhosting a infrastrukturu

  • Web Hosting
  • WordPress Hosting
  • VPS
  • Dedicated Serveri
  • Domeni
  • SSL
  • cPanel
  • LiteSpeed
  • Linux administracija
  • DNS

Naposledy aktualizováno: