Comment Installer Apache Sur Un VPS Ou Serveur Ubuntu

Apache (apache2) est un serveur HTTP qui répond aux requêtes HTTP qui lui sont transmises par un client (de manière générale, navigateur web) permettant ainsi, par exemple, la mise en ligne de site web.

Si vous souhaitez utiliser votre VPS ou serveur dédié à ces fins, voici comment installer Apache sur un serveur Ubuntu.

Pour les étapes qui suivent, j’utilise un VPS Ubuntu avec un environnement sécurisé avec le pare-feu UFW.

Pré-requis: Disposer d’un serveur dédié ou VPS Ubuntu – vous pouvez commander un VPS chez OVH

Installation d’Apache sur Ubuntu

Commençons par installer Apache sur notre serveur Ubuntu.

Une fois connecté au serveur, en tant que Super User, entrons simplement la commande :

apt install apache2

Une fois l’installation effectuée, il convient de vérifier que les ports des protocoles HTTP (80) et HTTPS (443) sont ouverts sur notre serveur.

Autorisation des ports HTTP et HTTPS dans le pare-feu UFW

Si vous utilisez un pare-feu, tel que UFW, il se peut que l’ouverture des ports pour les protocoles HTTP (80) et HTTPS (443) n’est pas été effectuée. Il va donc falloir ajouter ces règles d’autorisation.

Pour vérifier l’état actuel de UFW, on entre la commande:

ufw status

Ce qui devrait nous afficher quelque chose comme :

To Action From
-- ------ ----
PortSSH/tcp ALLOW IN Anywhere

Si les ports sont déjà activés, alors on aura quelque chose comme :

To Action From
-- ------ ----
PortSSH/tcp ALLOW IN Anywhere
80/tcp ALLOW IN Anywhere
443/tcp ALLOW IN Anywhere

Si ce n’est pas le cas, alors activons les :

ufw allow http
ufw allow https

Ce qui revient au même que la commande suivante :

ufw allow 80/tcp
ufw allow 443/tcp

Nous devons ensuite recharger UFW :

ufw reload

Et le résultat de l’état d’UFW devrait maintenant contenir les ports 80/tcp et 443/tcp

Nous pouvons alors passer à la mise en ligne de notre serveur Apache.

Mise en ligne de notre serveur Apache

Une fois Apache installé et les ports HTTP et HTTPS autorisés, il nous reste maintenant à activer notre serveur HTTP avec la commande :

systemctl enable apache2

Le service étant activé, nous pouvons tester dans un navigateur web en entrant l’adresse IP de notre serveur pour y accéder :

Notre serveur HTTP est désormais en ligne et accessible sur le Web pour n’importe quelle personne qui entrerais son adresse IP.

La page affichée correspond aux fichiers générés automatiquement lors de l’installation d’Apache dans le répertoire racine :

/var/www/html/

C’est à partir de là que l’on pourra modifier les fichiers que l’on souhaite rendre accessibles.

Quelques étapes de sécurité supplémentaires

Pour finir nous allons effectuer quelques modifications dans la configuration de notre serveur Apache.

Actuellement, si l’on tente d’accéder un emplacement inexistant de notre serveur, par exemple http://ipserveur/v, Apache renverra la réponse suivante au client:

URL introuvable sur le serveur Apache

Ce que nous allons configurer nous permettra de ne plus afficher la version d’Apache ni le système d’exploitation installé sur notre serveur. Ces données pourrait se réveler utile pour faciliter une attaque contre notre serveur.

Nous allons donc éditer notre fichier de configuration Apache :

nano /etc/apache2/apache2.conf

En ajoutant les deux lignes suivantes à la fin du fichier :

ServerSignature Off
ServerTokens Prod

Il faut ensuite recharger Apache pour que les modifications soient prises en compte :

systemctl reload apache2

Lorsque l’on tente désormais d’accéder à une ressource inexistante sur notre serveur, Apache ne renvoit desormais qu’une erreur sans plus de détails:

URL introuvable – mais sans trop en dévoiler

En l’état actuel, notre serveur Apache nous permet uniquement de publier des pages web statiques au format HTML ainsi que des fichiers, les possibilités sont limitées – pour rendre nos pages plus dynamiques, nous pourrions alors continuer par installer PHP et MYSQL sur notre serveur Ubuntu.

Si vous souhaitez poursuivre avec un site HTML, vous trouverez une bonne introduction à HTML et CSS sur OpenClassrooms.

Il existe également des alternatives à Apache comme serveur web: voir sur Wikipedia – Logiciels de serveurs HTTP