Apache est souvent combiné à des systèmes Linux. Ubuntu est tout par­ti­cu­liè­re­ment indiqué pour l’ins­tal­la­tion du serveur Web, en raison de sa com­mu­nauté pas­sion­née et de son im­por­tante do­cu­men­ta­tion. Découvrez avec nous l’ensemble des étapes d’ins­tal­la­tion et de con­fi­gu­ra­tion d’Apache sous Ubuntu.

Apache sous Ubuntu : prérequis

Apache compte parmi les serveurs Web les plus anciens et les plus stables. Il est très populaire, notamment grâce à son évo­lu­ti­vité et à la facilité de sa con­fi­gu­ra­tion. Il n’existe aucun prérequis spé­ci­fique en ce qui concerne le pro­ces­seur pour l’ins­tal­la­tion d’Apache sous Ubuntu 22.04. La plupart des pro­ces­seurs modernes sont gé­né­ra­le­ment suf­fi­sants pour faire fonc­tion­ner Apache sous Ubuntu. Les éléments fon­da­men­taux demandés sont la mémoire vive dis­po­nible et la capacité de stockage sur le disque dur.

Apache consomme peu de res­sources et peut être configuré sur dif­fé­rents types de systèmes : or­di­na­teurs de bureau, or­di­na­teurs portables, serveurs, machines vir­tuelles, etc. Afin d’héberger un site Web ou une ap­pli­ca­tion efficace, davantage de res­sources seront peut-être requises pour profiter de per­for­mances optimales. Attention : n’oubliez pas que l’uti­li­sa­tion de modules est sus­cep­tible de modifier la con­fi­gu­ra­tion système requise. Si vous souhaitez par exemple intégrer un module destiné à améliorer les per­for­mances d’un serveur Web Apache, une plus grande mémoire sera né­ces­saire pour la mise en cache et d’autres op­ti­mi­sa­tions.

Pour con­fi­gu­rer un serveur Web Apache, vous devez respecter les prérequis suivants :

  • Mémoire vive (RAM) : 4 Go
  • Système d’ex­ploi­ta­tion : Ubuntu (uti­li­sa­teur avec droits d’accès sudo)
  • Espace en disque dur : 5 Go
  • Pare-feu : suffisant pour réguler le trafic HTTP et bloquer les ports qui ne sont pas né­ces­saires
  • Connexion Internet : suf­fi­sante pour té­lé­char­ger des paquets
Conseil

L’hé­ber­ge­ment Linux par IONOS prend en charge un grand nombre de modules Apache qui per­met­tent de con­fi­gu­rer ra­pi­de­ment et ef­fi­ca­ce­ment votre propre reverse-proxy Apache. Profitez de per­for­mances évo­lu­tives, d’une pro­tec­tion DDOS et de fonc­tion­na­li­tés PHP de haut niveau.

Ins­truc­tions étape par étape : ins­tal­la­tion d’Apache sous Ubuntu

Ubuntu 22.04 fait appel à l’outil de gestion des paquets APT pour installer Apache. Commencez par ac­tua­li­ser l’index des paquets sur votre système Ubuntu, de manière à vérifier que toutes les dé­pen­dances né­ces­saires sont bien à jour.

Si l’ins­tal­la­tion n’est pas locale, utilisez le protocole SSH pour vous connecter à votre serveur Ubuntu.

Étape 1 : mettre à jour la liste des paquets

Commencez par appeler le terminal, puis procédez à une mise à jour.

$ sudo apt update
bash

Étape 2 : installer le paquet Apache

Installez ensuite le paquet Apache ainsi que toutes ses dé­pen­dances en utilisant la commande APT « install ».

$ sudo apt install apache2
bash

Étape 3 : modifier les pa­ra­mètres du pare-feu

Pour con­fi­gu­rer Apache, vous devez activer le programme Un­com­pli­ca­ted Firewall (UFW) dans Ubuntu. Une fois Apache installé sous Ubuntu, il configure des profils d’ap­pli­ca­tion dans UFW, ces derniers per­met­tant de réguler le trafic de données vers les ports Web.

Utilisez la commande suivante pour afficher la liste des profils d’ap­pli­ca­tion :

$ sudo ufw app list
bash

Le résultat affiche trois profils pour Apache :

Image: Terminal Linux : Liste des profils d’application pour Apache
Terminal : liste des profils d’ap­pli­ca­tion pour Apache
  • Apache : ouvre le port TCP 80 pour HTTP (connexion non chiffrée)
  • Apache Full : ouvre le port TCP 80 (HTTP, connexion non chiffrée) et 443 (HTTPS, connexion chiffrée avec TLS/SSL)
  • Apache Secure : ouvre seulement le port HTTPS 443 pour une connexion chiffrée

Comme aucun SSL n’a encore été mis en place, nous ne pouvons ouvrir que le port 80.

$ sudo ufw allow ‘Apache’
bash

La commande « status » permet de vérifier que le bon réglage a bien été effectué.

$ sudo ufw status
bash

Étape 4 : tester l’état d’Apache

Utilisez le ges­tion­naire de système « systemd » pour vérifier si le service Apache est bien actif.

$ sudo systemctl status apache2
bash

Étape 5 : appeler la page de démarrage par défaut d’Apache

Ren­seig­nez votre adresse IP dans la barre d’adresse du na­vi­ga­teur pour accéder à la page par défaut d’Apache. Vous ne con­nais­sez pas votre adresse IP ? Il vous suffit de taper « hostname » (nom d’hôte) pour l’afficher.

$ hostname -I
bash

Vous avez aussi la pos­si­bi­lité d’utiliser l’outil « icanhazip ».

$ curl -4 icanhazip.com
bash

Appelez main­te­nant la page standard d’Apache dans votre na­vi­ga­teur, puis remplacez « server_ip » par votre propre adresse IP.

http://server_ip

Vous trouverez ci-dessous un extrait de la page sous Ubuntu :

Image: Navigateur Web : page d’accueil d’Apache sous Ubuntu
Na­vi­ga­teur Web : page d’accueil d’Apache sous Ubuntu

Étape 6 : gérer le démon Apache

Vous pouvez utiliser « systemctl »pour gérer le démon (ou service) du serveur Web Apache.

Démarrez le serveur Web Apache comme suit :

$ sudo systemctl start apache2
bash

Arrêtez le serveur Web Apache comme suit :

$ sudo systemctl stop apache2
bash

Arrêtez et re­dé­mar­rez le serveur Web Apache comme suit :

$ sudo systemctl restart apache2
bash

Re­dé­mar­rez Apache et chargez à nouveau la con­fi­gu­ra­tion comme suit :

$ sudo systemctl reload apache2
bash

Si vous installez Apache sous Ubuntu, le serveur Web se lance alors au­to­ma­ti­que­ment au démarrage, juste après la con­fi­gu­ra­tion. Vous pouvez aussi choisir de dé­sac­ti­ver cette fonction :

$ sudo systemctl disable apache2
bash

Si vous souhaitez réactiver le lancement au­to­ma­tique d’Apache au démarrage, procédez comme suit :

$ sudo systemctl enable apache2
bash

Étape 7 : utiliser des hôtes virtuels

Apache héberge, par défaut, les documents dans /var/www/html. Si vous voulez utiliser plusieurs domaines sur un serveur, vous pouvez alors mettre en place des hôtes virtuels. Pour ce faire, créez une structure de ré­per­toire pour un domaine propre au sein de /var/www/.

$ sudo mkdir /var/www/your_domain
bash

Remplacez ensuite « your_domain » par le nom de votre domaine.

Attribuez la propriété du ré­per­toire à la variable d’en­vi­ron­ne­ment « $USER » :

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

Il est également possible d’attribuer ex­pli­ci­te­ment les droits de lecture, d’écriture et d’exécution en mode octal :

$ sudo chmod -R 755 /var/www/your_domain
bash

Étape 8 : créer une page de test

Créez un index.html en tant que page d’accueil pour votre domaine. Vous pouvez pour cela utiliser l’éditeur de texte « nano », par exemple.

$ sudo nano /var/www/your_domain/index.html
bash

Choi­sis­sez ensuite une for­mu­la­tion avant de l’insérer dans le fichier HTML :

<html>
    <head>
        <title>Welcome to your_domain!</title>
    </head>
    <body>
        <h1>Here you can see that your_domain virtual host is successfully working!</h1>
    </body>
</html>
html

Étape 9 : créer un fichier de con­fi­gu­ra­tion pour l’hôte virtuel

Apache doit être configuré en fonction du domaine pour que la page d’exemple soit affichée. Créez un fichier de con­fi­gu­ra­tion propre à votre domaine, sans modifier le fichier de con­fi­gu­ra­tion par défaut d’Apache.

$ /etc/apache2/sites-available/your_domain.conf
bash

Insérez le bloc suivant, puis remplacez « your_domain » par le nom de votre domaine. Dans « Ser­ve­rAd­min », il est également né­ces­saire d’indiquer une adresse email pour l’ad­mi­nis­tra­teur :

<VirtualHost *:80>
    ServerAdmin webmaster@localhost
    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>

Activez le fichier de con­fi­gu­ra­tion en utilisant « a2ensite » :

$ sudo a2ensite your_domain.conf
bash

Dé­sac­ti­vez ensuite l’ancienne page par défaut :

$ sudo a2dissite 000-default.conf
bash

Testez la con­fi­gu­ra­tion afin de détecter toute erreur :

$ sudo apache2ctl configtest
bash

En l’absence d’erreur, vous pouvez alors re­dé­mar­rer Apache :

$ sudo systemctl restart apache2
bash

Accédez à votre page d’accueil :

http://your_domain

Main­te­nant, il est nor­ma­le­ment possible de voir votre page d’exemple :

Image: Navigateur Web : exemple de page pour un hôte virtuel
Na­vi­ga­teur Web : exemple de page pour un hôte virtuel

Étape 10 : fichiers et ré­per­toires Apache im­por­tants

Si vous voulez utiliser ef­fi­ca­ce­ment le serveur Web Apache, il peut s’avérer bénéfique de connaître quelques fichiers et ré­per­toires parmi les plus fré­quem­ment utilisés :

  • /var/www/html : par défaut, Apache met les documents à dis­po­si­tion dans ce ré­per­toire. Vous pouvez modifier ce réglage dans les fichiers de con­fi­gu­ra­tion.
  • /etc/apache2 : tous les fichiers de con­fi­gu­ra­tion d’Apache sont conservés dans ce ré­per­toire.
  • /etc/apache2/apache2.conf : il s’agit du fichier de con­fi­gu­ra­tion principal, qui permet de modifier la con­fi­gu­ra­tion dans son ensemble.
  • /etc/apache2/ports.conf : les ports ouverts sont listés dans ce fichier. En règle générale, il s’agit du port 80 et/ou du port 443.
  • /etc/apache2/sites-available/ : les hôtes virtuels con­fi­gu­rés sont stockés dans ce dossier. Pour pouvoir fonc­tion­ner, les fichiers de con­fi­gu­ra­tion qui s’y trouvent doivent être associés au ré­per­toire « site-enabled ».
  • /etc/apache2/conf-available/, /etc/apache2/conf-enabled/ : des fichiers de con­fi­gu­ra­tion sup­plé­men­taires n’ap­par­te­nant pas à des hôtes virtuels sont stockés dans ces ré­per­toires. Pour activer la con­fi­gu­ra­tion, utilisez « a2enconf » ; pour la dé­sac­ti­ver, utilisez « a2disconf ».
  • /etc/apache2/mods-available/, /etc/apache2/mods-enabled/ : tous les modules qui sont dis­po­nibles et activés se trouvent dans ces ré­per­toires. Utilisez « a2enmod » pour activer un module, et « a2dismod » pour le dé­sac­ti­ver.
  • /var/log/apache2/access.log : toutes les demandes adressées au serveur Web sont en­re­gis­trées dans ce fichier journal.
  • /var/log/apache2/error.log : l’ensemble des messages d’erreur est consigné dans ce fichier. Les in­for­ma­tions « LogLevel » donnent des in­di­ca­tions sur le degré de gravité des évé­ne­ments.
Aller au menu principal