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.
Egzaminy ZawodoweINF.03
Jak korzystać z tutoriala
Suwak i strzałki obok niego - albo ←→ na klawiaturze - przechodzą krok po kroku; wyjaśnienie i podgląd zmieniają się razem z krokiem.
Lista „Etap” przenosi od razu do wybranego etapu.
„Tryb prezentacji” pokazuje same kroki, bez menu strony - na rzutnik.
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
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
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
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
Krok 5: Kreator instalacji
ok. 1 min
Ekran powitalny kreatora. Kliknij Next.
Zrzut ekranu po tym kroku
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
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
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
Krok 9: Gotowe do instalacji
ok. 1 min
Kreator ma komplet ustawień. Kliknij Next, żeby zacząć kopiowanie plików.
Zrzut ekranu po tym kroku
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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.