====== Apache ======
[[it_entwicklung:webserver:start|← Webserver]] · [[:start|Startseite]]
----
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:
[[it_entwicklung:entwicklungsumgebungen:local|Local]]
===== 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:
[[werkzeuge:php:start|PHP]]
===== 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:
[[werkzeuge:xampp:start|XAMPP]]
===== 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.
[[#apache|↑]]