🧭 Einführung
XAMPP ist ein lokales Serverpaket, das Apache, MySQL (MariaDB), PHP und Perl enthält.
Der Apache-Dienst ist das Herzstück: Er liefert Ihre Website aus, wenn Sie http://localhost öffnen.
Viele Entwickler stoßen jedoch beim Starten von Apache auf Probleme:
- ❌ „Der Apache2.4-Dienst konnte nicht gestartet werden. Fehlercode 1“
- ⚠️ „Port 80 wird bereits verwendet“
- 🔒 „Ihre Verbindung ist nicht privat“ oder „NET::ERR_CERT_COMMON_NAME_INVALID“
Diese Anleitung erklärt jeden Schritt — von der Installation bis zur Behebung aller typischen Fehler.
🧩 Installation von XAMPP
- Laden Sie die neueste Version von XAMPP von der offiziellen Website herunter:
👉 https://www.apachefriends.org/download.html - Installieren Sie XAMPP in einem einfachen Pfad (ohne Leerzeichen oder Sonderzeichen), z. B.:
E:\xampp - Starten Sie nach der Installation das XAMPP Control Panel als Administrator.
🟢 Apache zum ersten Mal starten
- Klicken Sie im XAMPP Control Panel auf Start neben Apache.
- Wenn alles funktioniert, sehen Sie:
Apache ... running - Öffnen Sie im Browser:
http://localhost/Die XAMPP-Begrüßungsseite sollte erscheinen.
Wenn Apache nicht startet — lesen Sie weiter.
❗ Häufige Probleme und Lösungen
⚙️ 1. „Der Apache2.4-Dienst konnte nicht gestartet werden. Fehlercode 1“
Ursache: Die Konfigurationsdatei ist beschädigt oder der SSL-Schlüssel fehlt.
Überprüfung:
Öffnen Sie PowerShell oder CMD als Administrator:
cd E:\xampp\apache\bin
.\httpd.exe -t
Wenn Sie sehen:
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
fehlt das SSL-Zertifikat.
Lösung:
Erstellen Sie ein neues selbstsigniertes Zertifikat:
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"
Sie können einfach Enter drücken oder Ihre Daten eingeben:
Land: DE Bundesland: Deutschland Stadt: Berlin Organisation: hypo69 Common Name: localhost
🔒 2. „Ihre Verbindung ist nicht privat“ oder NET::ERR_CERT_COMMON_NAME_INVALID
Ursache: Moderne Browser (Chrome, Edge, Firefox) akzeptieren keine Zertifikate mehr mit nur CN=localhost.
Sie erfordern das Feld subjectAltName (SAN).
Lösung:
- Erstellen Sie eine neue Datei:
E:\xampp\apache\conf\openssl-local.cnf - Fügen Sie diesen Inhalt ein:
[ req ] default_bits = 2048 prompt = no default_md = sha256 x509_extensions = v3_req distinguished_name = req_distinguished_name [ req_distinguished_name ] C = DE ST = Deutschland L = Berlin O = hypo69 OU = Dev CN = localhost [ v3_req ] subjectAltName = @alt_names [ alt_names ] DNS.1 = localhost IP.1 = 127.0.0.1 - Erstellen Sie das Zertifikat:
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" - Fügen Sie das Zertifikat in den Windows-Zertifikatsspeicher hinzu:
Import-Certificate -FilePath "E:\xampp\apache\conf\ssl\server.crt" ` -CertStoreLocation Cert:\LocalMachine\Root(oder manuell: Zertifikat installieren → Lokaler Computer → Vertrauenswürdige Stammzertifizierungsstellen) - Starten Sie Apache neu:
net stop apache2.4 net start apache2.4
✅ Jetzt sollten https://localhost und https://127.0.0.1 ohne Warnungen funktionieren.
🔌 3. „Port 80 oder 443 wird bereits verwendet“
Überprüfung:
netstat -ano | findstr :80
netstat -ano | findstr :443
Wenn ein Port belegt ist, finden Sie den Prozess:
tasklist | findstr <PID>
Häufige Verursacher:
- Skype
- IIS (World Wide Web Publishing Service)
- VMware
- Edge Update Service
Lösung:
- Beenden oder deaktivieren Sie den störenden Dienst.
- Oder ändern Sie die Apache-Ports:
Bearbeiten Sie E:\xampp\apache\conf\httpd.conf:
Listen 80
→ Ändern Sie es in:
Listen 8080
Dann in E:\xampp\apache\conf\extra\httpd-ssl.conf:
Listen 443
→ Ändern Sie es in:
Listen 8443
Öffnen Sie dann:
http://localhost:8080
https://localhost:8443
🔥 4. „Service Control Manager 7024: Ungültige Funktion“
Ursache: Der Apache-Dienst ist in der Windows-Registrierung beschädigt.
Lösung:
Registrieren Sie den Apache-Dienst neu:
cd E:\xampp\apache\bin
httpd.exe -k uninstall
httpd.exe -k install
📄 5. Apache-Fehlerprotokolle
Alle Protokolle befinden sich hier:
E:\xampp\apache\logs\error.log
Lesen Sie die letzten Zeilen:
Get-Content E:\xampp\apache\logs\error.log -Tail 30
⚙️ Nützliche Diagnosebefehle
| Befehl | Beschreibung |
|---|---|
httpd.exe -t | Überprüft die Apache-Konfiguration |
httpd.exe -S | Zeigt virtuelle Hosts an |
net start apache2.4 | Startet den Apache-Dienst |
net stop apache2.4 | Stoppt den Apache-Dienst |
netstat -ano | Zeigt aktive Ports |
| `tasklist | findstr PID` |
certmgr.msc | Öffnet den Zertifikats-Manager |
services.msc | Öffnet die Windows-Dienste |
🌐 Virtuelle Hosts (lokale Domains) einrichten
Sie können Ihr Projekt billing-crm unter https://crm.local öffnen, anstatt localhost/billing-crm.
- Bearbeiten Sie die Hosts-Datei:
C:\Windows\System32\drivers\etc\hostsFügen Sie hinzu:127.0.0.1 crm.local - Bearbeiten Sie:
E:\xampp\apache\conf\extra\httpd-vhosts.confFügen Sie hinzu:<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> - Überprüfen Sie die Konfiguration:
httpd.exe -t - Starten Sie Apache neu und öffnen Sie:
https://crm.local
🧠 Tipps und häufige Stolperfallen
| Problem | Ursache | Lösung |
|---|---|---|
| Apache startet nicht beim Systemstart | Portkonflikt | Starten Sie XAMPP manuell |
| „Verbindung nicht sicher“ | SAN fehlt | Zertifikat mit alt_names neu erstellen |
| HTTPS reagiert nicht | falscher Port oder Schlüssel | Überprüfen Sie httpd-ssl.conf |
| Firefox zeigt weiterhin Warnung | eigener Zertifikatsspeicher | server.crt manuell importieren |
index.php leer | beschädigtes Projekt | Wiederherstellen aus Git oder Backup |
🎯 Zusammenfassung
| Schritt | Ziel | Befehl |
|---|---|---|
| Konfiguration prüfen | Apache-Syntax überprüfen | httpd.exe -t |
| SSL generieren | localhost-Zertifikat erstellen | openssl req -config ... |
| Zertifikat vertrauen | HTTPS-Warnungen vermeiden | Import-Certificate |
| Ports prüfen | 80/443 überprüfen | netstat -ano |
| Apache starten | Dienst ausführen | net start apache2.4 |
📚 Fazit
Nach diesen Schritten:
- Apache läuft fehlerfrei.
- HTTPS funktioniert ohne Browserwarnungen.
localhost,127.0.0.1und Domains wiecrm.localsind vollständig vertrauenswürdig.- Sie können Websites lokal entwickeln und testen wie auf einem echten Produktionsserver.