29-11-2011 : Remettre dans le débat politique les principes du Conseil National de la Résistance
17-02-2012 : Pétition pour une protection de l’apiculture et des consommateurs face au lobby des OGM
Logo de mon site
Logo de mon site
Faire un don

Luxpopuli / eZ Publish / Dossiers techniques / eZ publish : optimiser l'environnement / Building and Installing Apache -- Compiler et installer Apache





Right menu

Logo du site ez.no  Logo XHTML 1.O du W3C  Logo XHTML 1.O du W3C  Site francophone officiel de Firefox
zero papier grâce aux catalogues et promos en ligne de bonial

Building and Installing Apache -- Compiler et installer Apache

Date de publication: le vendredi 13 juillet 2007 à 01h42
Dernière modification: par Pascal BOYER le dimanche 26 septembre 2010 à 20h34
» Article suivant: Building and Installing PHP -- Compiler et installer PHP

Apache is the web server application that handles incoming requests for content. Depending on the kind of request, it will either serve content itself or pass the request to PHP. For example, if you request an image it might be served directly from Apache, while PHP scripts are executed by the PHP module. In the case of eZ publish there is a combination of these request types. 
Apache est l'application serveur web qui gère les requêtes entrantes. En fonction du type de requête, Apache servira lui-même le contenu demandé ou bien passera la requête à PHP. Par exemple, si vous demandez une image, elle sera servie directement par Apache alors que les scripts PHP sont exécutés par le module PHP. Avec eZ Publish une combinaison de ces types de requêtes est faite.

Obtaining Apache / Obtenir Apache

The Apache web server is free software and can be downloaded from http://httpd.apache.org/download.cgi
Le serveur web Apache est un logiciel libre pouvant être téléchargé sur cette page: http://httpd.apache.org/download.cgi

Apache versions / Les versions d'Apache

There are two main versions of Apache currently in use: 1.3 and 2. Apache 1.3 is recommended, as PHP running on that version is the most stable and mature. 
Il y a actuellement deux version majeures de Apache: les versions 1.3 et 2. La version 1.3 est recommandée car la version de PHP qui fonctionne avec cette version d'Apache est la plus stable et la plus mature.

A non-threaded web server is recommended, because there could be problems related to PHP extensions and the libraries it links to with scripts that run in a threaded environment. The reason for this is that not all libraries that PHP uses are thread safe and under heavy traffic problems might occur.
Une version non-threaded de Apache est recommandée en raison de problèmes qui pourraient apparaître liés aux extensions PHP et aux librairies que PHP lie aux scripts qui s'exécutent dans un environnement "threaded". La raison de tout ceci est que toutes les librairies qu'utilise PHP ne sont pas garanties (???) "thread" et dans des conditions de forts trafic des problèmes peuvent apparaître.

If you cannot use Apache 1.3, make sure to use the "prefork" version of Apache 2, not the "worker" version. The "worker" version is a Multi-Processing Module implementing a hybrid multi-threaded multi-process web server. By using threads to serve requests, it is able to serve a large number of requests using less system resources than a process-based server. For more information about Apache 2 with a threaded MPM, refer to faq.installation.apache2
Si vous ne pouvez pas utiliser une version 1.3 d'Apache, assurez-vous d'utiliser une version "prefork" d'Apache 2 et non pas la version "worker". Cette dernière est une version MPM (Multi-Processing Module - Module Multi-Traitements) qui implémente un serveur web hybride multi-threaded et multi-process. L'utilisation des "threads" (fils) pour répondre aux requêtes permet de répondre à un grand nombre de requêtes tout en utilisant moins de ressources système qu'avec un serveur basé sur les traitements. Pour plus d'informations sur Apache 2 dans sa version MPM "threadée" référez-vous à cette page de documentation: faq.installation.apache2

En résumé, la doc officielle d'Apache 2  indique que "prefork" est un module multi-traitement (MPM) pour Apache 2 qui implémente un serveur web non threadé (mais "pre-forking") dont la gestion des requêtes est proche de celle d'un serveur Apache version 1.3. D'autre part, la version "prefork" du serveur web Apache 2 est particulièrement adaptée aux sites demandant beaucoup de stabilité et de compatibilité avec de vieilles versions de logiciels.

Some of the major differences between the 1.3 and 2.0 versions of Apache are: 
Voici quelques unes des différences majeures entre les versions 1.3 et 2 d'Apache:

  • Multi-Processing Modules (MPMs): The server ships with a selection of Multi-Processing Modules (MPMs) that are responsible for binding to network ports on the machine, accepting requests, and dispatching children to handle the requests. For maximum eZ publish stability and compatibility, Apache 2 should be run in "prefork" mode with PHP. 
    Modules Multi-Traitements (MPM): le serveur embarque une sélection de modules multi-traitements dont le rôle est de se connecter aux ports réseau du la machine, d'accepter les requêtes et de répartir les enfants (processus fils) pour la gestion des requêtes. Pour offrir le maximum de stabilité et de compatibilité à eZ Publish, Apache 2 doit être exécuté en mode "prefork" avec PHP.
  • New Apache API: The API for modules has changed significantly in version 2.0. Many of the module-ordering and module-priority problems from 1.3 are fixed. 2.0 handles much of this automatically, and module ordering is now done per-hook to allow more flexibility. Also, new calls have been added that provide additional module capabilities without patching the core Apache server.
    Nouvelle API Apache: l'API pour les modules a été significativement modifiée dans la version 2. Nombre des problèmes d'ordonnancement et de priorité des modules présents dans la version 1.3 ont été corrigés. La version 2 d'Apache gère ceci automatiquement et l'ordonnancement des modules s'effectue maintenant selon une fonction d'accrochage permettant plus de flexibilité. De nouveaux appels ont également été ajoutés afin de permettre que les modules intègrent de nouvelles possibilités sans avoir à patcher le coeur du serveur Apache.
  • Apache module enhancements: The server ships with the new and enhanced modules including:
    Amélioration des modules d'Apache: le serveur embarque de nouveaux modules et des modules améliorés dont:
    • mod_ssl: This module is an interface to the SSL/TLS encryption protocols provided by OpenSSL.
      mod_ssl: ce module est une interface au protocole de cryptage SSL/TLS fourni par OpenSSL .
    • mod_deflate: This module allows supporting browsers to request that content be compressed before delivery, saving network bandwidth.
      mod_deflate: ce module permet que les navigateurs demandent que le contenu soit conpressé avant d'être délivré, préservant ainsi la bande-passante.
    • mod_proxy: The proxy module has been completely rewritten to take advantage of the new filter infrastructure and to implement a more reliable, HTTP/1.1 compliant proxy. In addition, new <Proxy> configuration sections provide more readable (and internally faster) control of proxied sites; overloaded <Directory "proxy:..."> configuration are not supported. The module is now divided into specific protocol support modules including proxy_connect, proxy_ftp and   proxy_http  
      mod_proxy: ce module a été complètement réécrit pour tirer profit de la nouvelle architecture du filtre et pour implémenter un proxy conforme HTTP/1.1 plus fiable. De plus, les nouvelles sections de configuration <Proxy> permettent un contrôle plus lisible (et plus rapide) des sites utilisant le module proxy. Les configurations de surcharge <Directory "proxy:..."> ne sont pas supportées. Le module est maintenant divisé en plusieurs modules supportant des protocoles spécifiques: proxy_connect, proxy_ftp et proxy_http.

Installing Apache / Installation d'Apache

If your Linux distribution does not include Apache, or does not include the version you need, you can compile Apache from source. Before you start, make sure that you have access to the root account.
Si votre distribution Linux n'intègre pas Apache, ou n'inclu pas la version dont vous avez besoin, vous pouvez compiler les sources d'Apache. Avant de commencer, assurez-vous d'avoir accès au compte root (administrateur) de votre machine.

The basic commands you must execute to compile and install Apache 1.3 from source are:
Voici les commandes que vous devez lancer pour compiler et installer les sources d'Apache 1.3:

shell> cd /usr/local/src
shell> gunzip < /PATH/TO/apache_xxx.tar.gz | tar xvf -
shell> cd apache_xxx
shell> ./configure --prefix=/usr/local/apache --enable-module=so --enable-module=rewrite
shell> make
shell> su -
shell> make install
shell> /usr/local/apache/bin/apachectl start

These commands perform the actions described below:
Ces commandes exécutes les actions suivantes:

1. Choose the directory under which you want to unpack the distribution, and then change location into it. In the following example, we unpack the distribution under /usr/local/src
Choisissez le répertoire dans lequel vous souhaitez désarchiver la distribution et placez-vous dans ce répertoire. Dans l'exemple qui suit, nous désarchivons la distribution dans le répertoire /usr/local/src.

shell> cd /usr/local/src

2. Obtain an Apache distribution from http://httpd.apache.org/download.cgi
Téléchargez la distribution d'Apache sur cette page: http://httpd.apache.org/download.cgi

3. Unpack the source file, which creates the installation directory. This example shows how to unpack the distribution using gunzip
Désarchivez le fichier contenant les sources d'Apache ce qui créera un répertoire d'installation. L'exemple ci-dessous montre comment désarchiver la distribution en utilisant la commande gunzip :

shell> gunzip < /PATH/TO/apache_xxx.tar.gz | tar xvf -

The tar command creates a directory called "apache_xxx" (where "xxx" is the Apache version number). If you are using GNU tar, no separate invocation of gunzip is necessary. Instead, you can use the following command to uncompress and extract the distribution:
La commande tar  crée un répertoire nommé apache_xxx (où xxx représente le numéro de version d'Apache). Si vous utilisez GNU tar il n'est pas neécessaire d'invoquer séparémment la commande gunzip. A la place, vous pouvez utiliser la commande ci-dessous pour décompresser et extraire la distribution:

shell> tar zxvf /PATH/TO/apache_xxx.tar.gz

4. Change location into the installation directory:
Placez-vous dans le répertoire d'installation

shell> cd apache_xxx

5. Run the configuration script with following parameters:
Exécutez le script de configuration d'Apache avec les paramètres suivants:

shell> ./configure --prefix=/usr/local/apache --enable-module=so --enable-module=rewrite

The first parameter specifies where to install Apache. The second parameter tells Apache to compile support for loadable module support. The last parameter tells Apache to compile the rewrite function as a module. To see additional configuration options, run:
Le premier paramètre indique où installer Apache, le second dit à Apache de compiler le support de chargement des modules et le dernier paramètre dit à Apache de compiler la fonction rewrite (réécriture d'URI) en tant que module. Pour afficher les options supplémentaires, exécutez:

shell> ./configure -help

The   configure   script will take several minutes to run, as it tests for the availability of packages and prerequisites on your system and builds the   Makefiles   which will later be used to compile the Apache application.
Le script configure prendra plusieurs minutes pour s'exécuter: il test la disponibilité, sur votre système, de certains packages et de tout ce qui est nécessaire puis crée le fichier Makefiles qui sera utilisé ultérieurement pour compiler Apache.

6. Now you can build the Apache application by running the make command:
Vous pouvez maintenant construire Apache en lançant la commande make:

shell > make

7. Switch to the root user before executing the following commands:
Passez en mode superutilisateur avec la commande suivante:

shell> su -

If you do not have access to the root account, ask your system administrator for help.
Si vous n'avez pas accès au compte root, demandez de l'aide à l'administrateur de votre système.

8. Next, install the package under the configured installation PREFIX (as specified in the   --prefix   option described above):
Installez ensuite le package (la distribution) dans le PREFIX d'installation (tel que spécifié par le paramètre --prefix au point 5. )

shell> make install

9. Start the Apache HTTP server by running:
Démarrez le serveur HTTP Apache avec la commande suivante:

shell> /usr/local/apache/bin/apachectl start 

At this point you should be able to request your first document via the URL   http://localhost/  . The web page you see is located in the DocumentRoot, by default   /usr/local/apache/htdocs
A ce stade vous devriez être en mesure d'afficher votre premier document en tapant dans votre navigateur l'URI http://localhost/ La page web que vous voyez est située dans le répertoire défini par la directive DocumentRoot du fichier de configuration d'Apache. Par défaut cette directive vaut: /usr/local/apache/htdocs/

Stop the server by running:
Arrêtez le serveur avec cette commande:

shell> /usr/local/apache/bin/apachectl stop

Apache configuration instructions are described in the "Configurating Apache and PHP" section below.
Les instructions de configuration d'Apache sont décrites dans la section Configurer Apache et PHP.

Friday 04 August 2006 10:41:00

Commentaires