Articles

Triky s konfigurací WordPressu

Mnoho uživatelů WordPressu zná soubor wp-config.php jako klíč k databázi WordPressu. V něm se nastavuje název databáze, uživatelské jméno, heslo a umístění (kromě jiných věcí, jako jsou bezpečnostní klíče, předpona databáze a lokalizovaný jazyk).

Tady je snímek obrazovky souboru wp-config.php (neboli konfiguračního souboru WordPressu) pro ty, kteří ho možná ještě neznají:

The WordPress Configuration File, wp-config.phpSoubor wp-config.php obsahuje informace potřebné k tomu, aby se WordPress mohl připojit k databázi

Mnoho uživatelů však neví, že soubor wp-config.php lze použít k zadání nejrůznějších konfiguračních nastavení, což vám umožní zlepšit funkčnost, výkon a zabezpečení webu poháněného systémem WordPress. V tomto článku se s vámi podělím o tolik těchto konfiguračních triků, kolik se mi jich za léta podařilo nasbírat. Tento průvodce zahrnuje vše, co je uvedeno v Kodexu WordPressu, a také některé další triky, se kterými jste se pravděpodobně ještě nesetkali. Pokud víte o dalších konfiguračních tricích WordPressu, podělte se o ně v komentářích a já je do příspěvku přidám.

Aktualizace! Podívejte se na navazující článek, kde najdete další triky pro konfiguraci WordPressu: „

Pověřovací údaje databáze *

Tato sada čtyř konfiguračních definic je nutná pro připojení WordPressu k databázi:

define('DB_NAME', 'database-name');define('DB_USER', 'database-username');define('DB_PASSWORD', 'database-password');define('DB_HOST', 'localhost');

Název databáze, uživatelské jméno a heslo by měly být snadno dostupné při vytváření databáze, ale hodnotu DB_HOST může být obtížnější získat. Nejčastěji je tato hodnota jednoduše „localhost„, ale pokud to nefunguje, zde je několik dalších hodnot, které můžete vyzkoušet:

  • 1and1 Hosting – db12345678
  • DreamHost – mysql.example.com
  • GoDaddy – h41mysql52.secureserver.net
  • ICDSoft – localhost:/tmp/mysql5.sock
  • MediaTemple (GS) – internal-db.s44441.gridserver.com
  • Pair Networks – dbnnnx.pair.com
  • Yahoo – mysql

Můžete zadat i alternativní port pro databázový server. Zde jsou dva příklady:

define('DB_HOST', 'localhost:1234');
define('DB_HOST', 'mysql.domain.tld:1234');

Dalším skvělým trikem je automatické zjištění hodnoty databázového serveru:

define('DB_HOST', $_ENV{DATABASE_SERVER});

Pokud všechny tyto způsoby selžou nebo pokud máte stále problémy, obraťte se o pomoc na svého poskytovatele hostingu.

Sada znaků databáze a collation *

Od verze WordPress 2.2 můžete zadat sadu znaků pro tabulky databáze MySQL. Obecně není důvod měnit výchozí hodnotu znakové sady UTF-8, která je obvykle ideální, protože podporuje všechny jazyky. Zde je výchozí (a doporučené) nastavení:

define('DB_CHARSET', 'utf8');

Ve verzi 2.2 aplikace WordPress můžete také zadat collation, což je pořadí řazení znakové sady vaší databáze. Nastavení collation zpravidla řeší MySQL automaticky podle znakové sady, což je umožněno ponecháním prázdné hodnoty collation, jak je provedeno ve výchozím nastavení této definice. Zde je výchozí (a doporučené) nastavení:

define('DB_COLLATE', '');
Poznámka: tyto dvě definice použijte pouze v případě, že již existují v souboru wp-config.php.

Bezpečnostní klíče *

Od verze WordPress 2.7 jsou k dispozici čtyři bezpečnostní klíče, které mají zajistit lepší šifrování souborů cookie. Tyto klíče pracují tiše na pozadí a měly by být co nejnáhodnější a nejsložitější (ne, nikdy si je nebudete muset pamatovat). Nejjednodušší způsob, jak tyto klíče vygenerovat, je provést to automaticky ve službě tajných klíčů WordPress.org. Stačí navštívit tento odkaz a zkopírovat/vložit výsledky do souboru wp-config.php. Upozorňujeme, že tyto klíče lze kdykoli změnit, což zneplatní všechny stávající soubory cookie vašich uživatelů, takže se budou muset na váš web znovu přihlásit.

define('AUTH_KEY', ':dr+%/5V4sAUG-gg%aS*v;&xGhd%{YV)p:Qi?jXLq,<h\`39');define('SECURE_AUTH_KEY', '@*+S=8\"\'+\"}]<m#+}V)p:Qi?jXLq,<h\`39m_(');define('LOGGED_IN_KEY', 'S~AACm4h1;T^\"qW3_8Zv!Ji=y|)~5i63JI |Al.'/path/to/wordpress');define('WP_SITEURL', 'http://'.$_SERVER.'/path/to/wordpress');

Při použití na veřejném webu je pravděpodobně nejlepší tyto hodnoty vynechat.

Cesta k šabloně a cesta ke stylopisu

Stejně jako u předdefinovaných konstant pro adresu blogu a adresu webu (viz předchozí část) můžete také zvýšit výkon eliminací dotazů do databáze pro cestu k šabloně a cestu ke stylopisu vašeho webu. Zde jsou výchozí hodnoty těchto dvou definic:

define('TEMPLATEPATH', get_template_directory());define('STYLESHEETPATH', get_stylesheet_directory());

Tak, jak jsou, se tyto dvě definice stále dotazují databáze, ale můžeme tyto nadbytečné dotazy eliminovat tím, že hodnoty napevno zakódujeme na místo:

define('TEMPLATEPATH', '/absolute/path/to/wp-content/themes/active-theme');define('STYLESHEETPATH', '/absolute/path/to/wp-content/themes/active-theme');

Zakázat mezipaměť a vypršení mezipaměti

Tyto dvě možnosti platí pro starší verze WordPressu, které stále používají výchozí mechanismus mezipaměti založený na objektech. První definice umožňuje povolit nebo zakázat mezipaměť, zatímco druhá definice umožňuje určit dobu vypršení platnosti mezipaměti.

Povolit mezipaměť

define('WP_CACHE', true); // enable the cachedefine('ENABLE_CACHE', true); // enable the cachedefine('CACHE_EXPIRATION_TIME', 3600); // in seconds

Zakázat mezipaměť

define('WP_CACHE', false); // disable the cachedefine('DISABLE_CACHE', true); // disable the cache

Určit doménu souborů cookie

Existuje několik důvodů, proč chcete pro svůj web určit doménu souborů cookie. Běžným příkladem je zabránění odesílání souborů cookie s požadavky na statický obsah na subdoménách. V takovém případě byste pomocí této definice řekli systému WordPress, aby soubory cookie odesílal pouze na vaši nestatickou doménu. To by mohlo znamenat výrazné zvýšení výkonu. Zde je několik příkladů nastavení různých informací o cestě k souborům cookie a doméně souborů cookie:

define('COOKIE_DOMAIN', '.digwp.com'); // don't omit the leading '.'define('COOKIEPATH', preg_replace('|https?://+|i', '', get_option('home').'/'));define('SITECOOKIEPATH', preg_replace('|https?://+|i', '', get_option('siteurl').'/'));define('PLUGINS_COOKIE_PATH', preg_replace('|https?://+|i', '', WP_PLUGIN_URL));define('ADMIN_COOKIE_PATH', SITECOOKIEPATH.'wp-admin');

Override File Permissions

Pokud jsou výchozí oprávnění k souborům vašeho webového hostitele příliš omezující, může přidání těchto definic do konfiguračního souboru WordPressu pomoci problém vyřešit. Všimněte si, že kolem hodnot oprávnění není třeba uvádět uvozovky. Například:

define('FS_CHMOD_FILE', 0755);define('FS_CHMOD_DIR', 0755);

Zobrazit všechny definované konstanty

Potřebujete zobrazit všechny předdefinované konstanty? Dobrá zpráva, tato funkce PHP vrátí pole všech aktuálně definovaných konstant:

print_r(@get_defined_constants());

Vlastní tabulky uživatelů a usermeta

Co s vlastními tabulkami uživatelů a usermeta? Ano, i to můžete udělat pomocí následujících definic:

define('CUSTOM_USER_TABLE', $table_prefix.'my_users');define('CUSTOM_USER_META_TABLE', $table_prefix.'my_usermeta');

Konstanty FTP/SSH

Tato sada konfiguračních definic je určena k tomu, aby pomohla uživatelům najít a využít připojení FTP/SSH. Zde je příklad sady předdefinovaných konstant pro aktualizace FTP/SSH:

define('FS_METHOD', 'ftpext'); // forces the filesystem method: "direct", "ssh", "ftpext", or "ftpsockets"define('FTP_BASE', '/path/to/wordpress/'); // absolute path to root installation directorydefine('FTP_CONTENT_DIR', '/path/to/wordpress/wp-content/'); // absolute path to "wp-content" directorydefine('FTP_PLUGIN_DIR ', '/path/to/wordpress/wp-content/plugins/'); // absolute path to "wp-plugins" directorydefine('FTP_PUBKEY', '/home/username/.ssh/id_rsa.pub'); // absolute path to your SSH public keydefine('FTP_PRIVKEY', '/home/username/.ssh/id_rsa'); // absolute path to your SSH private keydefine('FTP_USER', 'username'); // either your FTP or SSH usernamedefine('FTP_PASS', 'password'); // password for FTP_USER usernamedefine('FTP_HOST', 'ftp.domain.tld:21'); // hostname:port combo for your SSH/FTP server

Přesun adresáře wp-content

Od verze WordPress 2.6 můžete změnit výchozí umístění adresáře wp-content. Existuje několik dobrých důvodů, proč to udělat, včetně zvýšení bezpečnosti webu a usnadnění aktualizací FTP. Některé příklady:

// full local path of current directory (no trailing slash)define('WP_CONTENT_DIR', $_SERVER.'/path/wp-content'); // full URI of current directory (no trailing slash)define('WP_CONTENT_URL', 'http://domain.tld/path/wp-content');

Můžete také dále zadat vlastní cestu pro adresář plugins. To může pomoci při problémech s kompatibilitou s některými zásuvnými moduly:

// full local path of current directory (no trailing slash)define('WP_PLUGIN_DIR', $_SERVER.'/path/wp-content/plugins'); // full URI of current directory (no trailing slash)define('WP_PLUGIN_URL', 'http://domain.tld/path/wp-content/plugins');

Řešení revizí příspěvků

Nejnovější verze systému WordPress poskytují systém revizí příspěvků, který umožňuje uživatelům ukládat různé verze příspěvků na blogu a v případě potřeby se dokonce vrátit k dříve uloženým verzím. Bez ohledu na to, jak moc touto úžasně úžasnou funkcí pohrdáte nebo nepohrdáte, zde je několik konfiguračních definic, které se vám mohou hodit 😉

Omezit počet uložených revizí

define('WP_POST_REVISIONS', 3); // any integer, but don't get too crazy

Zakázat funkci revize příspěvků

define('WP_POST_REVISIONS', false);

Určit interval automatického ukládání

V podobném duchu jako funkce revize příspěvků je skutečně užitečná funkce automatického ukládání ve WordPressu. Ve výchozím nastavení WordPress ukládá vaši práci každých 60 sekund, ale toto nastavení můžete zcela libovolně upravit. Neblázněte však příliš, pokud nechcete stresovat svůj server 😉

define('AUTOSAVE_INTERVAL', 160); // in seconds

Debugování WordPressu

Od verze WordPressu 2.3.1 mohou uživatelé zobrazovat určité chyby a varování, které jim pomáhají při ladění webu. Od verze WordPress 2.5 se zapnutím hlášení chyb zvýší úroveň hlášení na E_ALL a aktivují se varování pro zastaralé funkce. Ve výchozím nastavení (tj. pokud není v souboru wp-config.php zadána žádná definice) je hlášení chyb vypnuto.

define('WP_DEBUG', true); // enable debugging modedefine('WP_DEBUG', false); // disable debugging mode (default)

Konfigurace protokolu chyb

Zde je jednoduchý způsob, jak povolit základní protokolování chyb pro váš web poháněný WordPressem. Vytvořte soubor s názvem „php_error.log„, vytvořte jej tak, aby byl zapisovatelný na server, a umístěte jej do vybraného adresáře. Poté upravte cestu ve třetím řádku následujícího kódu a umístěte jej do souboru wp-config.php:

@ini_set('log_errors','On');@ini_set('display_errors','Off');@ini_set('error_log','/home/path/domain/logs/php_error.log');

Zvětšit paměť PHP

Pokud se vám zobrazují chybová hlášení s hlášením, že „Povolená velikost paměti xxx bajtů vyčerpána“, může toto nastavení pomoci problém vyřešit. Od verze 2.5 WordPressu umožňuje definice WP_MEMORY_LIMIT určit maximální velikost paměti, kterou může PHP využívat. Ve výchozím nastavení se WordPress automaticky pokusí zvýšit paměť PHP až na 32 MB, takže toto nastavení je nutné pouze pro hodnoty vyšší než 32 MB. Všimněte si, že někteří webhostitelé možnost navýšení paměti PHP zakazují, takže je o to možná budete muset požádat. Zde je několik příkladů:

define('WP_MEMORY_LIMIT', '64M');define('WP_MEMORY_LIMIT', '96M');define('WP_MEMORY_LIMIT', '128M');

Uložení a zobrazení databázových dotazů pro analýzu

Tato technika je ideální pro ukládání databázových dotazů a zobrazení informací pro následnou analýzu. Proces ukládá každý dotaz, jeho přidruženou funkci a celkový čas jeho provedení. Tyto informace se uloží jako pole a lze je zobrazit na libovolné stránce šablony motivu. Chcete-li to provést, přidejte nejprve do souboru wp-config.php následující směrnici:

define('SAVEQUERIES', true);

Poté do zápatí aktivního motivu umístěte následující kód:

// display the query array for admin onlyif (current_user_can('level_10')) {global $wpdb;echo "<pre>";print_r($wpdb->queries);echo "</pre>";}

Tady je jednořádková verze této funkce:

<?php if (current_user_can('level_10')) { global $wpdb; echo "<pre>"; print_r($wpdb->queries); echo "</pre>"; } ?>

Kontrola přístupu k proxy serveru

Od verze WordPress 2.8 lze konfigurační soubor použít k definování konstant spojených s blokováním, povolováním a filtrováním přístupu ke konkrétním hostitelům zpoza proxy serveru. Pokud například hostujete svůj web WordPress v intranetové síti, můžete pomocí první níže uvedené definice zakázat přístup ke všem externím hostitelům a povolit pouze požadavky z localhostu a svého blogu. Můžete také povolit přístup konkrétním hostitelům pomocí seznamu povolených názvů hostitelů oddělených čárkou, jak ukazuje třetí definice níže.

define('WP_HTTP_BLOCK_EXTERNAL', true); // block external requestsdefine('WP_HTTP_BLOCK_EXTERNAL', false); // allow external requestsdefine('WP_ACCESSIBLE_HOSTS', 'api.wordpress.org'); // whitelist hosts
Všimněte si, že byste měli povolit přístup api.wordpress.org, abyste zajistili správnou funkčnost základních souborů a zásuvných modulů.

Uf! Jsem vyřízený. Je čas na malou přestávku 🙂

Poznámky

  • * Označuje, že kód je obsažen ve výchozím souboru wp-config.php
  • Brazilský překlad do portugalštiny (autor Tárcio Zemel)

.