Podstawowe ustawienia wp-config.php: plik & pamięć, wersje — poradnik dla SSH, SFTP i cPanel

Informacja o linkach partnerskich v3.1
Informacja o linkach partnerskich v3.2 (wersja mobilna)

Plik wp-config.php to najważniejszy plik konfiguracyjny witryny na WordPressie. Zawiera kluczowe informacje, których WordPress potrzebuje, aby połączyć się z bazą danych i działać, dlatego pełni rolę serca witryny.

Ⅰ. Rola pliku wp-config.php

Ten plik zawiera następujące wrażliwe ustawienia.

  • Dane połączenia z bazą danych
  • ↳ Są tu dane potrzebne do połączenia z bazą danych, w której WordPress przechowuje treści: nazwa bazy MySQL lub MariaDB, nazwa użytkownika, hasło i host.
  • Klucze bezpieczeństwa i salty
  • ↳ Unikalne, losowe ciągi znaków, które szyfrują sesje logowania i ciasteczka użytkowników. Bez tych kluczy sesje nie są bezpieczne.
  • Inne kluczowe ustawienia
  • ↳ Tu definiuje się ważne stałe, które sterują działaniem WordPressa: prefiks tabel, włączanie lub wyłączanie trybu debugowania czy wyłączenie edycji plików.
Plik wp-config.php WordPressa

Dlatego plik wp-config.php staje się dla atakujących z zewnątrz celem numer jeden. Gdy uprawnienia są ustawione źle albo treść wycieknie, może wyciec cała baza danych lub ktoś przejmie uprawnienia administratora — to poważna luka w zabezpieczeniach. Pierwszym krokiem do wzmocnienia bezpieczeństwa WordPressa jest więc zabezpieczenie tego pliku.

1️⃣ Gdzie jest plik wp-config.php

Plik wp-config.php leży w głównym folderze instalacji WordPressa, obok folderów [wp-admin], [wp-content] i [wp-includes]. Na hostingu z cPanelem jest to folder [public_html]; na moim VPS-ie Lightsail plik leży w [/home/uknew/www/wp-config.php].

Jeśli nie widzisz pliku w głównym folderze, sprawdź folder o poziom wyżej. WordPress szuka wp-config.php najpierw w folderze instalacji, a gdy go tam nie ma, wczytuje go z folderu bezpośrednio nad nim.

2️⃣ Jak otworzyć wp-config.php

W [Menedżerze plików] panelu hostingu przejdź do głównego folderu, kliknij prawym przyciskiem wp-config.php i wybierz [Edit]. W ten sposób edytujesz plik od razu w przeglądarce, bez dodatkowego programu.

Przez program FTP (FileZilla) pobierasz plik na komputer, edytujesz go w edytorze i wgrywasz z powrotem. Przed wgraniem zachowaj osobno kopię oryginału, a w razie błędu od razu ją przywrócisz.

Na serwerach takich jak VPS, z którymi łączysz się przez SSH, uruchom edytor [vi] z podaną za nim ścieżką pliku; [nano] otwiera go w ten sam sposób.

vi /home/uknew/www/wp-config.php

3️⃣ wp-config-sample.php i podstawowa struktura

Świeżo pobrana paczka WordPressa nie zawiera wp-config.php, tylko [wp-config-sample.php] w tym samym miejscu. Gdy na ekranie instalacji wpiszesz dane bazy, WordPress utworzy wp-config.php na podstawie tego pliku; samodzielne skopiowanie i zmiana nazwy dają ten sam wynik.

define( 'DB_NAME', 'database_name_here' );
define( 'DB_USER', 'username_here' );
define( 'DB_PASSWORD', 'password_here' );
define( 'DB_HOST', 'localhost' );
define( 'DB_CHARSET', 'utf8mb4' );
define( 'DB_COLLATE', '' );

define( 'AUTH_KEY',         'put your unique phrase here' );
define( 'SECURE_AUTH_KEY',  'put your unique phrase here' );
define( 'LOGGED_IN_KEY',    'put your unique phrase here' );
define( 'NONCE_KEY',        'put your unique phrase here' );
define( 'AUTH_SALT',        'put your unique phrase here' );
define( 'SECURE_AUTH_SALT', 'put your unique phrase here' );
define( 'LOGGED_IN_SALT',   'put your unique phrase here' );
define( 'NONCE_SALT',       'put your unique phrase here' );

$table_prefix = 'wp_';

define( 'WP_DEBUG', false );

W czterech wierszach [DB_NAME], [DB_USER], [DB_PASSWORD] i [DB_HOST] wpisujesz dane bazy otrzymane od hostingu. Jeśli choć jedna wartość jest błędna, zamiast witryny pojawi się błąd [Error establishing a database connection].

Osiem wierszy od [AUTH_KEY] do [NONCE_SALT] szyfruje ciasteczka logowania; pobierz nowy zestaw z [https://api.wordpress.org/secret-key/1.1/salt/] i podmień wszystkie naraz. Po zmianie tych wartości wszyscy zalogowani użytkownicy zostaną wylogowani.

[$table_prefix] to prefiks dodawany do nazw tabel bazy danych, domyślnie [wp_]; rozróżnia kilka instalacji WordPressa w jednej bazie. Gdy ustawisz [WP_DEBUG] na [true], błędy PHP pojawią się na ekranie, więc na działającej witrynie zostaw [false].

Ⅱ. Podstawowe ustawienia wp-config.php po instalacji WordPressa

Wszystkie wiersze ustawień wstawiasz nad komentarzem /* That’s all, stop editing! Happy publishing. */. W symulatorze poniżej wybierz sposób połączenia (SSH, cPanel lub FTP) i otwórz wp-config.php; ustawienie kliknięte po lewej od razu przeniesie Cię do jego wiersza.

⚙️ Ustawienia wp-config.phpSymulator ustawień
/* That’s all, stop editing! Happy publishing. */
Technicznie ten komentarz (/* That’s all, stop editing! Happy publishing. */) nie pełni żadnej szczególnej funkcji jako kod PHP. To zwykły komentarz.
user_a@server: ~
Last login: Mon Oct 5 14:10:02 2026 from 10.0.0.12
[user_a@server ~]$
Zespół WordPressa zostawił go jednak jako ‘znacznik‘ dla użytkowników: „pod tym komentarzem jest kluczowy kod potrzebny do działania WordPressa, więc go nie ruszaj”.
  1. Stałe ustawień (define) powyżej: Większość stałych związanych z ustawieniami WordPressa (define) muszą być zdefiniowane /* That’s all, stop editing! Happy publishing. */ tuż nad komentarzem aby WordPress poprawnie je wczytał podczas inicjalizacji ustawień.
  2. Wczytywanie WordPressa zaczyna się poniżej: Pod tym komentarzem jest definicja [ABSPATH] i kod [require_once( ABSPATH . ‘wp-settings.php’ );]. Od chwili wczytania tego pliku [wp-settings.php] podstawowe funkcje WordPressa naprawdę zaczynają działać.
Jeśli więc chcesz dodać dodatkowe ustawienia (np. wyłączenie edycji plików [define(‘DISALLOW_FILE_EDIT’, true);] albo limit pamięci [define(‘WP_MEMORY_LIMIT’, ‘256M’);]), zapisz je przed wywołaniem głównego pliku ładującego WordPressa, czyli tuż nad komentarzem, a zostaną zastosowane bez błędów.
W wp-config-sample.php tuż nad komentarzem [stop editing] jest jeszcze jeden komentarz: [Add any custom values between this line and the “stop editing” line.]. Własne ustawienia wpisujesz między te dwa komentarze.
Ustawienia pamięci WordPressa
W poradnikach o WordPressie i w oficjalnej dokumentacji pojawia się [define(‘WP_MEMORY_LIMIT’, ‘256M’);] jako jedyny wiersz w większości przypadków.
Ustawienie pamięci określa, ile pamięci WordPress może maksymalnie zużyć w PHP, aby podczas działania motywów czy wtyczek nie pojawiały się błędy braku pamięci (Fatal error: Allowed memory size exhausted). Innymi słowy, dla stabilnej pracy witryny bez przekraczania zasobów to podstawowe zabezpieczenie.
‘WP_MAX_MEMORY_LIMIT’ to ustawienie, które daje backendowi więcej pamięci niż frontendowi.
WP_MEMORY_LIMIT to „limit pamięci dla odwiedzających witrynę”,
a WP_MAX_MEMORY_LIMIT to „rozszerzony limit dla panelu i zadań wewnętrznych”.
Dopiero ustawienie obu daje pełną kontrolę nad pamięcią WordPressa.
Jeśli wartość w wp-config.php jest wyższa niż w php.ini lub w ustawieniach puli PHP-FPM na serwerze, obowiązuje ustawienie serwera.
Ograniczanie wersji
Do ustalenia liczby wersji nie trzeba instalować osobnej wtyczki. Jeden wiersz ze stałą poniżej w wp-config.php daje ten sam efekt, a w bazie danych nie zostają ustawienia wtyczki, które trzeba by później usuwać.
Wersje w WordPressie stale gromadzą wcześniejsze stany wpisów, przez co witryna zwalnia. Zwłaszcza na witrynach bez pamięci podręcznej, a nawet z nią podczas pracy w kokpicie — szczególnie przy tworzeniu treści we wpisach lub na stronach — mogą zwolnić nawet strony dla odwiedzających.
Na przykład gdy serwer zużywa około 50% całego CPU, strony dla odwiedzających mogą zwolnić bez względu na to, jakiej wtyczki cache używasz.
Dlatego wyłączasz wersje albo ograniczasz ich liczbę.
Jeśli używasz WP Rocket lub Perfmatters, możesz to też ustawić w ich panelach. WP Rocket usuwa już zgromadzone wersje opcją [Revisions] na karcie [Database], ale nie ma ustawienia ograniczającego ich liczbę.
Ekran czyszczenia wersji w bazie danych w WP Rocket
Perfmatters ustala w [Limit Post Revisions], ile wersji zostaje dla każdego wpisu, a w [Autosave Interval] — odstęp autozapisu.
Ustawienie limitu wersji w Perfmatters
Zmiana odstępu autozapisu
Domyślnie WordPress zapisuje wpisy automatycznie co minutę. Możesz to wydłużyć, np. z domyślnych 60 sekund do 5 minut (300 sekund).
Ustawienia Heartbeat
Heartbeat nie ma stałej dla wp-config.php, więc tym plikiem go nie ustawisz. Jeśli wstawisz poniższy kod do wp-config.php, wykona się, zanim WordPress wczyta funkcję [add_action], a witryna zatrzyma się z błędem [Call to undefined function add_action()].
„Heartbeat” w WordPressie to sygnał, który sprawdza, czy serwer i witryna są nadal połączone. Heartbeat API używa pliku 
/wp-admin/admin-ajax.php do wykonywania wywołań AJAX z przeglądarki. W kokpicie WordPressa ten plik wysyła żądanie POST co 15 sekund.
Możesz ustawić, by działał tylko na ekranach pisania wpisów w panelu, [post.php]·[post-new.php].
WP Rocket: na karcie [Heartbeat] wybierasz [Do not limit], [Reduce activity] lub [Disable] osobno dla panelu, edytora wpisów i frontendu.
Ekran ustawień Heartbeat w WP Rocket
Perfmatters ustala w [Disable Heartbeat], na których ekranach Heartbeat może działać, a w [Heartbeat Frequency] — odstęp między żądaniami.
Ustawienia Heartbeat w Perfmatters
Jeśli nie masz żadnej z tych wtyczek, nie instaluj kolejnej tylko dla Heartbeat. Wtyczki zostawiają ustawienia w bazie danych nawet po usunięciu, dlatego wstaw poniższy kod do pliku [functions.php] motywu.
/** Disable Heartbeat everywhere except post editor */
add_action('init', function() {
    global $pagenow;
    if ($pagenow != 'post.php' && $pagenow != 'post-new.php') {
        wp_deregister_script('heartbeat');
    }
}, 1);
Ustawienia globalne
Ustawienia globalne to wp-config.php ze wszystkimi ustawieniami z tego artykułu.
Dwa wiersze pamięci, limit 3 wersji i autozapis co 300 sekund są już po kolei nad komentarzem [stop editing].
Heartbeat nie ma w ustawieniach globalnych, bo w wp-config.php powoduje błąd.
Kliknij ikonę kopiowania w prawym górnym rogu ekranu, a skopiujesz tylko wiersze do dodania.
Działa tylko w Twojej przeglądarce i nie zmienia żadnego prawdziwego pliku. Wybierz u góry sposób połączenia i klikaj chipy po kolei, aby otworzyć wp-config.php; ustawienie wybrane po lewej przeniesie Cię do jego wiersza. Zamiast chipów możesz też kliknąć terminal i samodzielnie wpisywać polecenia i klawisze vi. Wirtualny serwer zawiera tylko pliki potrzebne w tym artykule, a ekrany cPanel i FileZilla to uproszczone rysunki prawdziwych.

🔢 FAQ & polecane treści

Jeśli w zapisanym właśnie wierszu brakuje cudzysłowu lub średnika, PHP nie odczyta wp-config.php do końca i witryna się nie otworzy. Przywróć oryginał zachowany przed edycją, a potem sprawdź tylko zmienione wiersze.

Artykuł o bezpieczeństwie wp-config.php zaleca [600], czyli odczyt i zapis tylko dla właściciela. Na serwerach, gdzie PHP działa na innym koncie niż właściciel pliku, przy 600 PHP nie odczyta pliku, więc zaraz po zmianie sprawdź, czy witryna się otwiera.

Po włączeniu WP Rocket dodaje na samej górze pliku wiersz [define( ‘WP_CACHE’, true ); // Added by WP Rocket]; w moim wp-config.php też jest on w wierszu 2. Dopiero dzięki temu wierszowi WordPress wczytuje plik pamięci podręcznej [advanced-cache.php].

Jeśli ta sama stała jest już zdefiniowana wyżej w pliku, PHP używa pierwszej wartości, a przy dalszym wierszu zostawia tylko ostrzeżenie [Constant WP_MEMORY_LIMIT already defined]. Przeszukaj cały plik po nazwie stałej, aby znaleźć wiersze dodane przez hosting lub wtyczkę.

ℹ️ Informacja o linkach partnerskich
Treści tej witryny zawierają linki partnerskie. Jeśli odwiedzający kupi produkt lub usługę przez taki link, witryna otrzymuje od sprzedawcy prowizję. Kwota płacona przy tym przez kupującego (podczas promocji spada↓) nie wzrasta. Podane ceny, rabaty i dostępność odnoszą się do chwili pisania i mogą różnić się od stanu faktycznego, dlatego przed zakupem sprawdź je u sprzedawcy. Produkty wybieramy i oceniamy według własnych kryteriów, a prowizja nie wpływa ani na kolejność prezentacji, ani na treść ocen.

Dodaj komentarz

Twój adres email nie zostanie opublikowany. Wymagane pola są oznaczone *

Prove your humanity: 5   +   1   =