Apache , également connu sous le nom de serveur HTTP Apache, a été l'une des applications de serveur Web les plus utilisées dans le monde au cours des dernières décennies. Il s'agit d'un logiciel d'application Web gratuit et open source géré par Apache Software Foundation . Apache fournit des fonctionnalités puissantes avec des modules chargeables dynamiquement, une intégration facile avec d'autres logiciels et la gestion des fichiers statiques, entre autres fonctionnalités populaires.
Dans le didacticiel suivant, vous apprendrez comment installer Apache Web Server sur Debian 11 Bullseye.
Prérequis
- OS recommandé : Debian 11 Bullseye
- Compte utilisateur : Un compte utilisateur avec des privilèges sudo ou accès root (commande su) .
Mise à jour du système d'exploitation
Mettez à jour votre Debian 11 Bullseye système d'exploitation pour s'assurer que tous les packages existants sont à jour :
sudo apt update && sudo apt upgrade
Accès racine ou sudo
Par défaut, lorsque vous créez votre compte au démarrage avec Debian par rapport aux autres distributions, elle ne reçoit pas automatiquement le statut sudoers. Vous devez soit avoir accès au mot de passe root utiliser la commande su ou visitez notre tutoriel sur Comment ajouter un utilisateur à Sudoers sur Debian.
Le tutoriel utilisera la commande sudo et en supposant que vous avez le statut sudo . Si vous n'avez pas configuré d'utilisateur sudo, utilisez la commande suivante pour vous connecter à root pour continuer.
su
Méthode 1. Installer Apache à partir du référentiel Debian
La première option pour installer Apache est d'utiliser le référentiel Debian par défaut. Ceci est plus pratique pour la plupart des utilisateurs car il est très stable et sécurisé.
Pour installer Apache, ouvrez votre terminal et exécutez la commande suivante :
sudo apt install apache2 -y
Ensuite, vérifiez que l'installation a réussi en vérifiant la version de build d'Apache :
sudo apache2 --version
Exemple de résultat :
Server version: Apache/2.4.51
Vérifiez si Apache2 s'exécute correctement à l'aide du systemctl suivant commande :
systemctl status apache2
Exemple de sortie si tout va bien :

Méthode 2. Installer le dernier Apache à partir du référentiel Ondřej Surý
Par défaut, Apache est disponible dans les dépôts de logiciels de Debian , ce qui facilite son installation. Cependant, comme beaucoup le savent avec Debian, il peut souvent manquer ce qui est actuel, pas tant pour les risques de sécurité. Pourtant, les nouvelles fonctionnalités et améliorations sont manquantes.
Il est recommandé aux utilisateurs souhaitant la dernière version d'Apache d'installer la version d'Apache 2 d'Ondřej Surý , qui est le plus à jour et pré-construit avec des modules très largement utilisés.
Tout d'abord, si curl n'est pas installé, utilisez la commande suivante :
sudo apt install curl -y
Pour ajouter le référentiel, utilisez la commande suivante dans votre terminal :
curl -sSL https://packages.sury.org/apache2/README.txt | sudo bash -x
Mettez à jour votre référentiel pour refléter la nouvelle modification :
sudo apt update
Maintenant que vous avez installé le dépôt Apache et mis à jour la liste des référentiels, installez Apache2 avec ce qui suit :
sudo apt install apache2 -y
L'installation installera toutes les dépendances nécessaires.
Une fois installé, confirmez la version en exécutant la commande suivante :
apache2 -v
Exemple de résultat :
Server version: Apache/2.4.51
Notez que les deux référentiels sont sur la même version au moment du tutoriel en raison d'une mise à jour URGENT CVE. Normalement, le référentiel Ondřej Surý est en avance sur la Debian 11 par défaut à tout moment.
Vérifiez si Apache2 s'exécute correctement à l'aide du systemctl suivant commande :
systemctl status apache2
Exemple de sortie si tout va bien :

Facultatif – Configurer le pare-feu UFW pour Apache
Les utilisateurs de Debian qui ont installé UFW devront ajuster les règles UFW pour autoriser l'accès extérieur aux ports Web par défaut. Heureusement, lors de l'installation, Apache s'enregistre auprès d'UFW pour fournir quelques profils pouvant être utilisés pour activer ou désactiver l'accès, ce qui facilite et accélère la configuration.
Par défaut, UFW n'est pas installé. Si vous souhaitez installer UFW, exécutez la commande suivante dans votre terminal :
sudo apt install ufw -y
Ensuite, activez UFW. Lorsque vous activez le pare-feu, il refusera toutes les entrées et autorisera toutes les sorties par défaut.
sudo ufw enable
Tout d'abord, listez les profils d'application pour voir les profils Apache disponibles par la commande suivante :
sudo ufw app list
Exemple de résultat :
Available applications:
Apache
Apache Full
Apache Secure
À partir de la sortie ci-dessus, vous avez le choix entre trois options de profil. Pour le décomposer, Apache fonctionne sur le port 80 (HTTP), Apache Secure fonctionne sur le port 443 (HTTPS) et Apache complet est une combinaison de permettre les deux. Le plus courant est Apache Full ou Apache Secure.
Pour le tutoriel, puisque nous n'avons pas configuré SSL, nous allons activer le profil (Apache) avec la commande suivante :
sudo ufw allow 'Apache'
Exemple de résultat :
Rule added
Rule added (v6)
Comme ci-dessus, les règles ont été ajoutées pour IPV4 et IPV6. Plus tard, vous pourrez désactiver ce profil et activer la sécurité uniquement ou désactiver la règle Apache et utiliser la règle Apache complète à la place.
Vérifier le serveur Web Apache
Maintenant que vous avez installé et configuré le pare-feu UFW, il est temps de tester pour voir si Apache 2 est accessible et fonctionne correctement en demandant une page.
Vous pouvez accéder à la page d'accueil Apache par défaut pour vérifier si le logiciel fonctionne correctement via l'adresse IP de votre serveur. Pour le savoir, si vous ne le savez pas, utilisez la commande suivante ci-dessous :
hostname -I
Vous devriez récupérer l'adresse IP interne sur laquelle se trouve le serveur, par exemple :
###EXAMPLE ONLY###
192.168.50.15
Vous pouvez obtenir 2 à 3 résultats en retour. Essayez chacun jusqu'à ce que vous trouviez la bonne adresse IP.
Si vous avez besoin de votre adresse IP publique (externe), utilisez plutôt la commande suivante :
curl -4 icanhazip.com
Vous devrez peut-être installer le package CURL s'il est manquant. Pour cela, exécutez la commande suivante :
sudo apt install curl -y
Une fois que vous avez l'adresse IP de vos serveurs, ouvrez votre navigateur Internet préféré et entrez ce qui suit :
http://your_server_ip
Vous devriez obtenir la page suivante dans votre navigateur Internet :

Félicitations, vous avez installé le serveur Web Apache 2 et vous travaillez actuellement.
L'étape suivante consiste à configurer des hôtes virtuels.
Créer et/ou configurer des hôtes virtuels pour Apache
À l'aide du serveur Web Apache, vous pouvez créer des hôtes virtuels pour gérer les configurations de plusieurs domaines exécutés sur un même serveur. Si vous avez déjà utilisé Nginx, c'est l'équivalent des blocs serveur. Dans l'exemple ci-dessous, le tutoriel créera un domaine example-domain.com que vous remplacerez par votre nom de domaine.
Par défaut, Apache sur Debian 11 a un bloc de serveur activé par défaut qui est configuré pour servir des documents à partir de /var/www/html annuaire. Si vous exploitez un site Web, vous pouvez modifier ce bloc de serveur pour l'adapter au vôtre. Cependant, si vous hébergez plusieurs sites Web, vous devez créer une nouvelle structure de répertoires pour vos différents domaines.
Créer et/ou configurer des répertoires
Tout d'abord, laissez /var/www/html répertoire intact comme répertoire par défaut, puis créez un nouveau répertoire, par exemple-domaine.com, comme ci-dessous :
sudo mkdir /var/www/example_domain
L'étape suivante consiste à attribuer la propriété du répertoire avec la variable d'environnement $USER :
sudo chown -R $USER:$USER /var/www/example_domain
Habituellement, les autorisations des racines Web doivent être définies correctement et vous pouvez vérifier à l'aide de la commande -ls l :
ls -l /var/www/example_domain
Exemple de résultat :
drwxr-xr-x 2 joshua joshua 4096 Oct 10 11:46 example_domain
Comme vous pouvez le voir, nous avons la permission de drwxr-xr-x, qui est l'équivalent de chmod 755 . Si vous ne disposez pas de cet ensemble d'autorisations, exécutez la commande suivante :
sudo chmod -R 755 /var/www/example_domain
Créez maintenant un exemple de page index.html à l'aide de votre éditeur de texte préféré. Le tutoriel utilisera nano comme ci-dessous :
sudo nano /var/www/example_domain/index.html
Dans le fichier, copiez et collez le code suivant :
<html>
<head>
<title>Welcome to Website!</title>
</head>
<body>
<h1>Success! The virtual host is working! You did not mess it up.</h1>
</body>
</html>
Enregistrez le fichier (CTRL+O) , puis quittez (CTRL+X) .
Créer un hôte virtuel
Maintenant que vous avez créé une page de destination et défini la propriété et les autorisations correctes. Vous pouvez maintenant procéder à la création d'un fichier d'hôte virtuel. Par défaut, tous les fichiers de l'hôte virtuel devront être situés dans /etc/apache2/sites-available/ répertoire.
Tout d'abord, utilisez votre éditeur de texte préféré pour créer un fichier de configuration situé dans /etc/apache2/sites-available/example_domain.conf comme ci-dessous :
sudo nano /etc/apache2/sites-available/example_domain.conf
Maintenant, copiez et collez ce qui suit dans le fichier de bloc de configuration, notez pour remplacer votre ServerName, ServerAlias, et racine du document avec le vôtre :
<VirtualHost *:80>
ServerAdmin webmaster@localhost
ServerName example_domain
ServerAlias www.example_domain
DocumentRoot /var/www/example_domain
ErrorLog ${APACHE_LOG_DIR}/error.log
CustomLog ${APACHE_LOG_DIR}/access.log combined
</VirtualHost>
Remarque, n'oubliez pas de remplacer les directives Server requises par les vôtres.
Enregistrez le fichier de configuration en utilisant (CTRL+O) et quittez avec (CTRL+X) .
Activer l'hôte virtuel
Maintenant que votre fichier de configuration d'hôte virtuel est prêt, il est temps de l'activer. Avec Apache, contrairement à Nginx, où vous créeriez un lien symbolique à l'aide de la commande ln -s, Apache utilise ses outils, comme le montrera le tutoriel ci-dessous :
Tout d'abord, désactivez le fichier de blocage de serveur installé par défaut existant 000-default.conf avec la commande a2dissite :
sudo a2dissite 000-default.conf
Activez maintenant votre fichier d'hôte virtuel avec le a2ensite commande :
sudo a2ensite example_domain.conf
Maintenant, comme la plupart des applications de serveur Web, Apache a un essai à blanc une fonction. Avant de le mettre en ligne, testez votre fichier de configuration à l'aide de la commande suivante :
sudo apache2ctl configtest
Si tout fonctionne correctement, l'exemple de sortie devrait être :
Syntax OK
Redémarrez maintenant le serveur Web Apache pour faire vivre votre nouvel hôte virtuel avec la commande suivante :
sudo systemctl restart apache2
Apache devrait actuellement servir la page de destination que vous avez créée pour votre nouveau domaine. Pour tester cela, ouvrez votre navigateur Internet et saisissez votre nom de domaine HTTP://example_domain où vous devriez obtenir la page de destination suivante que vous avez créée dans le fichier index.html :

Félicitations, vous avez créé avec succès votre hôte virtuel et l'avez fait fonctionner avec succès sur votre domaine.
Sécurisez Apache avec le certificat gratuit Let's Encrypt SSL
Idéalement, vous voudriez exécuter votre Apache sur HTTPS en utilisant un certificat SSL . La meilleure façon de le faire est d'utiliser Let's Encrypt, une autorité de certification gratuite, automatisée et ouverte gérée par le Groupe de recherche sur la sécurité Internet (ISRG) à but non lucratif .
Tout d'abord, installez le package certbot comme suit :
sudo apt install python3-certbot-apache -y
Une fois installé, exécutez la commande suivante pour lancer la création de votre certificat :
sudo certbot --apache --agree-tos --redirect --hsts --staple-ocsp --email [email protected] -d www.example.com
Il s'agit de la configuration idéale qui inclut les redirections HTTPS 301 forcées, l'en-tête Strict-Transport-Security et l'agrafage OCSP. Assurez-vous simplement d'adapter l'adresse e-mail et le nom de domaine à vos besoins.
Maintenant, votre URL sera https://www.example.com au lieu de HTTP://www.example.com .
Remarque, si vous utilisez l'ancienne URL HTTP , il redirigera automatiquement vers HTTPS .
Gérer le service Apache
Maintenant qu'Apache s'exécute correctement sur votre serveur, voici quelques notes clés de gestion.
Journaux du serveur Apache
Les journaux du serveur Apache se trouvent dans le répertoire /var/log/apache2/ avec access.log et error.log étant respectueusement les noms d'accès et d'erreur par défaut donnés. Cela peut être remplacé par d'autres noms dans votre fichier de configuration d'hôte virtuel à l'avenir.
Commandes Apache
Les commandes suivantes que vous utiliserez sans aucun doute dans votre gestion quotidienne lorsque vous travaillez avec Apache. Certains des plus courants sont :
Pour arrêter le serveur Web Apache :
sudo systemctl stop apache2
Pour démarrer le serveur Web Apache :
sudo systemctl start apache2
Pour redémarrer le serveur Web Apache :
sudo systemctl restart apache2
Pour recharger le serveur Web Apache (Pour des modifications plus mineures ne nécessitant pas de redémarrage) :
sudo systemctl reload apache2
Pour désactiver Apache au démarrage du serveur :
sudo systemctl disable apache2
Pour démarrer Apache au démarrage du serveur (automatiquement activé à l'installation) :
sudo systemctl enable apache2
Comment mettre à jour Apache
Pour mettre à jour Apache à l'avenir, cela se fait avec la commande que vous avez utilisée pour vérifier si votre système est à jour. Notez que créez toujours des sauvegardes ou des images si vous avez un service Apache exécutant des services critiques. En règle générale, la mise à niveau est assez sûre, mais des bogues peuvent parfois survenir, comme toute mise à niveau logicielle.
Pour mettre à jour Apache, utilisez la commande suivante :
sudo apt update
Si une mise à niveau Apache est disponible, utilisez la commande :
sudo apt upgrade
Comment supprimer (désinstaller) Apache
Pour supprimer Apache si vous ne l'utilisez plus, cela peut être fait à l'aide de la commande suivante :
sudo apt autoremove apache2 --purge
Cette commande supprimera également toutes les dépendances inutilisées fournies avec l'installation.