Installer un serveur web complet

Te voilà ici, certainement tu as décidé d’installer un serveur web sur ta machine.

Tu peux te retrouver dans cette situation (pas dramatique) parce que tu as choisi d’héberger ton site chez toi ou bien choisi un hébergeur où tu es maître de tout (voir l’article sur l’hébergement).

Avant que tu ailles plus loin, je te détaille sur quoi j’ai fait mon installation :

Le Raspberry Pi4 ne permet pas encore (à l’écriture de ces lignes) un fonctionnement complet sur un disque externe. En revanche, un démarrage sur la carte SD puis un basculement vers le disque dur est possible, ce qui rallonge grandement la durée de vie de la carte SD.

Tu pourras donc suivre cet article si tu souhaites créer un serveur sur un OS dérivé de Debian.

Cette page fait partie d’une suite d’article consacré à « Comprendre et créer un site Internet« .

Qu’est-ce-qu’un serveur web

On distingue deux types de serveur web :

  • le hardware qui sera une machine dédiée à stocker l’ensemble des fichiers qui compose un site
  • le software qui contient différents fragments qui contrôlent la façon dont les utilisateurs peuvent accéder aux fichiers hébergés. On trouvera a minima un serveur HTTP. Un serveur HTTP est un logiciel qui comprend les URL et le protocole HTTP (le protocole utilisé par le navigateur pour afficher les pages web).Vu sur Mozilla.org.

Ici, nous nous intéresserons au côté software.

Installation d’un serveur web complet

Il existe plusieurs serveurs ou configuration disponible. Pour ma part, j’ai choisi d’installer un LAMP pour Linux Apache2, MariaDB, Php (sachant que le M peut être pour MySQL et le P pour Perl).

L’installation se fait via le terminal soit en direct soit en SSH (qui sera certainement le cas).

Dans votre terminal, commences par une mise à jour de la liste des paquets et de ton système en saisissant :

sudo apt-get update && sudo apt-get upgrade -y

Ensuite, tu vas installer la base du LAMP (le serveur web complet pour Linux) :

sudo apt-get install apache2 php libapache2-mod-php mariadb-server php-mysql

SI tu souhaites installer mysql, tu remplaces simplement mariadb-server par mysql-server.

Pour compléter l’installation, je te conseille d’installer des modules supplémentaires notamment si tu compte utiliser un CMS comme WordPress :

sudo apt install php-curl php-gd php-intl php-json php-mbstring php-xml php-zip

Ton serveur est maintenant prêt, pour vérifier, dans ton navigateur, tape l’adresse suivante : http://localhost, tu dois voir apparaître :

Maintenant, il est temps de faire quelques petites choses, notamment niveau sécurité.

De manière optionnelle, tu peux installer PhpMyAdmin qui te permettra de gérer ta base de données via le navigateur :

sudo apt-get install phpmyadmin

Sécurisation

Apache2

Il s’agit surtout de protéger les informations qui peuvent être transmise à des petits malins. Le but étant de cacher des informations, en cherchant sur internet différentes solutions, celles remontées étaient déjà mise en place dans l’installation de base, dans le fichier /etc/apache2/conf-available/security.conf, modifies les valeurs :

  • ServerTokens en mettant Prod
  • ServerSignature en mettant Off

J’ai pris par habitude de restreindre tous les dossiers se trouvant dans la racine des sites d’Apache (sous debian, c’est /var/www), pour cela, toujours dans le fichier précédent, ajoutes :

<Directory />
     Order Allow,Deny
     Allow from all
     AllowOverride None
     Options -Indexes -ExecCGI -FollowSymLinks -Includes
     Require all denied
     AllowOverride None
</Directory>

Sécurisation de MariaDB

De base, MariaDB, lors de l’installation crée un utilisateur root sans mot de passe, ce qui n’est pas le plus sur.

Dans le terminal, saisir :

sudo mysql_secure_installation

En répondant Y (oui) à toutes les réponses, tu auras un système bien plus sécurisé, mais dis-toi que ce ne sera jamais assez face aux petits malins et surtout, la première source d’erreur, de fuite, se situe entre le clavier et la chaise.

Conclusion

Si tu as suivi cet article, tu as fait un pas de plus à la mise en ligne de ton site.

Il existe d’autre serveur http tel Nginx et d’autres gestionnaire de base de données, mais j’avoue que j’ai l’habitude d’être sur Apache et MariaDb, côté langage de programmation, j’aime beaucoup PHP mais ce n’est qu’un avis personnel.

Laisser un commentaire

Ce site utilise Akismet pour réduire les indésirables. En savoir plus sur comment les données de vos commentaires sont utilisées.