install-apache-web
installe-appache-web
Comment installer le serveur Web Apache sur Debian
Introduction
Le serveur HTTP Apache est le serveur Web le plus utilisé au monde. Il offre de nombreuses fonctionnalités puissantes, notamment des modules à chargement dynamique, une prise en charge multimédia robuste et une intégration étendue avec d'autres logiciels populaires.
Prérequis
- Configuré sur votre serveur un utilisateur normal, non root, avec les privilèges sudo.
- Activer un pare-feu de base pour bloquer les ports non essentiels.
[Savoir:]
Vous allez apprendre à configurer un compte utilisateur normal et à mettre en place un pare-feu pour votre serveur en suivant notre guide d'installation initiale du serveur pour Debian Configuration-serveur
Installation d'Apache
Apache est disponible dans les dépôts de logiciels par défaut de Debian, ce qui permet de l’installer à l’aide d’outils de gestion de paquets conventionnels.
sudo apt update
Ensuite, installez le package apache2 :
sudo apt install apache2
Après avoir confirmé l'installation, apt installera Apache et toutes les dépendances requises.
Réglage du pare-feu Avant de tester Apache, il est nécessaire de modifier les paramètres du pare-feu afin d'autoriser l'accès extérieur aux ports web par défaut. En supposant que vous ayez suivi les instructions des prérequis, vous devriez 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.
sudo ufw app list
Vous verrez une liste des profils d’application :
Available 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 chiffré)
- Cache WWW: ce profil ouvre uniquement le port 8080 (parfois utilisé pour la mise en cache et les proxys Web)
- WWW Full: ce profil ouvre à la fois le port 80 (trafic Web normal et non chiffré) et le port 443 (trafic chiffré 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é. Étant donné que nous n’avons pas encore configuré SSL pour notre serveur dans ce guide, nous n’aurons besoin d’autoriser le trafic que sur le port 80 :
sudo ufw allow 'WWW'
Vous pouvez vérifier le changement en tapant :
sudo ufw status
Status: active
To Action From
-- ------ ----
OpenSSH ALLOW Anywhere
WWW ALLOW Anywhere
OpenSSH (v6) ALLOW Anywhere (v6)
WWW (v6) ALLOW Anywhere (v6)
Vérification de votre serveur Web À la fin du processus d'installation, Debian démarre Apache. Le serveur Web devrait déjà être opérationnel.
Vérifiez avec le système init systemd pour vous assurer que le service est en cours d'exécution en tapant :
sudo systemctl status apache2
Comme vous pouvez le constater à partir de ce résultat, le service semble avoir démarré avec succ ès. Cependant, la meilleure façon de le tester est de demander une page à Apache.
sudo systemctl restart apache2
Vous pouvez accéder à la page d'accueil par défaut d'Apache pour vérifier 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.
hostname -I
Vous obtiendrez quelques adresses séparées par des espaces. Vous pouvez essayer chacune d'elles dans votre navigateur Web pour voir si elles fonctionnent.
Une alternative consiste à utiliser l'outil curl, qui devrait vous donner votre adresse IP publique vue depuis un autre emplacement sur Internet.
sudo apt install curl
Ensuite, utilisez curl pour 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 verrez une page phpinfos()
Cette page indique qu'Apache fonctionne correctement. Elle inclut également des informations de base sur les fichiers et les emplacements des répertoires importants d'Apache.
Gestion du processus Apache
Maintenant que votre serveur Web est opérationnel, passons en revue quelques commandes de gestion de base. Pour arrêter votre serveur Web, tapez :
sudo systemctl stop apache2
Pour démarrer le serveur Web lorsqu'il est arrêté, tapez :
sudo systemctl start apache2
Pour arrêter puis redémarrer le service, tapez :
sudo systemctl restart apache2
Si vous effectuez simplement des modifications de configuration, Apache peut souvent recharger sans interrompre les connexions. Pour ce faire, utilisez cette commande :
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 souhaitez, désactivez ce comportement en tapant :
sudo systemctl disable apache2
Pour réactiver le service afin qu'il démarre au démarrage, tapez :
sudo systemctl enable apache2
Configuration des hôtes virtuels (recommandé)
Lorsque vous utilisez le serveur web Apache, vous pouvez utiliser des hôtes virtuels (similaires aux blocs de serveurs dans Nginx) pour encapsuler les détails de la configuration et héberger plus d'un domaine à partir d'un seul serveur. Dans les commandes suivantes, remplacez votre_domaine par votre propre nom de domaine. Pour en savoir plus sur la configuration d'un nom de domaine avec DigitalOcean, consultez notre section.
Apache sur Debian a un bloc serveur activé par défaut qui est configuré pour servir les documents du répertoire /var/www/html. Bien que cela fonctionne bien pour un seul site, cela peut devenir lourd si vous hébergez plusieurs sites. Au lieu de modifier /var/www/html, créons une structure de répertoires dans /var/www pour notre site your_domain, 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 de votre_domaine comme suit, en utilisant l'indicateur -ppour créer tous les répertoires parents nécessaires :
sudo mkdir -p /var/www/votre_domain
Ensuite, attribuez la propriété du répertoire avec la variable d’environnement $USER :
sudo chown -R $USER:$USER /var/www/votre_domain
Les autorisations de vos racines Web devraient être correctes si vous n’avez pas modifié votre valeur de démasquage (unmask), mais vous pouvez vous en assurer en tapant :
sudo chmod -R 755 /var/www/votre_domain
Ensuite, créez un exemple de page index.html à l’aide de nano ou de votre éditeur préféré :
nano /var/www/votre_domain/index.html
<html>
<head>
<title>Bienvenu votre_domain!</title>
</head>
<body>
<h1>Success! votre_domain virtual host fonctionne!</h1>
</body>
</html>
Pour qu'Apache puisse servir ce contenu, il est nécessaire de créer un fichier d'hôte virtuel avec les directives correctes. Au lieu de modifier directement le fichier de configuration par défaut situé dans /etc/apache2/sites-available/000-default.conf, créons-en un nouveau dans /etc/apache2/sites-available/votre_domaine.conf :
sudo nano /etc/apache2/sites-available/votre_domaine.conf
Collez le bloc de configuration suivant, qui est similaire à celui par défaut, mais mis à jour pour notre nouveau répertoire et notre nouveau nom de domaine : /etc/apache2/sites-available/your_domain.conf
<VirtualHost *:80>
ServerAdmin admin@your_email_domain
ServerName votre_domaine
ServerAlias www.votre_domaine
DocumentRoot /var/www/votre_domaine
ErrorLog ${APACHE_LOG_DIR}/error.log
CustomLog ${APACHE_LOG_DIR}/access.log combined
</VirtualHost>
[Remarquez] que nous avons mis à jour DocumentRoot avec notre nouveau répertoire et ServerAdmin avec un email auquel l'administrateur du site votre_domaine peut accéder. Nous avons également ajouté deux directives : ServerName, qui définit le domaine de base qui doit correspondre à cette définition d'hôte virtuel, et ServerAlias, qui définit d'autres noms qui doivent correspondre comme s'ils étaient le nom de base.
Activons le fichier avec l’outil a2ensite :
sudo a2ensite votre_domaine.conf
Désactiver le site par défaut défini dans 000-default.conf :
sudo a2dissite 000-default.conf
Ensuite, testons les erreurs de configuration :
sudo apache2ctl configtest
Output
AH00558: 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 implémenter vos modifications :
sudo systemctl restart apache2
Apache devrait maintenant servir votre nom de domaine. Vous pouvez tester cela en accédant à http://votre_domaine
.
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.
/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 diffusé à partir du répertoire /var/www/html. Cela peut être modifié en modifiant les fichiers de configuration d'Apache.
Configuration du serveur
- /etc/apache2 : le répertoire de configuration d'Apache. Tous les fichiers de configuration d'Apache se trouvent ici.
- /etc/apache2/apache2.conf: le fichier de configuration principal d'Apache. Il 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 doit écouter. Par défaut, Apache écoute sur le port 80 et écoute également sur le port 443 lorsqu'un module fournissant des fonctionnalités SSL est activé.
- /etc/apache2/sites-available/ : Répertoire dans lequel 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épertoire sites-enabled. Généralement, toute la configuration du bloc serveur est effectuée dans ce répertoire, puis activée en établissant un lien vers l'autre répertoire à l'aide de la commande a2ensite.
- /etc/apache2/sites-enabled/ : Répertoire dans lequel sont stockés les hôtes virtuels activés par site. Généralement, ces hôtes sont créés en liant les fichiers de configuration trouvés dans le répertoire sites-available à l'aide de l'option a2ensite. Apache lit les fichiers de configuration et les liens qui se trouvent 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 répertoires sites-available et sites-enabled, mais sont utilisés pour stocker des fragments de configuration qui n'ont pas leur place dans un hôte virtuel. Les fichiers du répertoire conf-available peuvent être activés avec la commande a2enconf et désactivés avec la commande a2disconf.
- /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 commandes a2enmod et a2dismod. Journaux du serveur
- /var/log/apache2/access.log : Par défaut, toutes les requêtes adressées à votre serveur web sont enregistrées dans ce fichier journal, à moins qu'Apache ne soit configuré différemment.
- /var/log/apache2/error.log : Par défaut, toutes les erreurs sont enregistrées dans ce fichier. La directive LogLevel de la configuration d'Apache spécifie le niveau de détail des journaux d'erreurs.
Conclusion
Maintenant que votre serveur Web est installé, vous disposez de nombreuses options quant au type de contenu que vous pouvez diffuser et aux technologies que vous pouvez utiliser pour créer une expérience plus riche.