Apache installation version 2.4 Windows

De EjnTricks

Cet article se propose d'illustrer une installation simple du serveur Apache, version 2.4.X, sur une machine Windows. Une installation locale, à savoir poste de développeur, est particulièrement pratique lors de la réalisation des applications où il n'est pas nécessaire de travailler sur un serveur distant. C'est d'autant plus vrai lorsque l'on travaille avec un language interprété comme php, il suffit de modifier le fichier pour voir directement la modification.

Au moment d'écrire cet article, il n'existe pas de paquet d'installation sur el site officiel, contrairement à la version 2.2.X. L'installation s'effectuera donc manuellement.


Hand-icon.png Votre avis

Nobody voted on this yet

 You need to enable JavaScript to vote


System-Install-icon.png Installation

Download-icon.png Téléchargement

Lorsque l'on ne possède pas de compilateur sous Windows, il est impossible d'effectuer une installation à partir de la compilation des sources. Heureusement, des paquets sont disponibles sur le site ApacheLounge.

Dans le cadre de cet article, le package httpd-2.4.10-win64-VC11.zip est téléchargé. Ceci est une simple archive contenant le serveur compilé.

Unzip-icon.png Mise en place

Une fois téléchargée, il suffit de décompresser l'archive dans l'emplacement cible, C:\Apps\Apache\2.4 dans le cadre de cet article. Le démarrage du serveur s'effectue en lançant l'exécutable httpd.exe situé dans le sous répertoire bin.


Icon-Configuration-Settings.png Paramétrage

La mise en pale étant manuelle, aucune configuration de l'instance n'est réalisée comme cela était fait avec le binaire de la version 2.2. Mais les modification sont particulièrement simple et doivent être réalisées dans le fichier conf/httpd.conf.

Il faut modifier le paramètre ServerRoot spécifiant le répertoire d'installation du serveur. La valeur d'origine est c:/Apache24, remplacée par c:/Apps/Apache/2.4.

#
# ServerRoot: The top of the directory tree under which the server's
# configuration, error, and log files are kept.
#
# Do not add a slash at the end of the directory path.  If you point
# ServerRoot at a non-local disk, be sure to specify a local disk on the
# Mutex directive, if file-based mutexes are used.  If you wish to share the
# same ServerRoot for multiple httpd daemons, you will need to change at
# least PidFile.
#
# ServerRoot "c:/Apache24"
ServerRoot "c:/Apps/Apache/2.4"

Le paramètre ServerAdmin permet de spécifier l'adresse mail de l'administrateur. Cette modification est optinielle, surtout dans le cadre d'une installation locale pour le développement.

#
# ServerAdmin: Your address, where problems with the server should be
# e-mailed.  This address appears on some server-generated pages, such
# as error documents.  e.g. admin@your-domain.com
#
# ServerAdmin admin@example.com
ServerAdmin ejouvin@amexio.fr

Les modifications suivantes sont importantes. Il faut changer le paramètre ServerName. Il suffit de spécifier localhost suivi du numéro de port standard pour une installation locale.

#
# ServerName gives the name and port that the server uses to identify itself.
# This can often be determined automatically, but we recommend you specify
# it explicitly to prevent problems during startup.
#
# If your host doesn't have a registered DNS name, enter its IP address here.
#
#ServerName www.example.com:80
ServerName localhost:80

Le paramètre DocumentRoot permet de spécifier le répertoire racine par défaut, répertoire qui contient la page "Hello World" utilisée pour valider l'installation. Par défaut, il faut spécifier l'emplacement du répertoire htdocs, sous répertoire de l'installation. Dans le cadre d'une utilisation plus avancée, il est possible de mettre en place une configuration un peu plus spécifique.

#
# DocumentRoot: The directory out of which you will serve your
# documents. By default, all requests are taken from this directory, but
# symbolic links and aliases may be used to point to other locations.
#
# DocumentRoot "c:/Apache24/htdocs"
DocumentRoot "c:/Apps/Apache/2.4/htdocs"
# <Directory "c:/Apache24/htdocs">
<Directory "c:/Apps/Apache/2.4/htdocs">
    #
    # Possible values for the Options directive are "None", "All",
    # or any combination of:
    #   Indexes Includes FollowSymLinks SymLinksifOwnerMatch ExecCGI MultiViews
    #
    # Note that "MultiViews" must be named *explicitly* --- "Options All"
    # doesn't give it to you.
    #
    # The Options directive is both complicated and important.  Please see
    # http://httpd.apache.org/docs/2.4/mod/core.html#options
    # for more information.
    #
    Options Indexes FollowSymLinks

    #
    # AllowOverride controls what directives may be placed in .htaccess files.
    # It can be "All", "None", or any combination of the keywords:
    #   AllowOverride FileInfo AuthConfig Limit
    #
    AllowOverride None

    #
    # Controls who can get stuff from this server.
    #
    Require all granted
</Directory>

Les directive ScriptAlias et Directory pour cgi-bin sont présentent par défaut, et autant les modifier pour correspondre aux répertoires d'installation.

ScriptAlias /cgi-bin/
<IfModule alias_module>
    #
    # Redirect: Allows you to tell clients about documents that used to 
    # exist in your server's namespace, but do not anymore. The client 
    # will make a new request for the document at its new location.
    # Example:
    # Redirect permanent /foo http://www.example.com/bar

    #
    # Alias: Maps web paths into filesystem paths and is used to
    # access content that does not live under the DocumentRoot.
    # Example:
    # Alias /webpath /full/filesystem/path
    #
    # If you include a trailing / on /webpath then the server will
    # require it to be present in the URL.  You will also likely
    # need to provide a <Directory> section to allow access to
    # the filesystem path.

    #
    # ScriptAlias: This controls which directories contain server scripts. 
    # ScriptAliases are essentially the same as Aliases, except that
    # documents in the target directory are treated as applications and
    # run by the server when requested rather than as documents sent to the
    # client.  The same rules about trailing "/" apply to ScriptAlias
    # directives as to Alias.
    #
    # ScriptAlias /cgi-bin/ "c:/Apache24/cgi-bin/"
    ScriptAlias /cgi-bin/ "c:/Apps/Apache/2.4/cgi-bin/"

</IfModule>

#
# "c:/Apache24/cgi-bin" should be changed to whatever your ScriptAliased
# CGI directory exists, if you have that configured.
#
# <Directory "c:/Apache24/cgi-bin">
<Directory "c:/Apps/Apache/2.4/cgi-bin">
    AllowOverride None
    Options None
    Require all granted
</Directory>


Run-icon.png Exécution

Cependant ceci monopolise une fenêtre et ne permet pas une exécution en tâche de fond. La commande DOS start permet d'y remédier.

C:\Apps\Apache\2.4\bin>start /B httpd.exe

C:\Apps\Apache\2.4\bin>

Aucune nouvelle fenêtre n'apparaît, mais le serveur est correctement démarré.


Start-icon.png Installation service

Il est possible d'installer manuellement le serveur comme service Windows à l'aide des arguments -k install.

C:\Apps\Apache\2.4\bin>httpd.exe -k install
Installing the Apache2.4 service
(OS 5)AccÞs refusÚ.  : AH00369: Failed to open the WinNT service manager, perhaps you forgot to log in as Adminstrator?

C:\Apps\Apache\2.4\bin>

La première tentative montre qu'il est nécessaire d'être un administrateur de la machine afin d'installer le nouveau service. Pour cela, il faut ouvrir une fenêtre DOS en mode administrateur.

C:\Apps\Apache\2.4\bin>httpd.exe -k install
Installing the Apache2.4 service
The Apache2.4 service is successfully installed.
Testing httpd.conf....
Errors reported here must be corrected before the service can be started.

C:\Apps\Apache\2.4\bin>

Aucun message d'erreur n'est affiché, présageant un succès de l'installation. En ouvrant la console des services Windows, ou en exécutant l'outil Apache Service monitor, le service apparaît disponible.


Viewer icon.png Voir aussi

Documentation officielle: http://httpd.apache.org/docs/current/platform/windows.html