Apache/fr

Le serveur HTTP Apache est un serveur web efficient et extensible. C'est l'un des plus populaires utilisés sur l'Internet.

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:

Prise en charge dans d'autres paquets
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.

Après avoir défini cette option, vous devez mettre votre système à jour pour que les changements soient pris en compte.

Fichiers de configuration
Il y a deux fichiers principaux qui définissent le comportement d'Apache sur le système :


 * Le fichier de configuration apache2 de du script d'initialisation de Gentoo


 * Le fichier de configuration conventionnel du serveur Apache

Fichier de configuration du script d'initialisation de Gentoo
The file located in  is Gentoo's init script configuration file. The only active line in this file is the APACHE2_OPTS variable line:

Cette ligne définit les options qui seront interprétées par les divers fichiers de configuration utilisant l'instruction    pour activer ou désactiver  certaines parties de la configuration globale. Nous reviendrons sur ceci, dans les cas concernés, dans le reste de ce guide.

Le fichier de configuration conventionnel du serveur Apache - httpd.conf
The file is Apache server's conventional configuration file. In fact this file is only an entry point for configuration. The whole configuration is split in many files in the directory, that are assembled together using the   directive. For example, the statement, in , aims at including all the files in  which name ends with.

Considérant ce qui a été dit précédemment, et comme les fichiers de configuration des modules (les fichiers dans /etc/apache2/modules.d) commencent presque toujours par , le contenu d'un fichier dans , ne sera SEULEMENT ajouté au reste de la configuration, que si l'option correspondante de la variable APACHE2_OPTS   est définie dans le fichier. Le fichier de configuration fait exception à cette règle car il ne commence pas par une instruction , et est donc toujours inclus dans la configuration globale résultante.

Configuration par défaut
Après une nouvelle installation du serveur Apache, la configuration résultant de l'assemblage des différents fichiers de configuration ressemble à ce qui suit. Nous démarrons avec le point d'entrée.

Premiers signes de vie
Comme vous pouvez le constater dans la configuration initiale ci-dessus, le répertoire   de l'hôte virtuel pré-installé est, son nom de serveur est localhost. De plus, un fichier index.html est fourni dans le répertoire, en conséquence, pour vérifier si tout est correctement installé ou pas, pointez votre navigateur sur http://www.localhost.

Vous devriez obtenir l'affichage d'une page contenant le message It works !.

Activer le module Security
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:

Configurez ce module en éditant et  and restarting apache.

Activer la prise en charge de PHP
InstallezPHP avec l'option apache2 de la variable USE et activez le module:

Avant de vérifier que le module PHP fonctionne, vérifiez que le fichier existe et contient ce qui suit :

Si ce fichier n'existe pas, créez le.

Pour vérifier si le module PHP fonctionne, créez une page de test.

Supprimez ou renommez le fichier. Maintenant pointez le navigateur sur http://localhost/. Vous devriez voir un tableau décrivant les réglages de PHP.

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.

Ajouter vos propres hôtes virtuels
Pour chacun des hôtes virtuels, fournissez un répertoire  qui soit accessible au démon apache. Ajoutez un fichier de configuration dans le répertoire  qui utilise ce répertoire comme     et qui définisse le nom de serveur virtuel de l'hôte. N'oubliez-pas d'ajouter une entrée pour ce nom de domaine dans.

Pour donner à l'utilisateur apache user et à son groupe  la possession des fichiers de l'hôte virtuel, utilisez la commande    comme dans l'exemple qui suit :

Ci-dessous, figurent deux exemples de définition d'hôtes virtuels, un pour le nom de domaine domainename1.com et l'autre pour le nom de domaine domainename2.com. Remarquez l'utilisation de deux directives   et de deux directives   différentes même si l'hôte lui-même   demeure le même.

Il est recommandé de fournir une définition d'hôte virtuel basée sur l'adresse IP également. Ceci permet à l'administrateur de mettre en place un message aux utilisateurs qui essayent d'accéder au site via son adresse IP.

Après avoir déclarés les hôtes virtuels, le serveur doit être redémarré (en douceur) pour que les nouveaux sites soient activés.

Activer PHP via fcgid
Installez les paquets et. Le paquet nécessite l'option cgi de la variable USE :

Éditez le fichier  :

Créez le répertoire nécessaire :

Créez un lien symbolique qui pointe dessus pour le « wrapper_» PHP.

Activez le module fcgid :

Pour terminer, redémarrez apache et vérifiez le fichier créé par l'instruction  du site telle que présentée plus haut. La valeur indiquée pour  devrait être CGI/FastCGI

Enabling PHP-FPM through mod_proxy_fcgi in Apache 2.4
The following pre-requisites must be satisfied to enable PHP-FPM through mod_proxy_fcgi:
 * >= PHP 5.3
 * >= Apache 2.4

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.

The following configuration will only work with Apache 2.4.10 and newer. It relies on the  directive and be placed within the main server config or. The location of the UNIX socket is determined by the  directive in the  configuration file, allowing for specifying separate pools per site or function.

In the following example,  is placed within the PHP module config file of Apache:

Or, you can use ProxPassMatch -- the only option if the Apache version is between 2.4.0 and 2.4.8, inclusive.

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

Next, update the file as follows:

Then enable both the  and   modules:

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:


 * Troubleshooting guide

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:

Ressources externes

 * 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