Introduction
Le serveur HTTP Apache est le serveur web le plus largement utilisé au monde. Il offre de nombreuses fonctionnalités puissantes, notamment des modules chargeables dynamiquement, une prise en charge robuste des médias et une intégration étendue avec d’autres logiciels populaires.
Dans ce guide, vous apprendrez comment installer un serveur web Apache sur votre serveur Ubuntu 22.04.
Déployez vos applications depuis GitHub en utilisant la plateforme d’application DigitalOcean. Laissez DigitalOcean se concentrer sur le dimensionnement de votre application.
Prérequis
Avant de commencer ce guide, vous aurez besoin d’un serveur Ubuntu 22.04 configuré avec un utilisateur non-root avec des privilèges sudo
et un pare-feu activé pour bloquer les ports non essentiels. Vous pouvez apprendre comment faire cela en suivant notre guide de configuration initiale du serveur pour Ubuntu 22.04.
Une fois que vous avez terminé la configuration, connectez-vous en tant qu’utilisateur non-root et passez à la première étape.
Étape 1 — Installation d’Apache
Apache est disponible dans les dépôts de logiciels par défaut d’Ubuntu, ce qui permet de l’installer à l’aide d’outils de gestion de paquets conventionnels.
Commencez par mettre à jour l’index des paquets locaux pour refléter les derniers changements en amont:
Ensuite, installez le paquet apache2
:
Après avoir confirmé l’installation, apt
installera Apache et toutes les dépendances requises.
Étape 2 — Ajustement du pare-feu
Avant de tester Apache, il est nécessaire de modifier les paramètres du pare-feu pour permettre l’accès extérieur aux ports web par défaut. Si vous avez suivi les instructions dans les prérequis, vous devriez avoir un pare-feu UFW configuré pour restreindre l’accès à votre serveur.
Pendant l’installation, Apache s’enregistre auprès de UFW pour fournir quelques profils d’application qui peuvent être utilisés pour activer ou désactiver l’accès à Apache à travers le pare-feu.
Listez les profils d’application ufw
en exécutant la commande suivante:
Votre sortie sera une liste des profils d’application:
OutputAvailable applications:
Apache
Apache Full
Apache Secure
OpenSSH
Comme indiqué par la sortie, il y a trois profils disponibles pour Apache:
Apache
: Ce profil n’ouvre que le port80
(trafic web normal, non crypté)Apache Full
: Ce profil ouvre à la fois le port80
(trafic web normal, non crypté) et le port443
(trafic crypté TLS/SSL)Apache Secure
: Ce profil n’ouvre que le port443
(trafic crypté TLS/SSL)
Il est recommandé d’activer le profil le plus restrictif qui permettra toujours le trafic que vous avez configuré. Comme vous n’avez pas encore configuré SSL pour votre serveur dans ce guide, vous devrez uniquement autoriser le trafic sur le port 80
:
Vous pouvez vérifier le changement en vérifiant le statut:
La sortie fournira une liste du trafic HTTP autorisé:
OutputStatus: active
To Action From
-- ------ ----
OpenSSH ALLOW Anywhere
Apache ALLOW Anywhere
OpenSSH (v6) ALLOW Anywhere (v6)
Apache (v6) ALLOW Anywhere (v6)
Comme indiqué par la sortie, le profil a été activé pour permettre l’accès au serveur web Apache.
Étape 3 — Vérification de votre serveur web
À la fin du processus d’installation, Ubuntu 22.04 démarre Apache. Le serveur web sera déjà en cours d’exécution.
Assurez-vous que le service est actif en exécutant la commande pour le système d’initialisation systemd
:
Output● apache2.service - The Apache HTTP Server
Loaded: loaded (/lib/systemd/system/apache2.service; enabled; vendor prese>
Active: active (running) since Tue 2022-04-26 15:33:21 UTC; 43s ago
Docs: https://httpd.apache.org/docs/2.4/
Main PID: 5089 (apache2)
Tasks: 55 (limit: 1119)
Memory: 4.8M
CPU: 33ms
CGroup: /system.slice/apache2.service
├─5089 /usr/sbin/apache2 -k start
├─5091 /usr/sbin/apache2 -k start
└─5092 /usr/sbin/apache2 -k start
Comme confirmé par cette sortie, le service a démarré avec succès. Cependant, la meilleure façon de le tester est de demander une page à Apache.
Vous pouvez accéder à la page d’accueil Apache par défaut pour confirmer que le logiciel fonctionne correctement via votre adresse IP. Si vous ne connaissez pas l’adresse IP de votre serveur, vous pouvez l’obtenir de plusieurs façons différentes à partir de la ligne de commande.
Essayez d’écrire ce qui suit à l’invite de commande de votre serveur :
Vous recevrez quelques adresses séparées par des espaces. Vous pouvez essayer chacune dans votre navigateur Web pour déterminer si elles fonctionnent.
Une autre option est d’utiliser l’outil gratuit icanhazip.com
. Il s’agit d’un site Web qui, lorsqu’il est consulté, renvoie l’adresse IP publique de votre machine telle que lue à partir d’un autre emplacement sur Internet:
Lorsque vous avez l’adresse IP de votre serveur, saisissez-la dans la barre d’adresse de votre navigateur :
http://your_server_ip
Vous verrez la page Web Apache Ubuntu 22.04 par défaut comme suit :
Cette page indique que Apache fonctionne correctement. Il comprend également quelques informations de base sur les fichiers Apache importants et les emplacements des répertoires.
Étape 4 — Gestion du processus Apache
Maintenant que vous avez votre serveur Web en marche, examinons quelques commandes de gestion de base à l’aide de systemctl
.
Pour arrêter votre serveur Web, exécutez :
Pour démarrer le serveur Web lorsqu’il est arrêté, exécutez :
Pour arrêter puis redémarrer le service, exécutez :
Si vous effectuez simplement des modifications de configuration, Apache peut souvent être rechargé sans interrompre les connexions. Pour ce faire, utilisez la commande suivante :
Par défaut, Apache est configuré pour démarrer automatiquement lorsque le serveur démarre. Si ce n’est pas ce que vous voulez, désactivez ce comportement en exécutant :
Pour réactiver le service au démarrage, exécutez :
Apache démarrera désormais automatiquement lorsque le serveur redémarrera.
Étape 5 — Configuration des hôtes virtuels (recommandé)
Lorsque vous utilisez le serveur web Apache, vous pouvez utiliser des hôtes virtuels (similaires aux blocs serveurs dans Nginx) pour encapsuler les détails de configuration et héberger plus d’un domaine à partir d’un seul serveur. Nous allons configurer un domaine appelé votre_domaine, mais vous devez remplacer ceci par votre propre nom de domaine.
Info : Si vous configurez un nom de domaine avec DigitalOcean, veuillez consulter notre Documentation sur le réseau.
Apache sur Ubuntu 22.04 a un bloc serveur activé par défaut qui est configuré pour servir des documents à partir du répertoire /var/www/html
. Bien que cela fonctionne bien pour un seul site, cela peut devenir difficile à gérer si vous hébergez plusieurs sites. Au lieu de modifier /var/www/html
, créez une structure de répertoires dans /var/www
pour un site votre_domaine, en laissant /var/www/html
en place comme répertoire par défaut à servir si une requête client ne correspond à aucun autre site.
Créez le répertoire pour votre_domaine comme suit:
Ensuite, attribuez la propriété du répertoire à l’utilisateur sous lequel vous êtes actuellement connecté avec la variable d’environnement $USER
:
Les autorisations de votre racine web devraient être correctes si vous n’avez pas modifié la valeur de votre masque umask, qui définit les autorisations de fichier par défaut. Pour vous assurer que vos autorisations sont correctes et permettent au propriétaire de lire, écrire et exécuter les fichiers tout en n’accordant que des autorisations de lecture et d’exécution aux groupes et aux autres, vous pouvez saisir la commande suivante:
Ensuite, créez une page index.html
d’exemple en utilisant nano
ou votre éditeur préféré:
À l’intérieur, ajoutez le HTML d’exemple suivant:
Enregistrez et fermez le fichier lorsque vous avez terminé. Si vous utilisez nano
, vous pouvez le faire en appuyant sur CTRL + X
, puis Y
et ENTER
.
Pour que Apache serve ce contenu, il est nécessaire de créer un fichier hôte virtuel avec les directives correctes. Au lieu de modifier directement le fichier de configuration par défaut situé à /etc/apache2/sites-available/000-default.conf
, créez-en un nouveau à /etc/apache2/sites-available/votre_domaine.conf
:
Ajoutez le bloc de configuration suivant, similaire au fichier par défaut mais mis à jour pour votre nouveau répertoire et nom de domaine :
Remarquez que nous avons mis à jour le DocumentRoot
vers notre nouveau répertoire et ServerAdmin
vers un e-mail que l’administrateur du site votre_domaine peut accéder. Nous avons également ajouté deux directives : ServerName
, qui établit le domaine de base qui correspondra à cette définition d’hôte virtuel, et ServerAlias
, qui définit d’autres noms qui correspondront comme s’ils étaient le nom de base.
Enregistrez et fermez le fichier lorsque vous avez terminé.
Maintenant, activez le fichier avec l’outil a2ensite
:
Désactivez le site par défaut défini dans 000-default.conf
:
Ensuite, testez les erreurs de configuration :
Vous devriez recevoir la sortie suivante :
Output. . .
Syntax OK
Redémarrez Apache pour mettre en œuvre vos modifications :
Apache servira désormais votre nom de domaine. Vous pouvez tester cela en accédant à http://votre_domaine
, où vous verrez quelque chose comme ce qui suit :
Étape 6 – Se familiariser avec les fichiers et répertoires importants d’Apache
Maintenant que vous savez comment gérer le service Apache lui-même, vous devriez prendre quelques minutes pour vous familiariser avec quelques répertoires et fichiers importants.
Contenu
/var/www/html
: Le contenu web réel, qui par défaut se compose uniquement de la page Apache par défaut que vous avez vue précédemment, est servi à partir du répertoire/var/www/html
. Cela peut être modifié en modifiant les fichiers de configuration Apache.
Configuration du serveur
/etc/apache2
: Le répertoire de configuration d’Apache. Tous les fichiers de configuration d’Apache résident ici./etc/apache2/apache2.conf
: Le fichier de configuration principal d’Apache. Celui-ci peut être modifié pour apporter des modifications à la configuration globale d’Apache. Ce fichier est responsable du chargement de nombreux autres fichiers dans le répertoire de configuration./etc/apache2/ports.conf
: Ce fichier spécifie les ports sur lesquels Apache écoutera. Par défaut, Apache écoute sur le port80
et écoute également sur le port443
lorsque qu’un module fournissant des capacités SSL est activé./etc/apache2/sites-available/
: Le répertoire où les hôtes virtuels par site peuvent être stockés. Apache n’utilisera pas les fichiers de configuration trouvés dans ce répertoire à moins qu’ils ne soient liés au répertoiresites-enabled
. Typiquement, toute la configuration des blocs serveur est faite dans ce répertoire puis activée en liant vers l’autre répertoire avec la commandea2ensite
./etc/apache2/sites-enabled/
: Le répertoire où les hôtes virtuels par site activés sont stockés. Typiquement, ceux-ci sont créés en liant vers les fichiers de configuration trouvés dans le répertoiresites-available
avec la commandea2ensite
. Apache lit les fichiers de configuration et les liens trouvés dans ce répertoire lorsqu’il démarre ou recharge pour compiler une configuration complète./etc/apache2/conf-available/
,/etc/apache2/conf-enabled/
: Ces répertoires ont la même relation que les répertoiressites-available
etsites-enabled
mais sont utilisés pour stocker des fragments de configuration qui n’appartiennent pas à un hôte virtuel. Les fichiers dans le répertoireconf-available
peuvent être activés avec la commandea2enconf
et désactivés avec la commandea2disconf
./etc/apache2/mods-available/
,/etc/apache2/mods-enabled/
: Ces répertoires contiennent respectivement les modules disponibles et activés. Les fichiers se terminant par.load
contiennent des fragments pour charger des modules spécifiques, tandis que les fichiers se terminant par.conf
contiennent la configuration de ces modules. Les modules peuvent être activés et désactivés à l’aide des commandesa2enmod
eta2dismod
.
Journaux du serveur
/var/log/apache2/access.log
: Par défaut, chaque requête vers votre serveur web est enregistrée dans ce fichier journal à moins que Apache ne soit configuré autrement./var/log/apache2/error.log
: Par défaut, toutes les erreurs sont enregistrées dans ce fichier. La directiveLogLevel
dans la configuration Apache spécifie le niveau de détail des journaux d’erreurs.
Conclusion
Maintenant que vous avez installé votre serveur web, vous avez de nombreuses options pour le type de contenu que vous pouvez servir et les technologies que vous pouvez utiliser pour créer une expérience plus riche.
Si vous souhaitez mettre en place une pile d’application plus complète, vous pouvez lire cet article sur comment configurer une pile LAMP sur Ubuntu 22.04