Le développement web et l’hébergement nécessite d’installer un langage de programmation, une base de donnée et un serveur Web. Installer ce outils séparément peut être une tache fastidieux.
La pile LAMP est là pour vous faciliter la tâche. Il s’agit d’un ensemble d’outils Linux open sources qui, ensemble, forme un serveur Web permettant de héberger des sites web dynamiques.
Voici les composants de LAMP en détails :
Apache: C’est un logiciel open source qui permet de créer un serveur Web pour pouvoir servir des sites web sur internet.
MariaDB: Il s’agit d’un système de gestion de base de données relationnelle développé par les développeurs originaux de MySQL et garanti pour rester open source.
PHP: C’est l’abréviation de Hypertext Preprocessor est un langage de script open source largement utilisé, particulièrement adapté au développement web.
Dans ce guide nous allons voir comment installer et utiliser Apache, MariaDB et PHP sur Rocky Linux 9.
Comment la pile LAMP fonctionne?
Le serveur web Apache reçoit des requêtes des pages web pour le navigateur. Si un fichier PHP est demandé, il transmet la requête à PHP qui charge et exécute le code contenu dans le fichier. PHP établit également un lien avec la base de données (MySQL/MariaDB) pour obtenir toutes les données référencées dans le code.
Le code PHP et les données extraites de la base de données sont ensuite utilisés pour générer des scripts HTML qui servent à afficher les pages web.
La pile LAMP est efficace pour gérer les pages web statiques et dynamiques, où les données changent de temps en temps lorsqu’elles sont chargées.
Installer le serveur Apache
Nous commençons par installer Apache, Ce logiciel est fourni sous le nom de httpd dans les dépôts de Rocky Linux.
Pour l’installer taper la commande suivante :
# dnf install httpd
Une fois installé, démarré le service :
# systemctl start httpd
# systemctl enable httpd
Vous pouvez vérifier si le service est bien démarré avec la commande ci-dessous :
# systemctl status httpd
Installer le serveur de base de donnée MariaDB
Afin d’héberger les pages web, nous avons besoin d’un serveur de base de données.
Nous avons deux options: MySQL ou MariaDB. Dans ce guide, j’opte pour MariaDB en raison de sa réplication plus rapide et plus sûre, et de sa compatibilité avec MySQL.
Rocky Linux 9 fournit le package MariaDB 10 dans le dépôt par défaut. Pour l’installer taper la commande ci-dessous :
# dnf install mariadb-server mariadb
Une fois installé, démarré le service mariadb et vérifier son status:
# systemctl start mariadb
# systemctl enable mariadb
# systemctl status mariadb
Par défaut MariaDB n’est pas sécurisé, pour le sécurisé procéder comme ci-dessous :
# mysql_secure_installation
....
Enter current password for root (enter for none): Appuyer sur Enter
......
Switch to unix_socket authentication [Y/n] Y
.....
Change the root password? [Y/n] Y
New password: Taper un mot de passe
Re-enter new password: Ratper le mot de passe
....
Remove anonymous users? [Y/n] Y
....
Disallow root login remotely? [Y/n] Y
.....
Remove test database and access to it? [Y/n] Y
Ensuit tester si tu peux te connecter avec le nouveau mot de passe créé:
# mysql -u root -p
Enter password:
Installer PHP est ses extensions
Pour installer PHP, nous avons besoin d’ajouter les deux dépôts Remi et EPEL
# dnf install -y https://rpms.remirepo.net/enterprise/remi-release-9.rpm
Une fois les dépôts ajoutés, lister les version PHP disponible :
# dnf module list php
Ensuite soécifier ta version préféré ( dans mon cas PHP 8.2) :
# dnf module enable php:remi-8.2 -y
Maintenant installez PHP est ses dépendances :
# dnf install php-{common,gmp,fpm,curl,intl,pdo,mbstring,gd,xml,cli,zip,mysqli}
Enfin vérifier la version de PHP installé :
# php --version
Configuration
Pour configurer PHP, éditer le fichier /etc/php.ini :
# vi /etc/php.ini
Effectuez les modifications souhaités. Par exemple :
max_execution_time = 300 upload_max_filesize = 100M post_max_size = 128M date.timezone = Africa/casa
Ensuite autoriser Apache à charger les fichiers PHP
# vi /etc/httpd/conf/httpd.conf # LoadModule foo_module modules/mod_foo.so AddHandler php-script .php
Création du fichier Virtual host d’Apache
Pour pouvoir accéder à un site via votre navigateur, vous devez créer un fichier Virtual host pour le site. Dans ce guide, nous allons configurer Apache pour qu’il serve une simple page.
Commençant par créer un fichier :
# vi /etc/httpd/conf.d/Votredomain.conf
Ensuite ajouter les ligne ci-dessous :
<VirtualHost *:80> ServerName test.mondomain.com DocumentRoot /var/www/html/ ErrorLog /var/log/httpd/error.log CustomLog /var/log/httpd/requests.log combined </VirtualHost>
Enregistrer le fichier et Créer le fichier au niveau du répértoire /var/ww/html :
# vi /var/www/html/index.html
Ajouter les ligne ci-dessous ( ce qui va être affiché au niveau du navigateur) :
<html> <head> <title>C'est un test</title> </head> <body> <h1>LAMP fonctionne très bien sur Rocky Linux 9!</h1> </body> </html>
Enfin redémarrer Apache :
# systemctl restart httpd
Pour tester, au niveau de votre navigateur taper l’adresse ip du votre machine http://adresse_ip
Vous souhaitez apprendre plus sur les virtual Host, cliquer ici.
Connection à la Base MySQL
Pour tester le bon fonctionnement de LAMP, nous allons configurer les sites web PHP pour qu’ils se connectent à la base de données MySQL.
Nous allons commencer par créer un base de donnée.
Connectez-vous à la base Mysql :
# mysql -u root -p
Créez la base de donnée et la table suivantes:
CREATE DATABASE db_exemple; USE db_exemple; CREATE TABLE tbl_exemple (Id INT,fldName VARCHAR(50), fldEmail VARCHAR(30), fldPhone VARCHAR(15),fldMessage VARCHAR(1000)); EXIT
Créer un formulaire HTML pour se connecter à la base de données :
# mkdir /var/www/html/contacts # vi /var/www/html/contacts/contact.html
Ajouter ensuite les ligne ci-dessous :
<!DOCTYPE html> <html xmlns="http://www.w3.org/1999/xhtml"> <head> <meta http-equiv="Content-Type" content="text/html; charset=utf-8" /> <title>Contact Form - PHP/MySQL Demo Code</title> </head> <body> <fieldset> <legend>Contact Form</legend> <form name="frmContact" method="post" action="contact.php"> <p> <label for="Name">Name </label> <input type="text" name="txtName" id="txtName"> </p> <p> <label for="email">Email</label> <input type="text" name="txtEmail" id="txtEmail"> </p> <p> <label for="phone">Phone</label> <input type="text" name="txtPhone" id="txtPhone"> </p> <p> <label for="message">Message</label> <textarea name="txtMessage" id="txtMessage"></textarea> </p> <p> </p> <p> <input type="submit" name="Submit" id="Submit" value="Submit"> </p> </form> </fieldset> </body> </html>
Créez maintenant un script PHP pour enregistrer les données du formulaire HTML dans votre base de données :
# vi /var/www/html/contacts/contact.php
Ajouter les lignes ci-dessous :
<?php // database connection code // $con = mysqli_connect('localhost', 'database_user', 'database_password','database'); $con = mysqli_connect('localhost', 'root', 'root_password','db_exemple'); // get the post records $txtName = $_POST['txtName']; $txtEmail = $_POST['txtEmail']; $txtPhone = $_POST['txtPhone']; $txtMessage = $_POST['txtMessage']; // database insert SQL code $sql = "INSERT INTO `tbl_contact` (`Id`, `fldName`, `fldEmail`, `fldPhone`, `fldMessage`) VALUES ('0', '$txtName', '$txtEmail', '$txtPhone', '$txtMessage')"; // insert in database $rs = mysqli_query($con, $sql); if($rs) { echo "Contact Records Inserted"; } ?>
N’oubliez pas de remplacer root_password et db_exemple par le nom de la base de données. Une fois les fichiers enregistrés, chargez la page à l’aide de l’URL
http://adress_ip/contacts/contact.html
Vous pouvez vérifier si les données ont été ajouté avec les commandes ci-dessous :
# mysql -u root -p Enter password: MariaDB [(none)]> SELECT * FROM db_contact. tbl_exemple;
nmap : les 12 commandes que vous devez connaître
Le fonctionnement du routeur
Protocole du routage
Netstat : Les 14 commandes les plus utilisées
Fail2Ban : How to protect Linux services