[[Vorlage(getestet, general, )]] {{{#!vorlage Wissen [:Terminal: Ein Terminal öffnen] }}} [[Inhaltsverzeichnis(1)]] [[Bild(Apache_2.4/apache_feather.gif, 96, align=left)]] Der Webserver [:Apache :] bzw. dessen Funktionalität lassen sich über eine Vielzahl von Modulen erweitern. Zum Teil werden die Module direkt von den Apache-Entwicklern bereitgestellt. Es gibt aber auch viele nützliche Module, welche von Dritten entwickelt und gepflegt werden. Je nach Modul variieren Installation und Konfiguration etwas, so dass man Details am besten in der jeweiligen Dokumentation nachliest. Gemein ist aber fast allen Modulen, dass es drei Schritte bedarf, um sie einsetzen zu können: 1. Modul installieren. 2. Modul aktivieren (geschieht bei einigen Modulen automatisch). Und 3. den Apache-Server neu laden. Eine Übersicht der geladenen Module erhält man per Eingabe im Terminal von: {{{#!vorlage Befehl apachectl -M }}} Im Folgenden werden einige Module vorgestellt. = PHP = [:PHP:] ist eine Skriptsprache mit einer an Perl angelehnten Syntax, die hauptsächlich zur Erstellung dynamischer Webseiten oder ganzer Webanwendungen verwendet wird. Die Installation von PHP und des Apache-Moduls ist im Artikel [:PHP#Apache:] beschrieben. Falls die Einbindung nicht wie erwartet funktioniert, siehe auch den Abschnitt [#PHP-Datei-wird-nicht-ausgefuehrt Problembehebung] weiter unten. = Weitere Module = Im Wiki werden noch weitere Module behandelt, und zwar in den folgenden Unterartikeln: * [:Apache/SSI:] - "Server Side Includes" nutzen * [:Apache/mod_ssl:] - Verschlüsselte SSL-Verbindungen aufbauen * [:Apache/mod_rewrite:] - Angeforderte URLs umschreiben * [:Apache/mod_proxy_html:] - Apache als Zwischenproxy benutzen ## ## * [:Archiv/Apache/mod_dav:] - Apache als WebDAV-Server * [:Apache/mod_wsgi:] - WSGI-konforme Python-Webapplikationen über den Apache-Server ausliefern * [:Apache/Sicherheit:] {Übersicht} Übersichtsseite zu Sicherheitsmodulen für den Webserver Apache ## * [:Archiv/Apache/mod_security:] - Zugriffskontrolle basierend auf einer Mustererkennung ## * [:Archiv/Apache/mod_evasive:] - Erkennung von DoS- und DDoS-Attacken ## * [:Archiv/Apache/mod_geoip2:] - Zugriffskontrolle basierend auf dem Ursprungsland == mod-dnssd == Apache kann über [:Avahi:] seine Dienste im lokalen Netzwerk publizieren. Dazu muss das Paket {{{#!vorlage Paketinstallation libapache2-mod-dnssd, universe }}} installiert werden. Nachdem man nun das Modul über: {{{#!vorlage Befehl sudo a2enmod dnssd }}} aktiviert und den Webserver neu gestartet hat, zeigen Browser wie beispielsweise [:Epiphany:] Webseiten im lokalen Netzwerk als "lokale Seiten" automatisch in den Lesezeichen an. = Problembehebung = === PHP-Datei wird nicht ausgeführt === Falls der Webbrowser fragt, ob eine php-Datei heruntergeladen werden soll, anstatt sie anzuzeigen, so ist das php-Modul evtl. nicht korrekt aktiviert. Um dies zu korrigieren, führt man in einem Terminal [1] den Befehl {{{#!vorlage Befehl sudo a2enmod php7.0 # für PHP7 }}} aus und startet anschließend den Webserver neu. Am besten löscht man anschließend auch gleich den Browsercache. Sollte sich die PHP-Datei auf dem lokalen System befinden, ist darauf zu achten, das sie mit `http://` (z.B. `http:///var/www/index.php`) aufgerufen wird. Beim Öffnen per Doppelklick geht der Browser den Weg über `file://` (`file:///var/www/index.php`) und versucht die Datei herunterzuladen. Weiterhin ist darauf zu achten, dass die PHP-Dateien als ''"executable"'' (`x`) markiert sind. Dazu kann man in das Verzeichnis der Webseite (bzw. der Anwendung) wechseln und folgenden Befehl rekursiv anwenden: {{{#!vorlage Befehl sudo chmod -R o+x *.php }}} = Links = == Intern == * [:Apache 2.4:] - Hauptartikel == Extern == * [http://httpd.apache.org/docs/2.4/de/mod/ Dokumentation Apache 2.4] {de} zu den in der Standardinstallation enthaltenen Modulen #tag: Netzwerk, Server, Apache