Przejdź do głównej treści
INF.0328 kroków · ok. 40 min · poziom podstawowy

Instalacja XAMPP w Windows: Apache, MySQL i pierwszy plik PHP

Oprogramowanie: XAMPP 8.2.12, Windows 10

Skąd pobrać XAMPP, jak go zainstalować, uruchomić Apache i MySQL, otworzyć phpMyAdmin i co zrobić, gdy port 80 jest zajęty.

Do części praktycznej INF.03 potrzebny jest lokalny serwer: Apache (strony), PHP (skrypty) i MySQL/MariaDB z phpMyAdmin (baza danych). Najprostszy sposób, żeby mieć je wszystkie w domu, to darmowy pakiet XAMPP. Tutorial prowadzi od pobrania instalatora przez pierwsze uruchomienie aż do pierwszej własnej strony w PHP, a na końcu pokazuje, co zrobić, gdy Apache nie chce wystartować.

Zrzuty pochodzą z prawdziwej instalacji XAMPP 8.2.12 (PHP 8.2.12, MariaDB 10.4.32) w Windows 10 (wersja polska), zrobionej 11 października 2026 r. W Windows 11 kreator i panel wyglądają tak samo.

Na egzaminie środowisko jest już przygotowane na stanowisku - ten tutorial służy do ćwiczenia arkuszy w domu, na tych samych wersjach programów.

  1. Etap 1: Pobranie instalatora

    Kroki 1-3

    Krok 1: Oficjalna strona XAMPP

    ok. 1 min

    Wejdź na apachefriends.org - to jedyne oficjalne źródło XAMPP (strona ma też polską wersję). Na dole strony, w pasku Pobierz, kliknij XAMPP dla Windows. Obok nazwy widać wersję: 8.2.12 oznacza PHP 8.2.12.

    Typowe błędy

    Nie pobieraj XAMPP z portali z programami ani z linków „szybkie pobieranie” w reklamach wyszukiwarki. Takie paczki bywają przepakowane z dodatkami. Instalator z apachefriends.org (pobierany z SourceForge) jest darmowy i nie wymaga rejestracji.

    Zrzut ekranu po tym kroku
    Zrzut ekranu po kroku 1
  2. Krok 2: Pobieranie rusza samo

    ok. 3 min

    Po kliknięciu strona pokazuje komunikat „Niesamowite!”, a pobieranie z serwera SourceForge zaczyna się po kilku sekundach w nowej karcie. Jeśli nic się nie dzieje, kliknij kliknij tutaj w zdaniu pod nagłówkiem.

    Zrzut ekranu po tym kroku
    Zrzut ekranu po kroku 2
  3. Krok 3: Instalator w folderze Pobrane

    ok. 1 min

    Plik nazywa się xampp-windows-x64-8.2.12-0-VS16-installer.exe i ma około 150 MB. Otwórz Eksplorator plików (Win+E), przejdź do folderu Pobrane i kliknij plik dwukrotnie.

    Typowe błędy

    Przy pliku pobranym z internetu Windows może pokazać niebieskie okno „System Windows ochronił ten komputer”. Sprawdź, czy nazwa pliku i źródło się zgadzają, a potem kliknij Więcej informacji → Uruchom mimo to. Jeśli pojawi się pytanie Kontroli konta użytkownika, odpowiedz Tak.

    Zrzut ekranu po tym kroku
    Zrzut ekranu po kroku 3
  4. Etap 2: Instalacja

    Kroki 4-11

    Krok 4: Ostrzeżenie o UAC

    ok. 1 min

    Pierwsze okno to ostrzeżenie: przy włączonej Kontroli konta użytkownika (UAC) nie należy instalować XAMPP w C:\Program Files, bo zwykłe programy nie mają tam prawa zapisu. Kliknij OK - domyślny folder C:\xampp jest bezpieczny, więc UAC nie trzeba wyłączać.

    Typowe błędy

    Okno pojawia się dopiero po kilkudziesięciu sekundach, bo instalator najpierw się rozpakowuje. Nie uruchamiaj go drugi raz - powstaną dwa kreatory naraz.

    Zrzut ekranu po tym kroku
    Zrzut ekranu po kroku 4
  5. Krok 5: Kreator instalacji

    ok. 1 min

    Ekran powitalny kreatora. Kliknij Next.

    Zrzut ekranu po tym kroku
    Zrzut ekranu po kroku 5
  6. Krok 6: Wybór składników

    ok. 1 min

    Na egzaminie z INF.03 potrzebne są trzy składniki: Apache (serwer WWW), MySQL (w XAMPP to serwer MariaDB) i PHP oraz narzędzie phpMyAdmin. Apache i PHP są wyszarzone - instalują się zawsze. Pozostałe (FileZilla, Mercury, Tomcat, Perl, Webalizer) możesz odznaczyć, żeby skrócić instalację, albo zostawić - nie przeszkadzają. Kliknij Next.

    Typowe błędy

    Nie odznaczaj MySQL ani phpMyAdmin. Bez nich nie zaimportujesz bazy z arkusza.

    Zrzut ekranu po tym kroku
    Zrzut ekranu po kroku 6
  7. Krok 7: Folder instalacji: C:\xampp

    ok. 1 min

    Zostaw domyślny folder C:\xampp i kliknij Next. Pod tą ścieżką będą wszystkie pliki serwera, a strony, które napiszesz, trafią do podfolderu C:\xampp\htdocs.

    Typowe błędy

    Ścieżka nie może zawierać spacji ani polskich liter (np. C:\Moje programy\xampp). Część składników (MySQL, skrypty panelu) przestaje wtedy działać. Nie wybieraj też C:\Program Files.

    Zrzut ekranu po tym kroku
    Zrzut ekranu po kroku 7
  8. Krok 8: Język panelu

    ok. 1 min

    Panel sterowania XAMPP jest dostępny po angielsku albo po niemiecku. Zostaw English - zrzuty w tym tutorialu i większość poradników w sieci używają angielskich nazw przycisków. Kliknij Next.

    Zrzut ekranu po tym kroku
    Zrzut ekranu po kroku 8
  9. Krok 9: Gotowe do instalacji

    ok. 1 min

    Kreator ma komplet ustawień. Kliknij Next, żeby zacząć kopiowanie plików.

    Zrzut ekranu po tym kroku
    Zrzut ekranu po kroku 9
  10. Krok 10: Rozpakowywanie plików

    ok. 10 min

    Pasek postępu pokazuje rozpakowywanie. Na testowej maszynie trwało to około 20 minut, bo Windows Defender sprawdza każdy z kilkudziesięciu tysięcy plików. Na szybkim dysku SSD zwykle wystarcza kilka minut.

    Typowe błędy

    Pasek potrafi stać kilka minut w jednym miejscu (pod koniec zwłaszcza). To nie jest zawieszenie - nie przerywaj instalacji, bo zostanie niekompletny folder C:\xampp, który trzeba będzie usunąć ręcznie.

    Zrzut ekranu po tym kroku
    Zrzut ekranu po kroku 10
  11. Krok 11: Koniec instalacji

    ok. 1 min

    Zostaw zaznaczone Do you want to start the Control Panel now? i kliknij Finish. Panel sterowania uruchomi się i schowa do zasobnika obok zegara (pomarańczowa ikona XAMPP). Kliknij tę ikonę, żeby otworzyć okno. Później panel znajdziesz w menu Start jako XAMPP Control Panel.

    Zrzut ekranu po tym kroku
    Zrzut ekranu po kroku 11
  12. Etap 3: Pierwsze uruchomienie

    Kroki 12-15

    Krok 12: Panel sterowania XAMPP

    ok. 1 min

    Każdy wiersz to jeden serwer. Przycisk Start go uruchamia, Admin otwiera jego stronę administracyjną, Config - pliki konfiguracyjne, a Logs - dzienniki błędów. W dolnej części panel wypisuje komunikaty. Wiersz „Running with Administrator rights - good!” pojawia się tylko, gdy panel działa z uprawnieniami administratora.

    Zrzut ekranu po tym kroku
    Zrzut ekranu po kroku 12
  13. Krok 13: Start Apache i zapora Windows

    ok. 1 min

    Kliknij Start w wierszu Apache. Za pierwszym razem Windows zapyta, czy wpuścić program Apache HTTP Server do sieci. Do nauki serwer ma być dostępny tylko z tego komputera, więc zaznacz wyłącznie Sieci prywatne, odznacz Sieci publiczne i kliknij Zezwalaj na dostęp.

    Typowe błędy

    Strona pod adresem localhost działa także wtedy, gdy klikniesz Anuluj - zapora blokuje tylko połączenia z innych komputerów. Zgoda na sieci publiczne (kawiarnia, hotel) wystawiłaby Twój serwer z testowymi stronami obcym urządzeniom.

    Zrzut ekranu po tym kroku
    Zrzut ekranu po kroku 13
  14. Krok 14: Start MySQL

    ok. 1 min

    Kliknij Start w wierszu MySQL. Przy pytaniu zapory o program mysqld kliknij Anuluj: baza ma być dostępna tylko dla stron z tego komputera (PHP łączy się z nią przez localhost), a nie z sieci.

    Zrzut ekranu po tym kroku
    Zrzut ekranu po kroku 14
  15. Krok 15: Oba serwery działają

    ok. 1 min

    Nazwy Apache i MySQL mają teraz zielone tło, a w kolumnie Port(s) widać porty: Apache 80 i 443, MySQL 3306. W kolumnie PID(s) są numery procesów. Na żółto nazwa świeci tylko przez chwilę, gdy serwer startuje.

    Typowe błędy

    Jeśli nazwa po chwili znów robi się szara, a w dzienniku pojawiają się czerwone wiersze, serwer nie wystartował. Najczęstsza przyczyna to zajęty port - opisana w ostatniej części tutorialu.

    Zrzut ekranu po tym kroku
    Zrzut ekranu po kroku 15
  16. Etap 4: Sprawdzenie działania

    Kroki 16-20

    Krok 16: Strona startowa: localhost

    ok. 1 min

    Otwórz przeglądarkę i wpisz w pasku adresu localhost. Apache przekieruje Cię na localhost/dashboard/ - stronę powitalną XAMPP z numerem wersji. Skoro ją widzisz, serwer WWW działa.

    Zrzut ekranu po tym kroku
    Zrzut ekranu po kroku 16
  17. Krok 17: phpMyAdmin

    ok. 1 min

    Kliknij phpMyAdmin w górnym menu (albo wpisz localhost/phpmyadmin, albo kliknij Admin przy MySQL w panelu). Po lewej stronie widać bazy, a po prawej informacje o serwerze: MariaDB 10.4.32, Apache 2.4.58 i PHP 8.2.12. W phpMyAdmin importuje się bazy z arkuszy egzaminacyjnych i wykonuje zapytania SQL.

    Typowe błędy

    Pierwsze otwarcie phpMyAdmin potrafi trwać kilkanaście sekund - przeglądarka kręci się na stronie XAMPP. Poczekaj, zanim zaczniesz klikać ponownie.

    Zrzut ekranu po tym kroku
    Zrzut ekranu po kroku 17
  18. Krok 18: Folder htdocs - tu trafiają strony

    ok. 1 min

    Kliknij Explorer w panelu XAMPP i otwórz folder htdocs. Wszystko, co tu leży, jest dostępne w przeglądarce pod adresem localhost. Utwórz w nim folder na swoją pracę - tu nazywa się test. Plik C:\xampp\htdocs\test\index.php będzie widoczny jako localhost/test/.

    Zrzut ekranu po tym kroku
    Zrzut ekranu po kroku 18
  19. Krok 19: Pierwszy plik PHP

    ok. 2 min

    Utwórz w folderze test plik index.php (w Notatniku: Plik → Zapisz jako, typ Wszystkie pliki, kodowanie UTF-8) z dwoma wierszami:

    <?php
    echo "Serwer działa, PHP w wersji " . phpversion();
    
    Typowe błędy

    Notatnik przy typie „Dokumenty tekstowe” dopisuje rozszerzenie .txt i powstaje index.php.txt, którego Apache nie wykona. Włącz w Eksploratorze Widok → Rozszerzenia nazw plików, żeby to zobaczyć.

    Zrzut ekranu po tym kroku
    Zrzut ekranu po kroku 19
  20. Krok 20: Strona PHP w przeglądarce

    ok. 1 min

    Wpisz w przeglądarce localhost/test/. Apache sam otworzy plik index.php, PHP wykona kod, a Ty zobaczysz napis z numerem wersji. To jest dowód, że cała ścieżka działa: przeglądarka → Apache → PHP.

    Typowe błędy

    Plik PHP otwiera się zawsze przez adres localhost/..., nigdy przez dwuklik w Eksploratorze. Dwuklik pokaże w przeglądarce adres file:///C:/xampp/... - wtedy pliku nie wykonuje żaden serwer i zamiast wyniku zobaczysz kod albo pustą stronę.

    Zrzut ekranu po tym kroku
    Zrzut ekranu po kroku 20
  21. Etap 5: Gdy coś nie działa

    Kroki 21-28

    Krok 21: Apache nie startuje: zajęty port

    ok. 1 min

    Najczęstszy kłopot: po kliknięciu Start nazwa Apache na moment robi się żółta, a potem w dzienniku pojawia się „Error: Apache shutdown unexpectedly”. Prawie zawsze znaczy to, że port 80 (albo 443) zajął już inny program, a dwa serwery nie mogą słuchać na tym samym porcie.

    Typowe błędy

    Częste przyczyny: włączony serwer IIS (usługa „Usługa publikowania w sieci WWW”), drugi XAMPP albo inny pakiet serwerowy uruchomiony wcześniej, programy do maszyn wirtualnych i część programów do rozmów, które zajmują port 80 lub 443.

    Zrzut ekranu po tym kroku
    Zrzut ekranu po kroku 21
  22. Krok 22: Kto zajmuje port: Netstat

    ok. 1 min

    Kliknij Netstat w panelu. Szukaj wiersza z portem 80. W kolumnach PID i Name jest program, który go zajął. Tu port trzyma proces System o numerze 4 - tak wygląda port zajęty przez wbudowany w Windows mechanizm serwera HTTP, z którego korzysta m.in. IIS. Ten sam wynik daje w wierszu poleceń netstat -ano | findstr :80.

    Typowe błędy

    Gdy w kolumnie Name widać zwykły program (np. httpd.exe z innego folderu albo Skype.exe), zamknij go albo wyłącz w nim korzystanie z portu 80. Gdy to System (PID 4), otwórz Usługi (przycisk Services w panelu), zatrzymaj usługę, która korzysta z serwera HTTP (zwykle Usługa publikowania w sieci WWW), i ustaw jej typ uruchomienia na Ręczny.

    Zrzut ekranu po tym kroku
    Zrzut ekranu po kroku 22
  23. Krok 23: Obejście: inny port dla Apache

    ok. 2 min

    Gdy programu blokującego nie da się wyłączyć, przenieś Apache na inny port. Kliknij Config w wierszu Apache i wybierz Apache (httpd.conf) - plik otworzy się w Notatniku.

    Zrzut ekranu po tym kroku
    Zrzut ekranu po kroku 23
  24. Krok 24: Wiersz Listen 80

    ok. 1 min

    Wyszukaj (Ctrl+F) tekst Listen 80. Ten wiersz mówi, na którym porcie Apache czeka na połączenia.

    Zrzut ekranu po tym kroku
    Zrzut ekranu po kroku 24
  25. Krok 25: Zmiana na Listen 8080

    ok. 1 min

    Zmień wiersz na Listen 8080 i zapisz plik (Ctrl+S). Port 8080 jest zwyczajowym zapasowym portem serwerów WWW i zwykle jest wolny.

    Typowe błędy

    Zmieniaj tylko wiersz zaczynający się od Listen (bez #). Wiersze z # na początku to komentarze - ich zmiana nic nie da.

    Zrzut ekranu po tym kroku
    Zrzut ekranu po kroku 25
  26. Krok 26: Apache działa na porcie 8080

    ok. 1 min

    Kliknij Start przy Apache. Panel nadal ostrzega na czerwono, że port 80 jest zajęty (sprawdza port zapisany w swoich ustawieniach), ale wiersz „Status change detected: running” i port 8080 w kolumnie Port(s) pokazują, że serwer działa. Ostrzeżenie panelu wyłączysz w Config → Service and Port Settings, wpisując 8080 jako Main Port Apache.

    Zrzut ekranu po tym kroku
    Zrzut ekranu po kroku 26
  27. Krok 27: Adres z numerem portu

    ok. 1 min

    Przy porcie innym niż 80 adres musi zawierać numer portu: localhost:8080/test/, a phpMyAdmin otworzysz pod localhost:8080/phpmyadmin. Gdy port 80 się zwolni, możesz przywrócić Listen 80 i wrócić do adresów bez numeru.

    Typowe błędy

    MySQL ma ten sam kłopot z portem 3306, gdy na komputerze działa już inny serwer MySQL lub MariaDB (np. zainstalowany osobno). Najprościej zatrzymać tamtą usługę w oknie Usługi. Przenoszenie MySQL na inny port wymaga potem zmian także w phpMyAdmin i w skryptach PHP, więc na naukę do egzaminu nie jest warte zachodu.

    Zrzut ekranu po tym kroku
    Zrzut ekranu po kroku 27
  28. Krok 28: Kończenie pracy

    ok. 1 min

    Przed wyłączeniem komputera kliknij Stop przy MySQL i Apache, a dopiero potem Quit. Serwery to osobne programy - działają niezależnie od okna panelu. Wyłączenie komputera z działającym MySQL zwykle niczego nie psuje, ale nagłe przerwanie zapisu potrafi uszkodzić pliki bazy - wtedy MySQL przestaje startować, a przyczynę pokazuje Logs → mysql_error.log.

Podgląd

Sprawdź się

Pytania egzaminacyjne z tego zakresu w trybie nauki:

Oddanie pracy na egzaminie INF.03: folder, nazwy plików i przeglądarka.txt

INF.03Windows 10, XAMPP 8.2.12, 7-Zip 24.09ok. 20 min

Folder z numerem zdającego, archiwum z hasłem, praca w htdocs, przeglądarka.txt i lista plików - według arkuszy INF.03 z lat 2025-2026.

Strona PHP pokazuje kod, pustą stronę albo błąd - przyczyny i naprawa

INF.03XAMPP 8.2.12 (PHP 8.2.12), Windows 10ok. 25 min

Dlaczego XAMPP pokazuje kod PHP zamiast wyniku, co znaczą Parse error, Undefined array key i Fatal error mysqli oraz skąd biorą się krzaki.

Zrzut ekranu wyniku zapytania w phpMyAdmin (kw1, kw2...) na egzamin INF.03

INF.03XAMPP 8.2.12, phpMyAdmin 5.2.1, Windows 10ok. 20 min

Co ma być na zrzucie kw1-kw4 i import według kluczy CKE, jak zrobić zrzut całego ekranu do PNG i JPEG i jak uniknąć pliku kw1.png.png.

phpMyAdmin: utworzenie bazy i import pliku .sql z arkusza INF.03

INF.03XAMPP 8.2.12, phpMyAdmin 5.2.1, Windows 10ok. 25 min

Jak założyć bazę o nazwie z arkusza, zaimportować plik .sql w phpMyAdmin i co zrobić przy błędzie #1046, imporcie do złej bazy i krzakach.

Autor: .