Dans ce tutoriel, vous allez apprendre à installer LAMP avec Fedora 36 et à configurer l'environnement de travail en fonction de vos besoins.
● Avoir une machine installé sous Fedora 36
● 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.
● Avoir des connaissances sur le fonctionnement des protocoles DNS pour la résolution de nom
Pour installer notre environnement LAMP (=LinuxApacheMysql/MariadbPhp), nous avons besoin de 3 éléments :
● 1 Serveur web
● 1 Système de Gestion de Bases de Données (SGBD) (ici MariaDB)
● 1 librairie d'un langage de programmation permettant la relation entre apache & mariadb (ici PHP)
Ne pas avoir a démarrer manuellement ou via un script nos services c'est quand même plus simple !
Pour Apache
Pour mariadb
Règle pour le port 80 (HTTP)
Règle pour le port 443 (HTTPS)
La configuration d'Apache se fera au même endroit que la plupart des applications, dans /etc/httpd.
Pour plus d'information sur l'arborescence que je vais utiliser, je vous invite à consulter la documentation d'Apache
Dans son arborescence de base, apache possède sa configuration "principale" dans le fichier (en partant de /etc/httpd) conf/httpd.conf, ce dossier fait appel à toutes les configurations présentes dans conf.d/*.conf
Je vais donc créer un site que j'appellerais "site1" correspondant à mon premier site "web"
Pour cela, je créer le fichier de configuration avec mon éditeur de texte
Le fichier de configuration aura la syntaxe suivante :
Attention, pour que l'option "ServerName" fonctionne il faut avoir au préalable un domaine configuré !
Une fois la configuration effectuée, si vous ne l'avez pas fait, créez un dossier et ajoutez un fichier index.html
Ensuite redémarrez apache
Maintenant que le service est redémarré, je test depuis un client
Super ! le site fonctionne
Vous pouvez répéter ce processus avec autant de site que vous le souhaitez et personnaliser la configuration !
Si vous souhaitez faire en sorte que vos sites soient disponibles sur un autre port il faudra modifier 2 fichiers de configuration :
● Le fichier httpd.conf
● Le fichier .conf de votre site (ex : site1.conf pour moi)
Dans le fichier httpd.conf il faudra remplacer l'argument :
Par celui que vous souhaitez à la place :
Ensuite vous devez remplacer dans votre fichier de configuration le numéro de port dans la balise VirtualHost
J'ajoute la règle de pare-feu laissant passer le port 8080
Redémarrer apache & vérifier le résultat sur votre navigateur !
Super ! Vous avez changé le port de votre site !
Si vous le souhaitez vous pouvez rester avec le port modifié mais pour une question de "simplicité" j'effectuerais le reste du tutoriel sur le port par défaut
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 présents par défaut sur le système.
Premièrement je vais installer le module me permettant de faire du ssl/tls
Depuis les versions RHEL8 le mod_ssl est problématique, le certificat présents par défaut localhost.crt n'est pas chargé dans son dossier de base. Pour résoudre la problématique redémarrez apache
Le module va créer un fichier présent dans conf.d nommé ssl.conf, dans ce fichier de configuration, commentez simplement tous les éléments présents dans la balise VirtualHost
Une fois les commentaires fait,je fais une copie de mon fichier de configuration précedent, je l'appelerais "site1-sec.conf" pour me faire comprendre visuellement qu'il s'agit du fichier de configuration sécurisé.
Je modifie ensuite le fichier de configuration en remplacent le numéro de port dans ma balise
J'ajoue ensuite les éléments suivants :
Votre fichier complet devrait alors ressembler (sans les commentaires) à cela :
Redémarrez alors apache puis vérifiez depuis votre navigateur !
Super ! Vous savez maintenant ajouter un certificat SSL/TLS pour votre site web !
Nous allons maintenant initialiser le SGBD. Pour cela nous utiliserons la commande suivante :
Vous pouvez ensuite suivre le reste de l'installation étape par étape ci-dessous.
Pour le mot de passe root, vous pouvez le renseigner ou le laisser vide si vous ne le connaissez pas cela n'a pas d'importance pour le moment.
Premièrement il me demande si je veux passer à l'authentification unix. Je réponds oui car l'authentification via ce socket me permettra de faire en sorte que seuls les utilisateurs du système soient connectés.
Si vous souhaitez changer le mot de passe root vous pouvez, pour ma part pas besoin
Je retire les utilisateurs anonymes
Je désactive la connexion à distance sur l'utilisateur root
Je supprime la database "test"
Je recharge les privilèges maintenant vu que je viens de supprimer une base de données & de couper les accès à celle-ci.
Et voilà ! Installation terminée !
Je peux essayer de me connecter à mon SGBD avec l'utilisateur root
J'ai bien accès au SGBD !
Pour créer une base de données, j'utilise la commande suivante (test étant le nom de la base de données) :
Pour commencer à l'utiliser, vous pouvez utiliser la commande "USE".
Un message apparaîtra pour me dire que la "database" a été changé et j'ai maintenant le nom de ma database entre crochet
Je vais maintenant créer un utilisateur "admin" pour "remplacer" mon utilisateur root.
En effet, il n'est pas recommandé de travailler avec les comptes utilisateurs présents de base sur un système/une application/etc...
Pour me faciliter la tâche sur ce tutoriel, j'utiliserais "admin", je ne conseil absolument pas ce nom d'utilisateur car trop facilement identifiable.
Je créer d'abord l'utilisateur avec "CREATE USER", ici le "IDENTIFIED BY" me permet de spécifier le mot de passe du compte.
Je lui fourni ensuite les droits administrateurs sur toutes les bases de données (première étoile) ainsi que toutes les tables de ces bases (seconde étoile). Pour cela j'utiliserais la commande GRANT
La règle de pare-feu a ajouter est la suivante :
phpMyAdmin est un superbe outil permettant depuis une interface web de gérer mes bases de données !
Pour l'utiliser (spoiler alert), vous aurez besoin d'avoir des librairies PHP sur votre système ! Raison pour laquelle nous les avons donc installés plus tôt.
Pour l'installer je vais d'abord me préparer un hôte virtuel (vous pouvez utiliser un hôte existant aussi), j'utiliserais https (vous pouvez utiliser aussi http)
Une fois le fichier modifier je me déplace dans /var/www
Je télécharge ensuite phpmyadmin (un paquet existe déjà mais je préfère le télécharger manuellement)
Je dézip ensuite le fichier
Je renomme le dossier phpMyAdmin-5.2.0-all-languages en phpmyadmin
Je supprime ensuite le .zip
J'installe ensuite les librairies php manquante :
Une fois les librairies manquantes installés, je redémarre apache
En retournant sur votre client la page doit bien apparaitre !
Une fois connecté j'ai même accès à ma base de donnée test !
Super ! Nous seulement vous venez de déployer votre première application en php mais en plus vous avez effectué une liaison avec votre SGBD !
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 Fedora !
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 Fedora 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 à Jérôme Raynal de m'avoir fait remarqué le manque de clarté sur la partie "Configurer mon premier site virtuel", un warning a été ajouté.
v1 - Version initiale
v2 - Ajout d'un warning sur la partie "Premier hôte virtuel"