lamp
Linux

Comment Installer LAMP sur Rocky Linux 9.

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>&nbsp;</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;

Laisser un commentaire

Votre adresse e-mail ne sera pas publiée. Les champs obligatoires sont indiqués avec *