Inhaltsverzeichnis
Apache
Apache ist der Webserver, den ich in meiner lokalen Entwicklungsumgebung hauptsächlich verwende.
Er ist Bestandteil meiner XAMPP-Installation und stellt die lokalen Websites und Webanwendungen im Browser bereit.
Meine Umgebung
Apache wird bei mir über XAMPP betrieben.
Die Installation befindet sich unter:
E:\xampp\apache
Das zentrale Webverzeichnis von XAMPP befindet sich unter:
E:\xampp\htdocs
Dort liegen unter anderem meine lokalen Projekte.
Apache starten und stoppen
Apache wird normalerweise über das XAMPP Control Panel gestartet und gestoppt.
Dort stehen für Apache unter anderem folgende Funktionen zur Verfügung:
- Start
- Stop
- Config
- Logs
Nach erfolgreichem Start wird Apache im XAMPP Control Panel als laufender Dienst angezeigt.
Konfigurationsdateien
Die Apache-Konfiguration befindet sich innerhalb des XAMPP-Verzeichnisses.
Eine zentrale Konfigurationsdatei ist:
E:\xampp\apache\conf\httpd.conf
Für VirtualHosts ist insbesondere folgende Datei wichtig:
E:\xampp\apache\conf\extra\httpd-vhosts.conf
Änderungen an der Apache-Konfiguration werden normalerweise erst nach einem Neustart von Apache wirksam.
Konfiguration prüfen
Nach Änderungen an der Apache-Konfiguration sollte geprüft werden, ob die Konfiguration syntaktisch gültig ist.
Dazu kann im Apache-Verzeichnis ausgeführt werden:
httpd -t
Bei einer gültigen Konfiguration erscheint:
Syntax OK
Nach Änderungen an httpd.conf oder httpd-vhosts.conf zuerst die Konfiguration mit httpd -t prüfen und Apache anschließend neu starten.
VirtualHosts
VirtualHosts ermöglichen es, lokale Projekte über eigene Domainnamen aufzurufen.
Beispiele aus meiner lokalen Entwicklungsumgebung sind:
rowawiki.local thecruiserblog.local
Die Apache-Konfiguration dafür erfolgt über:
E:\xampp\apache\conf\extra\httpd-vhosts.conf
Zusätzlich müssen die lokalen Domainnamen unter Windows dem eigenen Rechner zugeordnet werden.
Dafür wird die Hosts-Datei verwendet:
C:\Windows\System32\drivers\etc\hosts
Ein Eintrag kann beispielsweise so aussehen:
127.0.0.1 rowawiki.local
Ports
Apache verwendet standardmäßig insbesondere folgende Ports:
| Port | Verwendung |
|---|---|
80 | HTTP |
443 | HTTPS |
Kann Apache nicht gestartet werden, sollte deshalb geprüft werden, ob einer dieser Ports bereits von einem anderen Prozess verwendet wird.
Portbelegung prüfen
Unter Windows kann beispielsweise geprüft werden, welcher Prozess Port 80 verwendet:
netstat -ano | findstr :80
Für Port 443:
netstat -ano | findstr :443
Die angezeigte Prozess-ID kann anschließend dabei helfen, den verursachenden Prozess zu identifizieren.
Apache startet nicht
Wenn Apache im XAMPP Control Panel nicht startet, kommen verschiedene Ursachen infrage.
Dazu gehören beispielsweise:
- Port 80 ist bereits belegt
- Port 443 ist bereits belegt
- fehlerhafte Apache-Konfiguration
- fehlerhafte VirtualHost-Konfiguration
- ein anderer Webserver läuft noch im Hintergrund
Ein konkreter Fall trat nach der Verwendung von Local auf.
Ein von Local gestarteter nginx-Prozess lief nach dem Beenden von Local weiter und verhinderte dadurch den Start von Apache.
Die konkrete Erfahrung ist dokumentiert unter:
Fehlerprotokoll
Bei Problemen mit Apache ist das Fehlerprotokoll eine wichtige Informationsquelle.
Die Apache-Protokolle befinden sich unter:
E:\xampp\apache\logs
Besonders wichtig ist:
E:\xampp\apache\logs\error.log
Dort können Hinweise auf Konfigurationsfehler, fehlgeschlagene Starts oder andere Probleme gefunden werden.
Apache und PHP
Apache stellt die Webanwendung bereit und arbeitet dabei mit PHP zusammen.
Dadurch können PHP-Anwendungen lokal im Browser ausgeführt werden.
Dazu gehören beispielsweise:
- WordPress
- DokuWiki
- Laravel-Anwendungen
Die PHP-Installation meiner lokalen Umgebung wird über XAMPP bereitgestellt.
Weitere Informationen:
Apache und XAMPP
Apache ist nur eine Komponente der gesamten XAMPP-Umgebung.
XAMPP stellt daneben unter anderem PHP und MariaDB bereit.
Die konkrete XAMPP-Installation und deren Verwaltung werden zentral dokumentiert unter:
Merksatz
Apache stellt meine lokalen Websites und Webanwendungen bereit.
Wenn Apache nicht startet, prüfe ich zuerst die Konfiguration, die verwendeten Ports und eventuell noch laufende andere Webserver-Prozesse.
