Jak zainstalować WordPress na lokalnym serwerze — XAMPP krok po kroku | WebMajka

Jak zainstalować WordPress na lokalnym serwerze — XAMPP krok po kroku | WebMajka

Jak zainstalować WordPress na lokalnym serwerze — przewodnik krok po kroku

Instalacja WordPress lokalnie na własnym komputerze to złoty standard pracy nad stroną: testujesz motywy, wtyczki, migracje bez ryzyka rozwalenia produkcyjnej witryny, bez czekania na hosting, bez opłat. WordPress na XAMPP działa praktycznie identycznie jak na serwerze webowym — z wyjątkiem kilku niuansów (np. wysyłka maili, SSL), o których napiszę dalej. W tym poradniku pokażę pełną procedurę: pobranie i instalacja XAMPP, konfiguracja bazy MySQL, rozpakowanie plików WordPressa, edycja wp-config.php, uruchomienie kreatora instalacji oraz ustawienie fake sendmail do testowania maili. Cały proces zajmie ci 20 minut.

Dlaczego warto mieć WordPress bez serwera?

Praca na localhost ma kilka przewag nad zdalnym serwerem. Szybkość — lokalne zapytania MySQL wykonują się milisekundowo, nie czekasz na transfer przez internet. Bezpieczeństwo testów — eksperymentuj z nowymi wtyczkami bez ryzyka, że rozwalisz żywą stronę klienta. Brak kosztów — nie płacisz za hosting pod projekty demo. Praca offline — możesz kodować w pociągu, kawiarni, na wakacjach. Wersjonowanie — łatwo podpiąć projekt pod git i wrócić do wcześniejszej wersji. Jedyne minusy: wysyłka maili wymaga fake sendmail, SSL jest kłopotliwy, a do prezentacji klientowi trzeba użyć tuneli (ngrok) lub migracji na prawdziwy hosting.

Wymagania systemowe

WordPress 6.x (aktualna wersja) potrzebuje:

KomponentMinimumZalecane
PHP7.48.1 lub 8.2
MySQL5.78.0
MariaDB10.310.11
Apache / Nginx2.4 / 1.202.4 z mod_rewrite
Pamięć RAM2 GB8 GB
Dysk150 MB500 MB

XAMPP w wersji 8.1+ spełnia wszystkie wymagania. Jeśli pracujesz na starszym sprzęcie, wersja XAMPP Lite też wystarczy dla typowych projektów WordPress.

Krok 1 — Pobranie i instalacja XAMPP

Pobierz XAMPP z apachefriends.org — wybierz wersję z PHP 8.1 dla swojego systemu (Windows, macOS, Linux). Uruchom instalator jako administrator. W kreatorze zaznacz komponenty:

  • Apache (serwer WWW)
  • MySQL (baza danych)
  • PHP (silnik skryptowy)
  • phpMyAdmin (panel zarządzania bazą)

Zainstaluj XAMPP w C:\xampp — trzymanie poza Program Files eliminuje problemy z prawami dostępu Windows UAC. Po instalacji uruchom XAMPP Control Panel i wystartuj moduły Apache i MySQL przyciskiem Start.

# Jeśli Apache nie startuje, sprawdź zajęte porty (CMD jako admin)
netstat -ano | findstr :80
netstat -ano | findstr :443

# Zatrzymanie IIS (często konflikt z Apache)
iisreset /stop

Otwórz w przeglądarce http://localhost/ — strona powitalna XAMPP oznacza sukces.

Krok 2 — Utworzenie bazy danych MySQL

Wejdź na http://localhost/phpmyadmin/. Kliknij zakładkę Bazy danych i utwórz nową bazę o nazwie wordpress z kodowaniem utf8mb4_unicode_ci. Alternatywnie wykonaj zapytanie SQL:

CREATE DATABASE wordpress
  CHARACTER SET utf8mb4
  COLLATE utf8mb4_unicode_ci;

CREATE USER 'wpuser'@'localhost' IDENTIFIED BY 'SilneHaslo123!';
GRANT ALL PRIVILEGES ON wordpress.* TO 'wpuser'@'localhost';
FLUSH PRIVILEGES;

Zapisz dane bazy: nazwa (wordpress), użytkownik (wpuser lub root), hasło. Na localhost domyślny root ma puste hasło — wystarczy do zabawy, ale odradzam, jeśli planujesz przenieść konfigurację później.

Krok 3 — Pobranie i rozpakowanie WordPressa

Pobierz WordPressa z wordpress.org/download — otrzymasz plik wordpress-x.x.zip. Rozpakuj go do C:\xampp\htdocs\mojastrona\ (wybierz dowolną nazwę — nie musi być wordpress).

cd C:\xampp\htdocs
mkdir mojastrona
# rozpakuj archiwum WordPressa do folderu mojastrona

Struktura folderu powinna wyglądać tak:

htdocs/mojastrona/
├── wp-admin/
├── wp-content/
├── wp-includes/
├── wp-config-sample.php
├── index.php
└── ...

Krok 4 — Konfiguracja wp-config.php

To serce instalacji. Skopiuj wp-config-sample.php do wp-config.php i edytuj sekcję bazy danych:

// ** Ustawienia MySQL ** //
define( 'DB_NAME',     'wordpress' );
define( 'DB_USER',     'wpuser' );
define( 'DB_PASSWORD', 'SilneHaslo123!' );
define( 'DB_HOST',     'localhost' );
define( 'DB_CHARSET',  'utf8mb4' );
define( 'DB_COLLATE',  '' );

Dalej wygeneruj unikalne klucze bezpieczeństwa — wejdź na api.wordpress.org/secret-key/1.1/salt/, skopiuj wygenerowane linie i wklej w miejsce domyślnych:

define( 'AUTH_KEY',         'losowy-string-1' );
define( 'SECURE_AUTH_KEY',  'losowy-string-2' );
define( 'LOGGED_IN_KEY',    'losowy-string-3' );
define( 'NONCE_KEY',        'losowy-string-4' );
define( 'AUTH_SALT',        'losowy-string-5' );
define( 'SECURE_AUTH_SALT', 'losowy-string-6' );
define( 'LOGGED_IN_SALT',   'losowy-string-7' );
define( 'NONCE_SALT',       'losowy-string-8' );

Dla pracy deweloperskiej włącz też tryb debug — doda się na końcu pliku, przed komentarzem "That's all, stop editing!":

define( 'WP_DEBUG',         true );
define( 'WP_DEBUG_LOG',     true );
define( 'WP_DEBUG_DISPLAY', false );
@ini_set( 'display_errors',  0 );

Logi trafią do wp-content/debug.log — bezcenne przy szukaniu błędów wtyczek.

Instalator WordPressa na XAMPP — kreator konfiguracji lokalnie
Instalator WordPressa na XAMPP — kreator konfiguracji lokalnie

Krok 5 — Kreator instalacji WordPressa

Otwórz w przeglądarce http://localhost/mojastrona/. WordPress automatycznie wykryje brak instalacji i uruchomi kreator w 2 krokach:

1. Wybór języka — wybierz polski i kliknij Kontynuuj.

2. Dane witryny:

- Tytuł witryny: np. "Moja lokalna strona"

- Nazwa użytkownika: np. admin (NIGDY tak nie nazywaj na produkcji!)

- Hasło: mocne, zapisz gdzieś

- Adres email: np. test@localhost.local

- Widoczność dla wyszukiwarek: odznacz na testach (zapobiega indeksacji)

Kliknij Zainstaluj WordPress. Po 3–5 sekundach dostaniesz komunikat sukcesu. Zaloguj się na http://localhost/mojastrona/wp-admin/ — witasz się z panelem administracyjnym.

Krok 6 — Konfiguracja fake sendmail do testowania maili

WordPress często wysyła maile (powiadomienia, reset haseł, nowi użytkownicy), ale lokalny serwer nie ma SMTP. Rozwiązanie — fake sendmail, które przechwytuje wiadomości i zapisuje je do pliku lub wysyła przez Gmail.

Otwórz C:\xampp\sendmail\sendmail.ini i skonfiguruj dla Gmaila:

[sendmail]
smtp_server=smtp.gmail.com
smtp_port=587
error_logfile=error.log
debug_logfile=debug.log
auth_username=twoj.email@gmail.com
auth_password=haslo-aplikacji-gmail
force_sender=twoj.email@gmail.com

Uwaga: na koncie Gmail musisz wygenerować hasło aplikacji (nie główne hasło). Następnie w C:\xampp\php\php.ini znajdź sekcję [mail function]:

[mail function]
SMTP=smtp.gmail.com
smtp_port=587
sendmail_from=twoj.email@gmail.com
sendmail_path="\"C:\xampp\sendmail\sendmail.exe\" -t"

Zrestartuj Apache. Od tego momentu WordPress wyśle prawdziwe maile przez Gmail. Alternatywnie użyj wtyczki WP Mail SMTP i Mailtrap — wiadomości trafiają do skrzynki testowej bez spamowania prawdziwych adresów.

Typowe problemy i rozwiązania

Podczas instalacji WordPressa na XAMPP możesz natrafić na znane pułapki:

  • Błąd "Error establishing a database connection" — sprawdź dane w wp-config.php (nazwa bazy, użytkownik, hasło) oraz czy MySQL jest uruchomiony w XAMPP.
  • Biała strona — włącz WP_DEBUG i sprawdź debug.log; zwykle winowajca to wtyczka lub motyw.
  • "Briefly unavailable for scheduled maintenance" — skasuj plik .maintenance w głównym katalogu.
  • Nie działają hiperłącza — włącz mod_rewrite w Apache (LoadModule rewrite_module modules/mod_rewrite.so w httpd.conf), plus AllowOverride All w dyrektywie <Directory>.
  • Limit wgrywanych plików 2 MB — w php.ini ustaw upload_max_filesize = 64M i post_max_size = 64M.
  • Ostrzeżenia deprecated PHP — zmień wersję PHP w XAMPP z 8.2 na 8.1 (stabilniejsza dla starszych wtyczek).

Podobną procedurę dla sklepu opisałem w artykule o instalacji PrestaShop lokalnie.

Optymalizacja WordPressa na lokalnym serwerze

WordPress na XAMPP bywa wolny — głównie przez brak cache i nadmiar wtyczek deweloperskich. Kilka porad:

1. Wyłącz nieużywane wtyczki — każda aktywna wtyczka spowalnia loading.

2. Użyj lekkiego motywu — dla testów wystarczy Twenty Twenty-Four lub GeneratePress.

3. Zainstaluj Query Monitor — wtyczka pokazuje wolne zapytania SQL, duplikaty, hookowanie akcji.

4. Włącz OPcache w php.ini — zend_extension=opcache + opcache.enable=1 przyspiesza PHP 2–3×.

5. Używaj InnoDB — domyślny silnik MyISAM w MySQL jest wolniejszy dla typowych zapytań WP.

Migracja jak wgrać WordPress na serwer produkcyjny

Gdy strona jest gotowa, przenieś ją na hosting:

1. Eksport bazy — phpMyAdmin → Eksport → Szybki → SQL → pobierz.

2. Pakowanie plików — cały folder mojastrona/ do ZIP (pomijaj wp-content/cache).

3. Wgrywanie na serwer — przez FTP lub panel hostingu. Rozpakowanie bezpośrednio w cPanel jest szybsze.

4. Import bazy — utwórz bazę na hostingu, zaimportuj plik SQL.

5. Edycja wp-config.php — nowe dane MySQL (nazwa, użytkownik, hasło, host).

6. Zmiana URL w bazie — wykonaj:

UPDATE wp_options SET option_value = 'https://mojadomena.pl'
  WHERE option_name = 'siteurl';
UPDATE wp_options SET option_value = 'https://mojadomena.pl'
  WHERE option_name = 'home';

Dla serializowanych ustawień użyj wtyczki Better Search Replace — zwykłe SQL-owe REPLACE psuje zserializowane dane. Dla klientów oferujemy kompletne wdrożenie stron na WordPress wraz z pozycjonowaniem.

Podsumowanie — WordPress instalacja krok po kroku

Instalacja WordPress na XAMPP to obowiązek każdego, kto poważnie zajmuje się tym CMS-em. Lokalny serwer daje swobodę eksperymentów, szybkość, brak kosztów i pełną kontrolę. Kluczowe momenty procesu: poprawna konfiguracja wp-config.php (baza, sole bezpieczeństwa, tryb debug), włączenie mod_rewrite dla ładnych linków oraz skonfigurowanie fake sendmail do testowania maili. Jeśli dopiero zaczynasz przygodę z WordPressem, przeczytaj też artykuły czym jest WordPress i jak wybrać motyw WordPress — zrozumienie ekosystemu CMS-a zaowocuje szybszą pracą.

Najczęściej zadawane pytania (FAQ)

Czy WordPress działa bez serwera internetowego?
Tak, WordPress można uruchomić lokalnie na własnym komputerze bez połączenia z internetem — wystarczy zainstalować XAMPP lub podobny pakiet (Laragon, MAMP). Brak internetu nie przeszkadza w normalnej pracy — edytujesz treści, motywy i wtyczki. Ograniczenia: wysyłka maili wymaga konfiguracji fake sendmail, a strona jest niewidoczna dla innych.
Jak wysyłać maile z WordPressa na localhost?
Najprościej przez fake sendmail z kontem Gmail: skonfiguruj sendmail.ini i php.ini, wygeneruj w Gmailu hasło aplikacji i wpisz dane SMTP. Alternatywnie użyj wtyczki WP Mail SMTP z Mailtrap.io — wiadomości trafią do testowej skrzynki zamiast prawdziwych adresów, co chroni przed spamem podczas developmentu.
Który XAMPP wybrać dla WordPressa?
Wybierz XAMPP z PHP 8.1 — stabilna wersja w pełni wspierana przez WordPress 6.x i większość popularnych wtyczek. PHP 8.2 też działa, ale może dawać ostrzeżenia deprecated w starszych motywach. Unikaj PHP 8.3+ na starcie — wiele komercyjnych wtyczek nie jest jeszcze przystosowanych. Zawsze instaluj 64-bitową wersję XAMPP.
Dlaczego WordPress na localhost ładuje się wolno?
Główne przyczyny: brak OPcache (włącz w php.ini), nieużywane wtyczki, aktywny tryb WP_DEBUG, duża baza testowa. Zainstaluj wtyczkę Query Monitor — pokaże ci, które zapytania SQL są wolne i które wtyczki obciążają stronę. Włącz OPcache: zend_extension=opcache + opcache.enable=1 — daje 2-3× przyspieszenie PHP.
Jak przenieść WordPressa z XAMPP na hosting?
Standardowa procedura: eksport bazy przez phpMyAdmin, spakowanie plików, wgranie na hosting przez FTP, zaimportowanie SQL i edycja wp-config.php. Do zmiany URL użyj wtyczki Better Search Replace zamiast ręcznego SQL — poprawnie obsługuje zserializowane dane w tabeli wp_options.
Czy muszę edytować wp-config.php ręcznie?
Tak, to wymóg bezpieczeństwa — musisz wpisać dane bazy MySQL i wygenerować unikalne klucze bezpieczeństwa (salts) z api.wordpress.org/secret-key/1.1/salt/. Bez unikalnych soli sesja użytkowników nie jest bezpieczna. To jednorazowa operacja trwająca 2 minuty — warta poświęconego czasu.
Jak włączyć ładne linki (permalinki) na XAMPP?
WordPress używa mod_rewrite Apache do generowania permalinków. Otwórz C:\xampp\apache\conf\httpd.conf, odszukaj linię #LoadModule rewrite_module modules/mod_rewrite.so i usuń #. W sekcji <Directory "C:/xampp/htdocs"> zmień AllowOverride None na AllowOverride All. Zrestartuj Apache — permalinki zaczną działać.

Przeczytaj również