Przejdź do treści
> 💻 🧠 Kod 1001 > 🧪📓 Bez kategorii > 🚀 Kompletny przewodnik: jak uruchomić Apache w XAMPP na Windows (ze wszystkimi typowymi problemami)

🚀 Kompletny przewodnik: jak uruchomić Apache w XAMPP na Windows (ze wszystkimi typowymi problemami)

🧭 Wprowadzenie

XAMPP to lokalny pakiet serwera zawierający Apache, MySQL (MariaDB), PHP i Perl.
Usługa Apache jest jego sercem — obsługuje Twoją stronę, gdy otwierasz http://localhost.

Jednak wielu programistów napotyka błędy przy uruchamianiu Apache:

  • ❌ „Nie udało się uruchomić usługi Apache2.4. Kod błędu 1”
  • ⚠️ „Port 80 jest już w użyciu”
  • 🔒 „Twoje połączenie nie jest prywatne” lub „NET::ERR_CERT_COMMON_NAME_INVALID”

Ten przewodnik krok po kroku wyjaśnia wszystko — od instalacji po rozwiązanie najczęstszych błędów.


🧩 Instalacja XAMPP

  1. Pobierz najnowszą wersję XAMPP z oficjalnej strony:
    👉 https://www.apachefriends.org/download.html
  2. Zainstaluj XAMPP w prostym katalogu (bez spacji i znaków specjalnych), np.: E:\xampp
  3. Po instalacji uruchom XAMPP Control Panel jako Administrator.

🟢 Pierwsze uruchomienie Apache

  1. W panelu XAMPP kliknij Start obok Apache.
  2. Jeśli wszystko działa poprawnie, zobaczysz: Apache ... running
  3. Otwórz w przeglądarce: http://localhost/ Powinna się otworzyć strona powitalna XAMPP.

Jeśli Apache się nie uruchamia — czytaj dalej.


❗ Najczęstsze problemy i rozwiązania


⚙️ 1. „Nie udało się uruchomić usługi Apache2.4. Kod błędu 1”

Przyczyna: uszkodzony plik konfiguracyjny lub brak klucza SSL.

Sprawdzenie:

Otwórz PowerShell lub CMD jako administrator:

cd E:\xampp\apache\bin
.\httpd.exe -t

Jeśli zobaczysz:

AH00526: Syntax error on line 158 of E:/xampp/apache/conf/extra/httpd-ssl.conf:
SSLCertificateKeyFile: file 'E:/xampp/apache/conf/ssl/server.key' does not exist or is empty

brakuje certyfikatu SSL.

Rozwiązanie:

Wygeneruj nowy certyfikat samopodpisany:

cd E:\xampp\apache\bin
.\openssl.exe req -x509 -nodes -days 1095 -newkey rsa:2048 `
 -keyout "../conf/ssl/server.key" `
 -out "../conf/ssl/server.crt"

Możesz po prostu naciskać Enter lub wpisać swoje dane:

Kraj: PL
Województwo: Polska
Miasto: Warszawa
Organizacja: hypo69
Common Name: localhost

🔒 2. „Twoje połączenie nie jest prywatne” lub NET::ERR_CERT_COMMON_NAME_INVALID

Przyczyna: nowoczesne przeglądarki (Chrome, Edge, Firefox) nie akceptują już certyfikatów tylko z CN=localhost.
Wymagane jest pole subjectAltName (SAN).

Rozwiązanie:

  1. Utwórz nowy plik: E:\xampp\apache\conf\openssl-local.cnf
  2. Wklej poniższą konfigurację: [ req ] default_bits = 2048 prompt = no default_md = sha256 x509_extensions = v3_req distinguished_name = req_distinguished_name [ req_distinguished_name ] C = PL ST = Polska L = Warszawa O = hypo69 OU = Dev CN = localhost [ v3_req ] subjectAltName = @alt_names [ alt_names ] DNS.1 = localhost IP.1 = 127.0.0.1
  3. Wygeneruj certyfikat: cd E:\xampp\apache\bin .\openssl.exe req -config "E:\xampp\apache\conf\openssl-local.cnf" ` -x509 -nodes -days 1095 -newkey rsa:2048 ` -keyout "../conf/ssl/server.key" ` -out "../conf/ssl/server.crt"
  4. Dodaj certyfikat do zaufanych w Windows: Import-Certificate -FilePath "E:\xampp\apache\conf\ssl\server.crt" ` -CertStoreLocation Cert:\LocalMachine\Root (lub ręcznie: Zainstaluj certyfikat → Komputer lokalny → Zaufane główne urzędy certyfikacji)
  5. Zrestartuj Apache: net stop apache2.4 net start apache2.4

✅ Teraz https://localhost i https://127.0.0.1 powinny otwierać się bez ostrzeżeń.


🔌 3. „Port 80 lub 443 jest już w użyciu”

Sprawdzenie:

netstat -ano | findstr :80
netstat -ano | findstr :443

Jeśli port jest zajęty, znajdź proces:

tasklist | findstr <PID>

Najczęstsze przyczyny:

  • Skype
  • IIS (World Wide Web Publishing Service)
  • VMware
  • Edge Update Service

Rozwiązanie:

  1. Zatrzymaj lub wyłącz kolidującą usługę.
  2. Lub zmień porty Apache:

Edytuj E:\xampp\apache\conf\httpd.conf:

Listen 80

→ zamień na:

Listen 8080

Następnie w E:\xampp\apache\conf\extra\httpd-ssl.conf:

Listen 443

→ zamień na:

Listen 8443

Teraz otwórz:

http://localhost:8080
https://localhost:8443

🔥 4. „Service Control Manager 7024: błędna funkcja”

Przyczyna: uszkodzony wpis usługi Apache w rejestrze systemu Windows.

Rozwiązanie:

Zarejestruj usługę Apache ponownie:

cd E:\xampp\apache\bin
httpd.exe -k uninstall
httpd.exe -k install

📄 5. Logi błędów Apache

Wszystkie logi znajdują się tutaj:

E:\xampp\apache\logs\error.log

Sprawdź ostatnie wpisy:

Get-Content E:\xampp\apache\logs\error.log -Tail 30

⚙️ Przydatne polecenia diagnostyczne

PolecenieOpis
httpd.exe -tSprawdza konfigurację Apache
httpd.exe -SWyświetla hosty wirtualne
net start apache2.4Uruchamia usługę Apache
net stop apache2.4Zatrzymuje usługę Apache
netstat -anoPokazuje aktywne porty
`tasklistfindstr PID`
certmgr.mscOtwiera menedżer certyfikatów
services.mscOtwiera usługi Windows

🌐 Konfiguracja hostów wirtualnych (domeny lokalne)

Możesz sprawić, aby projekt billing-crm otwierał się pod adresem https://crm.local zamiast localhost/billing-crm.

  1. Edytuj plik hosts: C:\Windows\System32\drivers\etc\hosts Dodaj: 127.0.0.1 crm.local
  2. Edytuj: E:\xampp\apache\conf\extra\httpd-vhosts.conf Dodaj: <VirtualHost *:443> ServerName crm.local DocumentRoot "E:/xampp/htdocs/billing-crm" SSLEngine on SSLCertificateFile "E:/xampp/apache/conf/ssl/server.crt" SSLCertificateKeyFile "E:/xampp/apache/conf/ssl/server.key" </VirtualHost>
  3. Sprawdź konfigurację: httpd.exe -t
  4. Zrestartuj Apache i otwórz: https://crm.local

🧠 Wskazówki i typowe pułapki

ProblemPrzyczynaRozwiązanie
Apache nie uruchamia się przy starciekonflikt portówuruchom XAMPP ręcznie
„Połączenie nie jest bezpieczne”brak SANwygeneruj certyfikat z alt_names
HTTPS nie działabłędny port lub kluczsprawdź httpd-ssl.conf
Firefox nadal ostrzegaużywa własnego magazynu certyfikatówzaimportuj server.crt ręcznie
index.php pustybłąd w projekcieprzywróć z Git lub kopii zapasowej

🎯 Podsumowanie

KrokCelPolecenie
Sprawdź konfiguracjęWalidacja składni Apachehttpd.exe -t
Wygeneruj SSLUtworzenie certyfikatu localhostopenssl req -config ...
Zaufaj certyfikatowiUsuń ostrzeżenia HTTPSImport-Certificate
Sprawdź portyZweryfikuj 80/443netstat -ano
Uruchom ApacheWłącz usługęnet start apache2.4

📚 Wnioski

Po wykonaniu tych kroków:

  • Apache działa poprawnie bez błędów.
  • HTTPS funkcjonuje bez ostrzeżeń przeglądarki.
  • localhost, 127.0.0.1 oraz domeny jak crm.local są całkowicie zaufane.
  • Możesz rozwijać i testować strony lokalnie tak, jak na prawdziwym serwerze produkcyjnym.

Dodaj komentarz

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