Comment installer le serveur Web Apache sur Debian 11

De Get Docs
Aller à :navigation, rechercher

Introduction

Le serveur HTTP Apache est le serveur Web le plus utilisé au monde. Il fournit de nombreuses fonctionnalités puissantes, notamment des modules chargeables dynamiquement, une prise en charge multimédia robuste et une intégration étendue avec d'autres logiciels populaires.

Dans ce guide, vous allez installer un serveur Web Apache sur un serveur Debian 11.

Conditions préalables

Avant de commencer ce guide, vous aurez besoin d'un serveur Debian 11 configuré avec un utilisateur non root avec sudo privilèges et un pare-feu activé pour bloquer les ports non essentiels. Vous pouvez apprendre comment procéder en suivant notre guide de configuration initiale du serveur pour Debian 11.

Une fois que vous avez terminé de le configurer, connectez-vous en tant qu'utilisateur non root et passez à la première étape.

Étape 1 - Installation de Apache

Apache est disponible dans les référentiels de logiciels par défaut de Debian, ce qui permet de l'installer à l'aide d'outils de gestion de paquets conventionnels.

Commencez par mettre à jour l'index de package local pour refléter les dernières modifications en amont :

sudo apt update

Ensuite, installez le apache2 forfait:

sudo apt install apache2

Après confirmation de l'installation, apt installera Apache et toutes les dépendances requises.

Étape 2 - Réglage du pare-feu

Avant de tester Apache, il est nécessaire de modifier les paramètres du pare-feu pour autoriser l'accès extérieur aux ports Web par défaut. Si vous avez suivi les instructions des conditions préalables, vous devez avoir un pare-feu UFW configuré pour restreindre l'accès à votre serveur.

Lors de l'installation, Apache s'enregistre auprès d'UFW pour fournir quelques profils d'application qui peuvent être utilisés pour activer ou désactiver l'accès à Apache via le pare-feu.

Lister les ufw profils d'application en exécutant ce qui suit :

sudo ufw app list

Votre sortie sera une liste des profils d'application :

OutputAvailable applications:
  AIM
  Bonjour
  CIFS
. . . 
 WWW
 WWW Cache
 WWW Full
 WWW Secure
. . . 

Les profils Apache commencent par WWW :

  • WWW: Ce profil ouvre uniquement le port 80 (trafic Web normal et non crypté)
  • WWW Cache: Ce profil ouvre uniquement le port 8080 (parfois utilisé pour la mise en cache et les proxys Web)
  • WWW Full: Ce profil ouvre les deux ports 80 (trafic Web normal non crypté) et le port 443 (trafic crypté TLS/SSL)
  • WWW Secure: Ce profil ouvre uniquement le port 443 (trafic crypté TLS/SSL)

Il est recommandé d'activer le profil le plus restrictif qui autorisera toujours le trafic que vous avez configuré. Comme vous n'avez pas encore configuré SSL pour votre serveur dans ce guide, il vous suffit d'autoriser le trafic sur le port 80:

sudo ufw allow 'WWW'

Vous pouvez vérifier le changement en vérifiant l'état :

sudo ufw status

Le résultat fournira une liste du trafic HTTP autorisé :

OutputStatus: active

To                         Action      From
--                         ------      ----
OpenSSH                    ALLOW       Anywhere
WWW                        ALLOW       Anywhere
OpenSSH (v6)               ALLOW       Anywhere (v6)
WWW (v6)                   ALLOW       Anywhere (v6)

Comme indiqué par la sortie, le profil a été activé pour autoriser l'accès au serveur Web Apache.

Étape 3 - Vérification de votre serveur Web

À la fin du processus d'installation, Debian 11 démarre Apache. Le serveur Web devrait déjà être opérationnel.

Assurez-vous que le service est actif en exécutant la commande pour le systemd système d'initialisation :

sudo systemctl status apache2
Output● apache2.service - The Apache HTTP Server
     Loaded: loaded (/lib/systemd/system/apache2.service; enabled; vendor prese>
     Active: active (running) since Wed 2022-07-06 22:05:45 UTC; 23s ago
       Docs: https://httpd.apache.org/docs/2.4/
   Main PID: 2796 (apache2)
      Tasks: 55 (limit: 9509)
     Memory: 21.0M
        CPU: 67ms
     CGroup: /system.slice/apache2.service
             ├─2796 /usr/sbin/apache2 -k start
             ├─2798 /usr/sbin/apache2 -k start
             └─2799 /usr/sbin/apache2 -k start

Cette sortie confirme que le service a démarré avec succès. Cependant, la meilleure façon de tester cela est de demander une page à Apache.

Vous pouvez accéder à la page d'accueil par défaut Apache 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 différentes manières à partir de la ligne de commande.

Essayez d'écrire ce qui suit à l'invite de commande de votre serveur :

hostname -I

Vous recevrez quelques adresses séparées par des espaces. Vous pouvez essayer chacun dans votre navigateur Web pour déterminer s'ils fonctionnent.

Une autre option consiste à utiliser le icanhazip.com outil, qui est un site Web qui, lorsqu'il est consulté, renvoie l'adresse IP publique de votre machine telle qu'elle est lue à partir d'un autre emplacement sur Internet. Si vous n'avez pas curl déjà installé, vous pouvez l'installer avec la commande suivante :

sudo apt install curl

Ensuite, utilisez curl à récupérer icanhazip.com en utilisant IPv4 :

curl -4 icanhazip.com

Lorsque vous avez l'adresse IP de votre serveur, saisissez-la dans la barre d'adresse de votre navigateur :

http://your_server_ip

Vous devriez voir la page Web par défaut de Debian 11 Apache :

Cette page indique que Apache fonctionne correctement. Il comprend également des informations de base sur les fichiers Apache importants et les emplacements des répertoires.

Étape 4 - Gestion du processus Apache

Maintenant que votre serveur Web est opérationnel, passons en revue certaines commandes de gestion de base à l'aide de systemctl.

Pour arrêter votre serveur Web, exécutez :

sudo systemctl stop apache2

Pour démarrer le serveur Web lorsqu'il est arrêté, exécutez :

sudo systemctl start apache2

Pour arrêter puis redémarrer le service, exécutez :

sudo systemctl restart apache2

Si vous ne faites que des modifications de configuration, Apache peut souvent se recharger sans interrompre les connexions. Pour ce faire, utilisez la commande suivante :

sudo systemctl reload apache2

Par défaut, Apache est configuré pour démarrer automatiquement au démarrage du serveur. Si ce n'est pas ce que vous voulez, désactivez ce comportement en exécutant :

sudo systemctl disable apache2

Pour réactiver le service afin qu'il démarre au démarrage, exécutez :

sudo systemctl enable apache2

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 de serveur dans Nginx) pour encapsuler les détails de configuration et héberger plusieurs domaines à partir d'un seul serveur. Nous allons configurer un domaine appelé votre_domaine, mais vous devez le remplacer par votre propre nom de domaine.

Info : Si vous configurez un nom de domaine avec DigitalOcean, veuillez consulter notre Documentation réseau.


Apache sur Debian 11 a un bloc de serveur activé par défaut qui est configuré pour servir des documents à partir du /var/www/html annuaire. Bien que cela fonctionne bien pour un seul site, cela peut devenir compliqué 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, laissant /var/www/html en place comme répertoire par défaut à servir si une demande client ne correspond à aucun autre site.

Créez le répertoire pour votre_domaine comme suit :

sudo mkdir -p /var/www/your_domain

Ensuite, attribuez la propriété du répertoire à l'utilisateur auquel vous êtes actuellement connecté comme avec le $USER variables d'environnement :

sudo chown -R $USER:$USER /var/www/your_domain

Les autorisations de vos racines Web doivent être correctes si vous n'avez pas modifié votre umask valeur, qui définit les autorisations de fichier par défaut. Pour vous assurer que vos autorisations sont correctes et permettre au propriétaire de lire, d'écrire et d'exécuter les fichiers tout en n'accordant que des autorisations de lecture et d'exécution aux groupes et autres, vous pouvez saisir la commande suivante :

sudo chmod -R 755 /var/www/your_domain

Ensuite, créez un échantillon index.html page en utilisant votre éditeur de texte préféré. Ici, nous utiliserons nano:

nano /var/www/your_domain/index.html

À l'intérieur, ajoutez l'exemple de code HTML suivant :

/var/www/votre_domaine/index.html

<html>
    <head>
        <title>Welcome to your_domain!</title>
    </head>
    <body>
        <h1>Success!  The your_domain virtual host is working!</h1>
    </body>
</html>

Enregistrez et fermez le fichier lorsque vous avez terminé. Si vous utilisez nano, vous pouvez le faire en appuyant sur CTRL + X, alors Y et ENTER.

Pour que Apache serve ce contenu, il est nécessaire de créer un fichier d'hôte virtuel avec les bonnes directives. Au lieu de modifier le fichier de configuration par défaut situé à /etc/apache2/sites-available/000-default.conf directement, faites-en un nouveau à /etc/apache2/sites-available/your_domain.conf:

sudo nano /etc/apache2/sites-available/your_domain.conf

Insérez le bloc de configuration suivant, similaire au bloc par défaut, mais mis à jour pour votre nouvel annuaire et nom de domaine :

/etc/apache2/sites-available/votre_domaine.conf

<VirtualHost *:80>
    ServerAdmin [email protected]
    ServerName your_domain
    ServerAlias www.your_domain
    DocumentRoot /var/www/your_domain
    ErrorLog ${APACHE_LOG_DIR}/error.log
    CustomLog ${APACHE_LOG_DIR}/access.log combined
</VirtualHost>

Notez que nous avons mis à jour le DocumentRoot à notre nouveau répertoire et ServerAdmin à un e-mail auquel 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é.

Activez maintenant le fichier avec le a2ensite outil:

sudo a2ensite your_domain.conf

Désactiver le site par défaut défini dans 000-default.conf:

sudo a2dissite 000-default.conf

Ensuite, testez les erreurs de configuration :

sudo apache2ctl configtest

Vous devriez recevoir la sortie suivante :

OutputAH00558: apache2: Could not reliably determine the server's fully qualified domain name, using 127.0.1.1. Set the 'ServerName' directive globally to suppress this message
Syntax OK

Redémarrez Apache pour mettre en œuvre vos modifications :

sudo systemctl restart apache2

Apache servira désormais votre nom de domaine. Vous pouvez tester cela en accédant à http://your_domain, où vous verrez quelque chose comme ce qui suit :

Étape 6 - Se familiariser avec les fichiers et répertoires Apache importants

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 par défaut Apache que vous avez vue précédemment, est diffusé à partir du /var/www/html annuaire. Cela peut être modifié en modifiant les fichiers de configuration Apache.

Configuration du serveur

  • /etc/apache2: Le répertoire de configuration Apache. Tous les fichiers de configuration Apache résident ici.
  • /etc/apache2/apache2.conf: Le fichier de configuration principal Apache. Cela peut être modifié pour apporter des modifications à la configuration globale 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 port 80 et écoute en plus sur le port 443 lorsqu'un module fournissant des fonctionnalité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 sites-enabled annuaire. En règle générale, toute la configuration du bloc de serveur est effectuée dans ce répertoire, puis activée en se connectant à l'autre répertoire avec le a2ensite commande.
  • /etc/apache2/sites-enabled/: répertoire dans lequel les hôtes virtuels par site activés sont stockés. En règle générale, ceux-ci sont créés en créant des liens vers des fichiers de configuration trouvés dans le sites-available répertoire avec le a2ensite. Apache lit les fichiers de configuration et les liens trouvés dans ce répertoire lorsqu'il démarre ou se 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 sites-available et sites-enabled répertoires, mais sont utilisés pour stocker des fragments de configuration qui n'appartiennent pas à un hôte virtuel. Fichiers dans le conf-available répertoire peut être activé avec le a2enconf commande et désactivé avec la a2disconf commande.
  • /etc/apache2/mods-available/, /etc/apache2/mods-enabled/: Ces répertoires contiennent respectivement les modules disponibles et activés. 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 du a2enmod et a2dismod commandes.

Journaux du serveur

  • /var/log/apache2/access.log: Par défaut, chaque demande adressée à votre serveur Web est enregistrée dans ce fichier journal, sauf si Apache est configuré pour faire autrement.
  • /var/log/apache2/error.log: Par défaut, toutes les erreurs sont enregistrées dans ce fichier. La LogLevel La directive dans la configuration Apache spécifie la quantité de détails que contiendront les journaux d'erreurs.

Conclusion

Maintenant que votre serveur Web est installé, vous disposez de nombreuses options pour le type de contenu que vous pouvez diffuser et les technologies que vous pouvez utiliser pour créer une expérience plus riche.

Si vous souhaitez créer une pile d'applications plus complète, vous pouvez lire cet article sur comment configurer une pile LAMP sur Debian 11.