Dans ce tutoriel, vous allez apprendre à installer LAMP avec Debian (10) et à configurer l’environnement en fonction de vos besoins.
● Avoir une machine installé sous Debian 10
● Avoir un accès à internet
● Avoir une connaissance de l’arborescence et des commandes de base Linux.
● Avoir des connaissances sur le fonctionnement des protocoles HTTP(S) & des SGBD selon TCP/IP
Pour installer notre environnement LAMP, nous allons avoir besoin de 3 éléments,
Et voilà en une seule courte étape l’installation est faite ! Magique non ?
La configuration d’Apache se fera au même endroit que la plupart des applications, dans /etc/apache2.
Pour plus d'informations sur l'arborescence que je vais utiliser, je vous invite à consulter la documentation d'Apache
En premier lieu nous allons “créer” un nouveau site, puis dans un second temps nous allons supprimer le site par défaut (le site “apache2 default web page”)
Je crée d’abord un dossier “sitetest” dans lequel j’irais ranger le contenu de mon nouveau site web
Je vais ensuite créer dedans un fichier au format .html appelé “index.html”, vous pouvez ne pas l’utiliser le nom “index” mais vous serez à ce moment là obligé de le taper dans la barre de recherche de votre navigateur
J’ajoute dedans une simple phrase qui apparaîtra sur mon site quand je me connecte dessus.
Ensuite je vais aller créer un fichier de configuration pour mon nouveau site, pour me simplifier la tâche, je vais simplement copier celui qui est en place actuellement (appelé “000-default”) et le coller en lui donnant comme nouveau nom “site-test.conf”
Une fois que la copie est faite, je vais aller modifier le fichier de conf.
Je vais ensuite remplacer le “DocumentRoot” qui est par défaut /var/www/html en /var/www/sitetest. Par défaut apache ne supporte des fichiers de web que dans /var/www/ ou dans /usr/share/, d’où le fait que le dossier “sitetest” soit dans /var/www
Avant :
Après :
Une fois l’ajout fait, je peux quitter le fichier de configuration en enregistrant.
Maintenant je vais DESACTIVER le site par défaut, j’utiliserais la commande a2dissite (pour apache2 disable site) et je renseigne ensuite le nom du fichier de configuration que je souhaite désactiver.
Je vais ensuite ACTIVER le site que je viens de créer, j’utiliserais cette fois la commande a2ensite (pour apache2 enable site) et je renseigne le nom du fichier que je viens de modifier.
Je recharge ensuite la configuration d’Apache2 avec systemctl reload
Lorsque je retourne sur mon navigateur, j’ai bien mon nouveau site qui apparaît ! La preuve j’ai mon test “ceci est un fichier de test”
Super ! Le site fonctionne !
Sur Apache vous avez la possibilité de gérer les différents ports pour votre site par défaut.
Cela deviendrait intéressant si vous souhaitez gérer plusieurs sites en même temps.
Dans mon cas, je veux juste modifier le port de mon nouveau site en lui donnant le numéro de port 8080 (plutôt que le port 80 par défaut)
En premier lieu je vais aller modifier mon fichier de configuration site-test.conf
En modifiant la première ligne (je remplace 80 par 8080)
Je modifie ensuite le fichier “ports.conf” en modifiant ici la ligne “Listen 80” en le remplaçant par 8080.
Avant :
Après :
Je retourne sur mon navigateur en ajoutant le numéro de port :
La configuration est bonne !
Vous pouvez laisser la configuration comme ceci mais pour des raisons de simplicité, je vous conseille pour la suite de ce tutoriel de revenir sur le port 80.
Il est primordial dans la configuration d’un serveur web de savoir mettre en place un certificat.
Dans ce tutoriel, je nous ferais utiliser les certificats déjà en place par défaut, il est évidemment recommandé d’en créer de nouveau mais ceci ne sera pas abordé dans ce tutoriel.
Je commence d’abord par modifier le fichier du site “default-ssl” qui est le site par défaut pour apache avec le SSL, il renvoie sur /var/www/html en “DocumentRoot” je modifie cela par le site que je viens de créer dans /var/www/sitetest
Avant :
Après
Une fois la modification effectuée. Je vais ajouter le module “ssl” qui me permettra de faire prendre en compte à Apache l’ajout de certificat.
J’autorise ensuite le site default-ssl à être activé
Je redémarre ensuite apache2
Au moment de la connexion sur mon site, le cadena n’est plus barré signe de que la communication s’est bien déroulée, j’ai en plus le “https” qui est apparu.
Le site me signale un “risque probable de sécurité”, pas de panique ici c’est simplement car “le certificat n’est pas sûr car il est auto-signé” en effet, l’autorité de certification n’étant pas officielle, le site me dit que c’est potentiellement risqué.
Si j’accepte de “poursuivre le risque” il me ramène sur ma page de test mais cette fois-ci avec “https”
J'ajoute une règle sur iptables autorisant mon serveur à recevoir en TCP des requêtes sur le port 80 et 443
Nous allons maintenant initialiser le SGBD installé. Pour cela nous utiliserons la commande suivante
Vous pouvez ensuite suivre le reste de “l’installation” étape par étape.
Premièrement entrer le mot de passe root, le système vous demandera si vous souhaitez le changer dans mon cas NON pas besoin vu que je viens à peine de le rentrer.
Ensuite, il vous signale qu’à l’installation MariaDB possède un utilisateur “anonyme”, ce qui signifie que tout le monde peut se connecter avec pour avoir accès à une base de données de “test”.
OUI je choisis de retirer cet utilisateur.
On me propose ensuite de désactiver la connexion à distance de l’utilisateur “root” et de la limiter à mon “localhost”, en d’autres termes, je ne pourrais pas me connecter à distance.
C’est exactement ce que vous êtes censés faire donc OUI je désactive cette option.
On me propose alors de supprimer une base de données “test” que MariaDB créé par défaut.
Tout ce qui est présent par défaut je le supprime donc OUI
Il me demande si je veux “recharger” les privilèges histoire d’être sûr que les changements effectués
précédemment prennent effet, OUI je le fais.
Une fois que c’est terminé, je me connecte à au SGBD avec la commande suivante :
Une fois connecté, vous aurez ce message vous signalant que vous êtes bien connecté à MariaDB
Pour créer une base de données, j’utilise la commande suivante :
Le message suivant apparaît pour me signaler que ma requête est “ok” et qu’elle a bien fonctionné.
En cas d'erreur (ici j'ai écris "DATABAS" au lieu de "DATABASE") j'aurais le message suivant :
Pour commencer à utiliser votre base de données, vous pouvez utiliser la commande “use”, ici test le nom de la base de données que je viens de créer.
Une message apparaîtra pour me dire que la “database” a été changé, maintenant plutôt que d’avoir [none] j’ai [test] en base de données
Je vais maintenant créer un utilisateur “admin” pour remplacer mon utilisateur “root” en effet, il n’est pas recommandé de travailler avec l’utilisateur “root” donc autant se faire un utilisateur avec (quasiment) les mêmes droits !
Je créer d’abord l’utilisateur avec “CREATE USER”, le “IDENTIFIED BY ‘admin’” signifie que le mot de passe de l’utilisateur est “admin”
Je vais ensuite fournir les droits sur toutes les bases de données (première *) et sur toutes les tables (seconde *) à l’utilisateur avec la possibilité de fournir des droits sur chacunes de ces BDD puis je quitte.
La règle de pare-feu à ajouter pour autoriser la connexion à la base de données est la suivante
phpMyAdmin est un outil superbe me permettant (depuis une interface web) de gérer mes bases de
données. Pour l'utiliser (spoiler alert) il faut avoir les librairies PHP ! Raison pour laquelle je nous les ai fais installer plus haut.
Pour l’installer je vais d’abord me déplacer dans le dossier de mon site de test.
Ensuite je vais télécharger le .zip de phpMyAdmin.
Je dézip ensuite le dossier
Puis je le renomme
Une fois que c’est fait, je supprime l’archive zip.
Malheureusement, si vous retournez sur votre site en tapant l’adresse http://votreip/phpmyadmin, vous aurez ce message :
Je dois donc retourner sur mon terminal et ajouter l’extension mysqli, en effet mysqli est un "module" php offrant des requêtes pour se connecter aux SGBD.
Une fois que c’est fait, je redémarre apache.
J’aurais enfin l’interface de connexion de phpMyAdmin !
Pour utiliser phpMyAdmin, je vais devoir rentrer les identifiants & mot de passe des utilisateurs de mon SGBD, si j’essaie de me connecter d’abord avec “root” impossible car souvenez vous qu’on ne peut maintenant pas se connecter à root en dehors sur “localhost”
J’essaie de me connecter cette fois-ci avec mon utilisateur “admin”
Cette fois-ci pas d’erreur j’arrive bien à me connecter et j’ai même la liste complète des bases de données sur la gauche !
Maintenant sur la base de données “test” vous pouvez gérer les privilèges
Vous pouvez modifier la structure de la base de données en ajoutant des “tables”
Vous pouvez directement faire vos requêtes SQL depuis l’onglet “SQL”
Vous pouvez surtout faire des sauvegardes de vos bases de données à l’aide de l’onglet “exporter”
Si aucunes tables n’est créé sur la base de données, ce message apparaîtra
En bref, vous pouvez absolument tout faire depuis votre superbe interface web !
Vous savez maintenant comment installer et configurer un serveur LAMP avec Debian !
Vous pouvez aller plus loin dans la configuration si vous le souhaitez, n’hésitez pas à me contacter dans ce cas ou à vous renseigner directement auprès des documentations Debian disponibles sur leur site officiel.
Si vous souhaitez avoir plus d’informations ou si vous avez découvert une coquille sur ce tutoriel, merci de me contacter à l’adresse i.martel@imweb.ovh
v2 - Merci à Clément Lainé de m’avoir fait remarquer qu’il manquait “Ajouter les règles de pare-feu” sur le tutoriel
v1 Version initiale
v2 Modification apportée sur la partie
“Configuration d’Apache”