WordPress wp-config.php fájl

A wp-config.php fájl a WordPress telepítés egyik legfontosabb konfigurációs fájlja. Ez tartalmazza az adatbázis-kapcsolati adatokat, valamint számos egyéb, a WordPress működését befolyásoló beállítást.

Alapértelmezetten a WordPress letöltésekor ez a fájl még nem létezik. A telepítés során jön létre, a felhasználó által megadott adatok alapján. A fájl a WordPress gyökérkönyvtárában található.

Ezen fájlt könnyen szerkeszthetjük sFTP-n, SSH-n vagy tárhelyszolgáltató által biztosított fájlkezelőkkel. Ügyeljünk rá, hogy módosítás előtt mindig legyen biztonsági mentés róla! Illetve az sem árt, ha tudjuk mely módosítások, milyen következményekkel járhatnak.

Alapvető adatbázis-beállítások

define( 'DB_NAME', 'adatbazis_nev' );
define( 'DB_USER', 'adatbazis_felhasznalo' );
define( 'DB_PASSWORD', 'adatbazis_jelszo' );
define( 'DB_HOST', 'localhost' );

Magyarázat:

  • DB_NAME – Az adatbázis neve
  • DB_USER – Az adatbázishoz tartozó felhasználónév
  • DB_PASSWORD – Az adatbázis jelszava
  • DB_HOST – Az adatbázis kiszolgáló címe (legtöbbször localhost)

Adatbázis karakterkészlet és collation

define( 'DB_CHARSET', 'utf8mb4' );
define( 'DB_COLLATE', '' );

A utf8mb4 használata ajánlott, mivel ez támogatja a teljes Unicode karakterkészletet (például emojik).

Adatbázis tábla előtag

$table_prefix = 'wp_';

Az előtag módosításával:

  • több WordPress telepítés is használhatja ugyanazt az adatbázist (nem ajánlott)
  • minimálisan növelhető a biztonság, ha egyedit használunk (például wpma_)

Hitelesítési kulcsok

define( 'AUTH_KEY',         'egyedi_kulcs' );
define( 'SECURE_AUTH_KEY',  'egyedi_kulcs' );
define( 'LOGGED_IN_KEY',    'egyedi_kulcs' );
define( 'NONCE_KEY',        'egyedi_kulcs' );
define( 'AUTH_SALT',        'egyedi_kulcs' );
define( 'SECURE_AUTH_SALT', 'egyedi_kulcs' );
define( 'LOGGED_IN_SALT',   'egyedi_kulcs' );
define( 'NONCE_SALT',       'egyedi_kulcs' );

Ezek a kulcsok:

  • a sütik és munkamenetek titkosítására szolgálnak
  • bármikor lecserélhetők, ezzel minden felhasználót kijelentkeztetve (csere esetén hasonló, véletlenszerűre cseréljük)

WordPress URL-ek kényszerítése

define( 'WP_HOME', 'https://pelda.hu' );
define( 'WP_SITEURL', 'https://pelda.hu' );

Hasznos lehet:

  • költöztetésnél
  • hibás URL beállítások javításánál
  • admin felület elérhetetlensége esetén
  • ha még nem álltunk át https-re

A wp-content könyvtár áthelyezése

define( 'WP_CONTENT_DIR', dirname(__FILE__) . '/tartalom' );
define( 'WP_CONTENT_URL', 'https://pelda.hu/tartalom' );

Lehetővé teszi a wp-content mappa egyedi helyre mozgatását és átnevezését.

Feltöltések könyvtárának módosítása

define( 'UPLOADS', 'media' );

Ez a wp-content/uploads helyett egy másik könyvtárat használ.

Hibakeresési (debug) beállítások

Hibanapló, hibák megjelenítését mindig csak ideiglenesen használjunk! Ha nem nézzük, akkor legyen false (kikapcsolt) értéken mindegyik.

Alap debug mód

define( 'WP_DEBUG', true );

Hibák megjelenítése a böngészőben

define( 'WP_DEBUG_DISPLAY', true );

Hibák naplózása fájlba

define( 'WP_DEBUG_LOG', true );

SCRIPT_DEBUG

define( 'SCRIPT_DEBUG', true );

Ha engedélyezve van:

  • a WordPress nem minifikált JS és CSS fájlokat tölt be
  • fejlesztési környezetben ajánlott, éles oldalon nem ajánlott

JavaScript fájlok összefűzésének tiltása (admin felület)

define( 'CONCATENATE_SCRIPTS', false );

Hasznos lehet admin oldali JavaScript hibák keresésénél.

Tartalom szerkesztés

Automatikus (post) mentés időköze

define( 'AUTOSAVE_INTERVAL', 120 );

Hány másodperceként csináljunk automatikus mentést a WordPress, amikor szerkesztünk, készítünk egy tartalmat a szerkesztőben. (Ez a fájlszerkesztőre nem érvényes.)

Tartalom vázlatok mennyisége

define( 'WP_POST_REVISIONS', 3 );

Adott post-ból (bejegyzés, oldal, custom post type) hány darab automatikus mentés legyen megtartva az adatbázisban. (Ha 3 és az autosave_internel 120, akkor 1db 2 perccel korábbi, 1db 4 perccel korábbi, 1db 6 perccel korábbi változat van, régebbiek törölve vannak.)

Automatikus tartalomszerkesztés mentés kikapcsolása

define( 'WP_POST_REVISIONS', false );

Ilyen esetben a WordPress nem fog a tartalom írása, szerkesztése közben automatikus mentést készíteni, függetlenül a autosave_internal értékétől.

Lomtár ideje

define( 'EMPTY_TRASH_DAYS', 7 );

Ez határozza meg, hogy egy törölt post (bejegyzés, oldal, custom post type) hány napig (hányszor 24 óra) van a lomtárban, mielőtt végleg törlődne.

Környezettípus megadása

define( 'WP_ENVIRONMENT_TYPE', 'development' );

Lehetséges értékek:

  • local
  • development
  • staging
  • production

Ez más beállítások alapértelmezett működését is befolyásolhatja.

Memória korlát beállítása

define( 'WP_MEMORY_LIMIT', '256M' );
define( 'WP_MAX_MEMORY_LIMIT', '256M' );

Automatikus frissítések kezelése

define( 'AUTOMATIC_UPDATER_DISABLED', true );

Vagy csak a core frissítések engedélyezése:

define( 'WP_AUTO_UPDATE_CORE', true );

Cron kikapcsolása

define( 'DISABLE_WP_CRON', true );

Ez esetben külső cron job használata ajánlott, sőt sok bővítményhez szükséges. Ez az időzített bejegyzését is befolyásolja.

Fájlszerkesztés tiltása az admin felületen

define( 'DISALLOW_FILE_EDIT', true );

Biztonsági okokból erősen ajánlott, hogy az admin oldalon ne lehessen szerkeszteni a bővítmények és sablonok fájlait.

SSL kényszerítése az admin felületen

define( 'FORCE_SSL_ADMIN', true );

Amennyiben nem használ még a teljes honlapunk https-t.

Multisite

define( 'WP_ALLOW_MULTISITE', true );

A WordPress-nél van lehetőség multisite-ra, saját blog/honlap rendszer létrehozására, ha ezt hozzáadjuk. Részletes telepítése itt (új ablakban nyílik meg) található angolul.

Ajánlott wp-config.php kiegészítés

Készítettünk egy átlagos WordPress oldalhoz való wp-config.php kiegészítést, mely a legfontosabb elemeket tartalmazza. Természetesen egy méret, szint fölött ezt már egyénileg kell meghatározni, így ezt ne vegye senki szentírásnak, csupán kiindulási alapnak.

...
$table_prefix = 'tablaelotag_';


/* === Biztonsag === */
define( 'WP_SITEURL', 'https://pelda.hu' );
define( 'WP_HOME', 'https://pelda.hu' );
define( 'DISALLOW_FILE_EDIT', true );
define( 'FORCE_SSL_ADMIN', true );

/* === Hibakezeles === */
define( 'WP_DEBUG', false );
define( 'WP_DEBUG_DISPLAY', false );
define( 'WP_DEBUG_LOG', false );
@ini_set( 'display_errors', 0 );

/* === Teljesitmeny === */
define( 'WP_MEMORY_LIMIT', '256M' );
define( 'WP_MAX_MEMORY_LIMIT', '512M' );


/* === Tartalom=== */
define( 'EMPTY_TRASH_DAYS', 7 );
define( 'WP_POST_REVISIONS', 5 );
define( 'AUTOSAVE_INTERVAL', 120 );

/* === Egyeb === */
define( 'WP_ALLOW_MULTISITE', false );


/* That's all, stop editing! Happy publishing. */
...

A site_home és site_url-eket biztonsági okokból érdemes megadni állandóra, mivel sok támadás célja ezen mezők átírása.

Memory_limit Gutenberg-en kívüli pagebuilder-eknél akár 1024M-t is igényelhet egyes esetekben és ehhez a max_memory érték duplája is szükséges lehet.

Összegzés

A wp-config.php:

  • a WordPress működésének központi konfigurációs fájlja
  • nem minden esetben szükséges szerkeszteni
  • fejlesztés, hibakeresés, költöztetés és biztonsági finomhangolás esetén azonban kulcsszerepet játszik
  • több, részletesebb config lehetőség az hivatalos, angol wp-config dokumentációban (új ablakban nyílik meg)