Vous êtes ici : Accueil / Debian GNU/Linux / Serveurs / Apache 2 / Installer Apache 2 sur Debian

Installer Apache 2 sur Debian

Par Pierre-Yves Landuré Dernière modification 02/03/2018 20:35

Apache est un serveur HTTP très répandu. Il est reconnu pour sa modularité et le grand nombre de ses configurations possibles. Cet article à pour but de vous présenter la mise en place d'un serveur Apache 2 sur la distribution Debian GNU/Linux. Il propose aussi d'accélérer la mise en place de quelques configurations basiques.

Ce guide est testé sur:

  • Debian 6.0 Squeeze
  • Debian 7.0 Wheezy
  • Ubuntu 13.10 Saucy Salamander
  • Ubuntu 16.04 Xenial Xerus

Installation

Il existe 3 versions de Apache 2 dans les dépôts Debian:

  • apache2-mpm-worker : Version multi-thread permettant de gérer un grand nombre de connexion avec une faible consommation de ressources.
  • apache2-mpm-event : Version modifiée de apache2-mpm-worker apportant une gestion améliorée du Keep-Alive. Cette version est expérimentale dans Apache 2.2 (Debian 6.0 Squeeze et inférieure).
  • apache2-mpm-prefork : Version non-multi-thread nécessaire à l'utilisation du module PHP. Cette version est faiblement optimisée. Il faut lui préférer l'utilisation de PHP-FPM avec apache2-mpm-worker.

Détectez le proxy de commande (command ou sudo):

cmdProxy='command'
command type -f 'sudo' &>'/dev/null' && cmdProxy='sudo'

Installez le serveur HTTP:

if [ -n "$(command apt-cache pkgnames apache2-mpm-worker)" ]; then
${cmdProxy} apt-get install apache2-mpm-worker
else
  ${cmdProxy} apt-get install apache2
fi

Activez les modules rewrite :

${cmdProxy} a2enmod rewrite

Activez les hôtes virtuels nommés (NameVirtualHost) permettant d'héberger plusieurs noms de domaines sur une même adresse IP :

[[ -z "$(command grep 'NameVirtualHost.*:80' /etc/apache2/ports.conf)" ]] \
&& ${cmdProxy} sed -i -e '/Listen[\t ]*80/i\
<IfVersion < 2.4>\
NameVirtualHost *:80\
</IfVersion>' '/etc/apache2/ports.conf'
default_site='/etc/apache2/sites-available/default'
[[ -e "${default_site}" ]] \
&& || default_site='/etc/apache2/sites-available/000-default.conf'
[[ -e "${default_site}" && -z "$(command grep 'VirtualHost[ \t]*\*:80' "${default_site}")" ]] \
&& ${cmdProxy} sed -i -e 's/\(VirtualHost[ \t]*\*\)>/\1:80>/g' \
-e 's/^\(NameVirtualHost.*\)$/#\1/g' \
"${default_site}"

Rechargez la configuration :

${cmdProxy} service 'apache2' 'force-reload'

Redirigez les e-mails envoyés à l'utilisateur www-data vers le compte root:

[[ -e '/etc/aliases' && -z "$(command grep '^www-data:' '/etc/aliases' )" ]] \
  && ${cmdProxy} sed -i -e '/^root:/i\
www-data: root' \
    '/etc/aliases'

Rechargez la liste des alias:

command type -f 'newaliases' &>'/dev/null' && ${cmdProxy} newaliases

Finalisation

Ce  guide recommande:

PHP 5

Ce guide recommande l'activation du support PHP avec:

Remarque: si vous ne souhaitez pas utiliser PHP-FPM, installez PHP avec:

if [ -n "$(command apt-cache pkgnames libapache2-mod-php7.0)" ]; then
${cmdProxy} apt-get install libapache2-mod-php7.0
${cmdProxy} a2enmod php7.0 else
${cmdProxy} apt-get install libapache2-mod-php5
${cmdProxy} a2enmod php5
fi
${cmdProxy} service 'apache2' 'force-reload'

Statistiques de fréquentation

Ce guide recommande ces outils d'analyse de la fréquentation:

Administration

Les commandes suivantes sont disponibles pour administrer le serveur:

  • a2enmod: Active un module (les configurations des modules disponibles sont dans le dossier '/etc/apache2/mods-available').
  • a2dismod: Désactive un module actif (les configurations des modules actifs sont dans le dossier '/etc/apache2/mods-enabled')
  • a2ensite: Active un site (les configurations des sites disponibles sont dans le dossier '/etc/apache2/sites-available')
  • a2dissite: Désactive un site (les configurations des sites actifs sont dans le dossier '/etc/apache2/sites-enabled')
  • apache2ctl: Outil avancé d'administration du serveur Apache 2.

Testez la configuration du serveur (important pour éviter les indisponibilités dues à des erreurs de configuration):

# ${cmdProxy} apache2ctl -t

    Rechargez la configuration du serveur sans interrompre le service:

    # ${cmdProxy} service 'apache2' 'reload'

    Rechargez la configuration du serveur en redémarrant le serveur sans couper les connexions existantes (par d'erreur HTTP):

    # ${cmdProxy} service 'apache2' 'force-reload'

    Rechargez la configuration du serveur en coupant les connexions existantes (une erreur HTTP est affichée au client):

    # ${cmdProxy} service 'apache2' 'restart'

    Obtenez la liste des modules Apache 2 actifs :

    # ${cmdProxy} apache2ctl -t -D DUMP_MODULES 

    Références

    Ces livres peuvent vous aider:

    Remerciements

    Enregistrer

    Enregistrer