====== 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|↑]]