Apache/de

Der Apache HTTP Server ist ein effizienter und erweiterbarer Web-Server, welcher zu den am häufigsten eingesetzten Web-Servern im Internet zählt.

Multi-Processing Module
If you want to use the Apache event or worker MPM, enable the Apache threads USE flag:

If you want to use the Apache event MPM, then add the following to make.conf:

If you want to use the Apache worker MPM, then add the following to make.conf:

If no Multi-Processing Module (MPM) is selected, the default MPM is used. The default MPM depends on platform capabilities (like threads support), read more in the official Apache docs.

Then emerge Apache:

Unterstützung in anderen Paketen
Enabling the  global USE flag provides support for Apache in other packages. This may cause to be installed automatically if a package depending on Apache has been emerged.

Nach dem setzen des globalen USE Flag sollte das System aktualisiert werden, damit die Änderungen im System übernommen werden:

Konfigurationsdateien
Es existieren 2 Hauptkonfigurationsdateien, welche das Verhalten des Apache2-Servers auf dem System beeinflussen:


 * Gentoo's apache2 Init-Skript Konfigurationsdatei


 * Übliche Apache-Server Konfigurationsdatei

Gentoo's Init-Skript Konfigurationsdatei
The file located in  is Gentoo's init script configuration file. The only active line in this file is the APACHE2_OPTS variable line:

Diese Zeile definiert Optionen, die durch verschiedenen Konfigurationsdateien mit der  Anweisung interpretiert werden, um einen Teil der gesamten Konfiguration zu aktivieren oder zu deaktivieren. Wir werden in der restlichen Anleitung wo es angebracht ist darauf zurückkommen.

Apaches konventionelle Server-Konfigurationsdatei - httpd.conf
In der Tat ist diese Datei nur ein "Einstiegspunkt", da die gesamte Konfiguration in viele Dateien im Verzeichnis aufgeteilt ist. Sie werden mit Hilfe der  direktive zusammengesetzt. Die Anweisung  in  zielt z. B. darauf ab alle Dateien in   einzubinden, deren Name mit  endet.

Unter Berücksichtigung des oben gesagten und weil die Modul-Konfigurationsdateien (in ) fast immer mit dem  beginnen, wird der Inhalt einer Datei in  NUR mit dem Rest der Konfiguration zusammengefügt, wenn die passende Option über das   Flag in der APACHE2_OPTS Variable in der Datei  gesetzt ist. Die Konfigurationsdatei ist eine Ausnahme von dieser Regel, weil sie nicht mit einer   Anweisung beginnt und daher immer in der resultierenden Konfiguration eingebunden ist.

Standardkonfiguration
Nach einer Neuinstallation von Apache Server ist die Konfiguration, die aus der Zusammensetzung der verschiedenen Konfigurationsdateien resultiert, wie folgt. Wir beginnen mit dem Einstiegspunkt.

Das erste Lebenszeichen
Wie Sie in der initialen Konfiguration oben sehen können, ist der vorinstallierte  des virtuellen Hosts. Sein Servername ist "localhost". Zusätzlich ist eine Datei index.html im  Verzeichnis vorhanden. Um zu prüfen, ob alles korrekt installiert ist oder nicht, surfen sie mit Ihrem Browser zur Adresse http://localhost/.

Sie sollten die Nachricht "It works !" auf der Webseite sehen.

Sicherheitsmodule aktivieren
ModSecurity is a rule-based web application firewall that monitors web service traffic, to block attacks exploiting known vulnerabilities.

Install :

Enable the  module in the  file's APACHE2_OPTS variable:

Das Verhalten des Moduls kann durch anpassen der Dateien und  gesteuert werden. Im Anschluss hieran, muss der Apache-Server neugestartet werden.

PHP Unterstützung aktivieren
Installieren Sie PHP mit dem apache2 USE Flag und aktivieren Sie das Modul:

Vor dem Test ob das PHP Modul funktioniert, prüfen Sie dass die Datei existiert und die folgende Definition enthält:

Wenn die Datei nicht vorhanden ist, erstellen Sie sie selbst.

Um zu überprüfen ob das PHP Modul korrekt funktioniert, erstellen Sie eine Testseite:

Löschen oder Ändern Sie den Namen der Datei und öffnen Sie im Anschluss hieran die Testseite: http://localhost/. Es sollte eine Tabelle mit einer Beschreibung der PHP Einstellungen erscheinen.

A table describing the PHP settings should be visible.

Modify PHP versions
To change the version of PHP handled by Apache, first list the available versions for the  Server Application Programming Interface (SAPI):

Change it to the version of choice:

Substitute  in the example above to the requested number in the output of  as displayed earlier on.

Hinzufügen eigener virtueller Hosts
Erstellen Sie für jeden virtuellen Host ein  Verzeichnis, das für den Apache-Daemon erreichbar und zugänglich ist. Fügen Sie eine Konfigurationsdatei für den virtuellen Host im Verzeichnis  hinzu, welches dieses   verwendet und den virtuellen Host Servernamen. Vergessen Sie außerdem nicht, einen Eintrag für diesen Domainnamen in hinzuzufügen.

Um die Apache user/group Zugehörigkeit der virtuellen Host Dateien zuzuweisen, verwenden Sie  wie in folgendem Beispiel:

Es folgen zwei Beispiel-Definitionen für Virtuelle Hosts. Eine für domainname1.com und eine weitere für domainname2.com. Beachten Sie die unterschiedlichen  und   Anweisungen, auch wenn der Host selbst  der gleiche bleibt:

Es wird empfohlen, ebenfalls eine IP-basierte Virtuelle Host Definition anzubieten. Dies ermöglicht es dem Administrator eine Nachricht für Benutzer aufzusetzen, die versuchen eine Website durch ihre IP-Adresse zu erreichen:

Nach dem Einfügen Virtueller Hosts muss der Server neu gestartet werden, damit die neuen Seiten aktiv werden.

PHP aktivieren durch fcgid
Installiere und. Das PHP Paket benötigt das cgi USE flag:

Bearbeiten Sie die Datei :

Erstellen Sie das benötigte Verzeichnis:

Erstellen Sie für den PHP-Wrapper einen symbolischen Link:

Aktivieren Sie das fcgid Modul:

Starten Sie abschließend den Apache Server neu und überprüfen Sie die zuvor erzeugte  Seite. Der Wert von  sollte CGI/FastCGI sein.

PHP-FPM durch mod_proxy_fcgi in Apache 2.4 aktivieren
Mit PHP 5.3 und höher unterstützt PHP den zusätzlicher Modus FastCGI Process Manager oder FPM.

Furthermore, there are a few restrictions on the availability of functionality within Apache 2.4:
 * >= Apache 2.4.9, if you want to communicate with PHP-FPM over UNIX sockets
 * >= Apache 2.4.10, if you want to use SetHandler instead of ProxyPassMatch.

Die folgende Methode beruht auf der FilesMatch Richtlinie und sitzt innerhalb der Konfiguration des Hauptservers oder der Virtuellen Hosts. Die Lage des UNIX Socket wird durch die Listen Direktive in bestimmt. Dies erlaubt die Angabe separater Pools pro Seite/Funktion.

Im folgenden Beispiel, ist es innerhalb der PHP Modul Config Datei:

By default the  directive is not set to a socket. First create the directory for the socket file:

Next, update the file as follows:

Aktivieren Sie dann sowohl das PHP- als auch das Proxy-Modul:

Web frameworks and Apache
Some of the web frameworks that can work with Apache are covered on the wiki:


 * Rails
 * Django

HTTPS with TLS certificates from Let’s Encrypt
It is important that any public-facing web server provide "secure" HTTPS access. Often, sites providing HTTPS will be configured to redirect HTTP requests to the HTTPS equivalent URL.

Let’s Encrypt is a not-for-profit certificate authority that issues free TLS certificats. is a utility available in the Gentoo repository for easily requesting and installing TLS certificates, and automatically setting up HTTPS access for Apache.

See the Let’s Encrypt article for information about using. The EFF also have specific instructions on using on Gentoo to configure Apache.

OpenRC
Start the Apache server:

Add Apache to the default runlevel:

Restart the Apache service:

Reload Apache configuration files:

systemd
Start the Apache server:

Add Apache to the default runlevel:

Restart the Apache service:

Resources
The Apache server can be difficult to configure properly. Below are some resources that may be helpful when issues occur:


 * Anleitung zur Fehlersuche

Testing
Verifying IP interfaces and ports on which Apache2 is running on and listening to:

Testing if a connection to a Apache server is working on localhost:

Interrupt the connection test with + and.

apr_sockaddr_info_get failed for 
Error:

apache2: apr_sockaddr_info_get failed for System_Hostname

Resolution:

When this occurs, add the host name to the file:

Siehe auch

 * Lighttpd - ein schneller, schlanker Webserver.
 * Nginx - ein schneller, robuster und hochleistungsfähiger HTTP-Server

Weblinks

 * Slicehost article: Installing Apache on Gentoo
 * Slicehost article: Apache configuration files on Gentoo
 * Slicehost article: Configuring the Apache MPM on Gentoo
 * Slicehost article: Apache configuration on Gentoo
 * Slicehost article: Apache Virtual Hosts on Gentoo
 * Slicehost article: Enabling and using apache's mod_status on Gentoo
 * apache.org documentation
 * Apache2 mod_pagespeed