WordPress konfigurációs trükkök
Sok WordPress felhasználó ismeri a wp-config.php
fájlt, mint a WordPress adatbázis kulcsát. Itt állítod be az adatbázis nevét, felhasználónevét, jelszavát és helyét (olyan egyéb dolgok mellett, mint a biztonsági kulcsok, az adatbázis-előtag és a lokalizált nyelv).
Itt egy képernyőkép a wp-config.php
(más néven a WordPress konfigurációs fájljáról) azok számára, akik esetleg még nem ismerik:
De amit sok felhasználó nem tud, az az, hogy a wp-config.php
fájl a konfigurációs beállítások széles skálájának megadására használható, lehetővé téve a WordPress-alapú webhely funkcionalitásának, teljesítményének és biztonságának javítását. Ebben a cikkben annyi ilyen konfigurációs trükköt osztok meg, amennyit az évek során sikerült összegyűjtenem. Ez az útmutató kitér mindenre, ami a WordPress Codexben szerepel, valamint néhány olyan további trükkre is, amelyekkel valószínűleg még nem találkoztál. Ha tudsz további WordPress konfigurációs trükköket, oszd meg őket a hozzászólásokban, és hozzáadom a bejegyzéshez.
Adatbázis hitelesítő adatok *
Ez a négy konfigurációs meghatározás szükséges ahhoz, hogy a WordPress csatlakozni tudjon az adatbázishoz:
define('DB_NAME', 'database-name');define('DB_USER', 'database-username');define('DB_PASSWORD', 'database-password');define('DB_HOST', 'localhost');
Az adatbázis neve, felhasználóneve és jelszava könnyen elérhető kell, hogy legyen az adatbázis létrehozása során, de a DB_HOST
értéket nehezebb lehet megszerezni. Leggyakrabban ez az érték egyszerűen “localhost
“, de ha ez nem működik, itt van néhány más érték, amit kipróbálhat:
- 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
Az adatbázis szerverhez akár alternatív portot is megadhat. Íme két példa:
define('DB_HOST', 'localhost:1234');
define('DB_HOST', 'mysql.domain.tld:1234');
Egy másik klassz trükk az adatbázis-szerver értékének automatikus felismerése:
define('DB_HOST', $_ENV{DATABASE_SERVER});
Ha mindezek nem sikerülnek, vagy ha még mindig gondjaid vannak, fordulj a tárhelyszolgáltatódhoz segítségért.
Adatbázis karakterkészlete és kolláció *
A WordPress 2.2-es verziójától kezdve a MySQL adatbázis tábláihoz megadhat egy karakterkészletet. Általában nincs okunk megváltoztatni az UTF-8 alapértelmezett karakterkészlet értékét, amely általában tökéletes, mivel minden nyelvet támogat. Itt az alapértelmezett (és ajánlott) beállítás:
define('DB_CHARSET', 'utf8');
A WordPress 2.2-es verziója lehetővé teszi a kolláció, azaz az adatbázis karakterkészletének rendezési sorrendjének megadását is. A kolláció beállítását a MySQL általában automatikusan kezeli a karakterkészletnek megfelelően, amit a kolláció értékének üresen hagyásával lehet engedélyezni, ahogyan azt a definíció alapértelmezett beállítása teszi. Itt az alapértelmezett (és ajánlott) beállítás:
define('DB_COLLATE', '');
wp-config.php
fájlodban.Biztonsági kulcsok *
A WordPress 2.7-től négy biztonsági kulcs áll rendelkezésre, amelyek célja a jobb cookie-titkosítás biztosítása. Ezek a kulcsok csendben működnek a háttérben, és a lehető legkevésbé véletlenszerűnek és bonyolultnak kell lenniük (nem, soha nem kell majd megjegyezni őket). Ezeket a kulcsokat a legegyszerűbben a WordPress.org titkoskulcs-szolgáltatásában lehet automatikusan generálni. Egyszerűen látogass el erre a linkre, és másold/illeszd be az eredményeket a wp-config.php
fájlodba. Vedd figyelembe, hogy ezek a kulcsok bármikor megváltoztathatók, és ezzel a felhasználók összes meglévő sütije érvénytelenné válik, így újra be kell jelentkezniük az oldaladra.
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');
Vélhetően a legjobb, ha elkerülöd ezeket az értékeket, ha nyilvános oldalon használod.
Sablon elérési útvonal és stílustábla elérési útvonal
A blogcím és a webhely címének előre definiált konstansaihoz hasonlóan (lásd az előző részt), a webhely sablon elérési útvonalára és stílustábla elérési útvonalára vonatkozó adatbázis-lekérdezések kiküszöbölésével is növelheti a teljesítményt. Itt vannak e két definíció alapértelmezett értékei:
define('TEMPLATEPATH', get_template_directory());define('STYLESHEETPATH', get_stylesheet_directory());
A jelenlegi állapotában ez a két definíció még mindig lekérdezi az adatbázist, de kiküszöbölhetjük ezeket a felesleges lekérdezéseket az értékek keménykódolásával a helyükre:
define('TEMPLATEPATH', '/absolute/path/to/wp-content/themes/active-theme');define('STYLESHEETPATH', '/absolute/path/to/wp-content/themes/active-theme');
Disable Cache and Cache Expiration
Ez a két beállítás a WordPress régebbi verzióira vonatkozik, amelyek még az objektumalapú gyorsítótárazási mechanizmust használják. Az első meghatározás lehetővé teszi a gyorsítótár engedélyezését vagy letiltását, míg a második meghatározás lehetővé teszi a gyorsítótár lejárati idejének megadását.
Enable the cache
define('WP_CACHE', true); // enable the cachedefine('ENABLE_CACHE', true); // enable the cachedefine('CACHE_EXPIRATION_TIME', 3600); // in seconds
Disable the cache
define('WP_CACHE', false); // disable the cachedefine('DISABLE_CACHE', true); // disable the cache
Specify Cookie Domain
Több oka is van annak, hogy meg akarja adni a cookie tartományt a webhelyéhez. Egy gyakori példa a cookie-k küldésének megakadályozása az altartományok statikus tartalmainak kéréseivel. Ebben az esetben ezt a meghatározást arra használnád, hogy megmondd a WordPressnek, hogy csak a nem statikus tartományodnak küldjön cookie-kat. Ez jelentős teljesítménynövekedést jelenthet. Íme néhány példa a különböző cookie-útvonal és cookie-tartomány információk beállítására:
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');
Fájlengedélyek felülbírálása
Ha a webtárhelye alapértelmezett fájlengedélyei túlságosan korlátozóak, ezeknek a definícióknak a WordPress konfigurációs fájljához való hozzáadása segíthet a probléma megoldásában. Vegye figyelembe, hogy nincs szükség az idézőjelekre az engedélyek értékei körül. Például:
define('FS_CHMOD_FILE', 0755);define('FS_CHMOD_DIR', 0755);
Minden definiált konstans megtekintése
Minden előre definiált konstans megtekintésére van szükséged? Jó hír, ez a PHP függvény visszaadja az összes jelenleg definiált konstans tömbjét:
print_r(@get_defined_constants());
Egyéni felhasználó és usermeta táblák
Mi a helyzet az egyéni felhasználó és usermeta táblákkal? Igen, azt is megteheti a következő definíciókkal:
define('CUSTOM_USER_TABLE', $table_prefix.'my_users');define('CUSTOM_USER_META_TABLE', $table_prefix.'my_usermeta');
FTP/SSH konstansok
A konfigurációs definíciók ezen csoportja arra szolgál, hogy segítse a felhasználókat az FTP/SSH kapcsolatok megtalálásában és használatában. Íme egy példa az FTP/SSH frissítésekre vonatkozó előre definiált konstansok készletére:
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
A wp-content könyvtár áthelyezése
A WordPress 2.6-os verziójától kezdve megváltoztathatja a wp-content
könyvtár alapértelmezett helyét. Ennek több jó oka is van, többek között a webhely biztonságának növelése és az FTP-frissítések megkönnyítése. Néhány példa:
// 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');
A plugins
könyvtárhoz további egyéni elérési utat is megadhat. Ez segíthet bizonyos bővítményekkel kapcsolatos kompatibilitási problémák esetén:
// 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');
A bejegyzések átdolgozásának kezelése
A WordPress újabb verziói egy olyan bejegyzések átdolgozási rendszert biztosítanak, amely lehetővé teszi a felhasználók számára, hogy blogbejegyzéseik különböző változatait elmentsék, és szükség esetén akár vissza is térjenek a korábban elmentett változatokhoz. Függetlenül attól, hogy mennyire veted vagy nem veted meg ezt az elképesztően nagyszerű funkciót, íme néhány konfigurációs meghatározás, amely hasznos lehet számodra 😉
A mentett revíziók számának korlátozása
define('WP_POST_REVISIONS', 3); // any integer, but don't get too crazy
A post-revisioning funkció kikapcsolása
define('WP_POST_REVISIONS', false);
Az automatikus mentési intervallum meghatározása
A post-revisioning funkcióhoz hasonlóan a WordPress valóban hasznos Autosave funkciója is. Alapértelmezés szerint a WordPress 60 másodpercenként menti a munkádat, de ezt a beállítást teljesen úgy módosíthatod, ahogyan csak szeretnéd. Ne őrülj meg azonban túlságosan, hacsak nem akarod stresszelni a szerveredet 😉
define('AUTOSAVE_INTERVAL', 160); // in seconds
Debugging WordPress
A WordPress 2.3.1-es verziója óta a felhasználóknak lehetőségük van bizonyos hibák és figyelmeztetések megjelenítésére, hogy segítsék a webhelyük hibakeresését. A WordPress 2.5-ös verziójától kezdve a hibajelentés engedélyezése E_ALL
-ra emeli a jelentés szintjét, és aktiválja az elavult funkciókkal kapcsolatos figyelmeztetéseket. Alapértelmezés szerint (azaz ha nincs meghatározás megadva a wp-config.php
fájlban) a hibajelentés ki van kapcsolva.
define('WP_DEBUG', true); // enable debugging modedefine('WP_DEBUG', false); // disable debugging mode (default)
Hibanapló beállítása
Itt egy egyszerű módja annak, hogy engedélyezze az alapvető hibanaplózást a WordPress-alapú webhelyén. Hozz létre egy “php_error.log
” nevű fájlt, tedd szerver írhatóvá, és helyezd el az általad választott könyvtárban. Ezután szerkeszd meg az alábbi kód harmadik sorában található elérési utat, és helyezd el a wp-config.php
fájlodban:
@ini_set('log_errors','On');@ini_set('display_errors','Off');@ini_set('error_log','/home/path/domain/logs/php_error.log');
Növeld a PHP memóriát
Ha hibaüzeneteket kapsz, amelyek szerint “A megengedett memóriaméret xxx bájt kimerült”, ez a beállítás segíthet megoldani a problémát. A WordPress 2.5-ös verziójától kezdve a WP_MEMORY_LIMIT
meghatározás lehetővé teszi a PHP által felhasználható maximális memóriamennyiség meghatározását. Alapértelmezés szerint a WordPress automatikusan megpróbálja növelni a PHP memóriáját 32 MB-ig, így erre a beállításra csak 32 MB-nál nagyobb értékek esetén van szükség. Vegye figyelembe, hogy néhány webtárhely letiltja a PHP memória növelésének lehetőségét, így előfordulhat, hogy könyörögnie kell, hogy megtehesse. Íme néhány példa:
define('WP_MEMORY_LIMIT', '64M');define('WP_MEMORY_LIMIT', '96M');define('WP_MEMORY_LIMIT', '128M');
Adatbázis-lekérdezések mentése és megjelenítése elemzéshez
Ez a technika tökéletes az adatbázis-lekérdezések mentésére és az információk megjelenítésére későbbi elemzéshez. A folyamat minden egyes lekérdezést, a hozzá tartozó funkciót és a teljes végrehajtási időt elmenti. Ez az információ tömbként kerül elmentésre, és bármelyik téma sablonoldalán megjeleníthető. Ehhez először a következő direktívát kell hozzáadni a wp-config.php
fájlhoz:
define('SAVEQUERIES', true);
Ezután az aktív téma láblécében helyezze el a következő kódot:
// display the query array for admin onlyif (current_user_can('level_10')) {global $wpdb;echo "<pre>";print_r($wpdb->queries);echo "</pre>";}
Itt van a funkció egysoros változata:
<?php if (current_user_can('level_10')) { global $wpdb; echo "<pre>"; print_r($wpdb->queries); echo "</pre>"; } ?>
Proxy-hozzáférés ellenőrzése
Mióta a WordPress 2.8 óta a konfigurációs fájlban meghatározhatók a proxykiszolgáló mögül bizonyos hosztokhoz való hozzáférés blokkolásával, engedélyezésével és szűrésével kapcsolatos konstansok. Ha például a WordPress webhelyét egy intranetes hálózaton üzemelteti, az alábbi első definícióval megakadályozhatja az összes külső hoszt elérését, és csak a localhostról és a blogjáról érkező kéréseket engedélyezheti. Engedélyezheti bizonyos hosztok hozzáférését az engedélyezett hosztnevek vesszővel elválasztott listájával is, ahogyan azt az alábbi harmadik definíció mutatja.
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
api.wordpress.org
hozzáférést engedélyeznie kell az alapfájlok és bővítmények megfelelő működésének biztosítása érdekében.Whew! Kipurcantam. Ideje egy kis szünetnek 🙂
Jegyzetek
- * Jelzi, hogy a kód az alapértelmezett
wp-config.php
fájlban szerepel - Brazil portugál fordítás (Tárcio Zemel által)