Introduction Captivante à la Création d’un Serveur LAMP : Éveillez le Héros de l’Hébergement Web en Vous !

⏱ lecture 15 min

Bienvenue dans le monde fascinant de l’hébergement web, où chaque ligne de code devient la fondation d’une expérience en ligne exceptionnelle.

 

Imaginez être le maître absolu de votre royaume numérique, capable de donner vie à des sites dynamiques, des blogs vibrants, ou même des applications puissantes.

 

Tout cela est possible, et le secret réside dans la création de votre propre serveur LAMP.

Le pouvoir de LinuxLinux - Debian12

 

Notre aventure commence avec Linux, le héros du système d’exploitation open-source.

 

Tel un héro fidèle, Linux assure la stabilité et la sécurité de votre royaume numérique.

 

Vous serez étonné de la puissance qu’il apporte, offrant une base solide pour tout ce que vous imaginerez.

Le Serviteur Apache

ApacheImaginez Apache comme le chevalier en armure brillante, prêt à servir chaque demande web avec grâce et efficacité.

 

Il est le gardien de votre château virtuel, vous permettant de présenter vos créations au monde avec une performance inégalée.

Le Sorcier PHP

Enfin, PHP se présente comme le sorcier des scripts, donnant vie à vos idées les plus dynamiques.php - Serveur Web

 

Ses pouvoirs de traitement côté serveur vous permettent de créer des expériences interactives et captivantes pour vos visiteurs.

Les Merveilles de MySQL/MariaDB

MySql - MariaDbEt que dire de MySQL et MariaDB, les magiciens des bases de données ?

 

Ils organisent et gèrent vos données avec une habileté magistrale, créant un équilibre parfait entre stockage sécurisé et accès rapide.

Alors, êtes-vous prêt à devenir le héros de cette quête numérique ?

Suivez-nous dans ce périple où vous transformerez des lignes de code en royaumes numériques prospères.

 

Préparez-vous à donner vie à vos créations en apprenant à créer votre propre serveur LAMP sous Debian 12.

 

La légende numérique n’attend que vous ! 🚀

Notre serviteur APACHE, Serveur sous Debian12.

Avant de commencer, nous allons mettre à jour notre Debian12.


sudo apt-get update

Maintenant, nous allons installer Apache.


sudo apt-get install -y apache2

Nous allons faire en sorte qu’il démarre automatiquement à chaque redémarrage de notre Debian12 .


sudo systemctl enable apache2

Nous allons voir si notre serveur Apache fonctionne bien.

Pour cela, il suffit de se connecter sur sa page d’accueil à partir d’un navigateur et de saisir l’URL de votre Debian12.

Pour notre exemple, Debian se trouve àl’adresse IP : 192.168.1.31.


http://192.168.1.31

serveur lamp

Si vous ne connaissez pas l’adresse Ip de votre Debian, exécutez ceci :


ip a

Vous obtiendrez les informations de votre carte réseau.

AdresseIp

Votre serviteur APACHE à besoin de certains compagnons pour faire fonctionner correctement un site WordPress.

 

Parmi eux, il y a :

Apache

  • Le module mod_rewrite permet de capturer vos URL et de les réécrire. C’est ce qui permet d’utiliser https://www.fournierlaurent.com/tuto et non pas https://192.168.1.31.
  • Le module deflate est utilisé pour la mise en cache des pages sur votre site mais, aussi pour la compression.
  • Le module headers permet de modifier les en-têtes HTTP des pages.
  • Le module SSL servira à gérer les certificats afin d’utiliser le protocole HTTPS sur votre site internet.

 

 

La commande a2enmod <module> permet d’activer un nouveau module tandis que a2dismod <module> désactive un module.
Ces deux programmes ne font rien d’autre que de créer ou supprimer des liens Apache.

 

Nous allons en profiter pour mettre tous nos compagnons en démarrage automatique.

Et hop, un petit de coups de copier / coller sur le code :


sudo a2enmod rewrite
sudo a2enmod deflate
sudo a2enmod headers
sudo a2enmod ssl

Maintenant, on relance le service apache pour activer le tout.


sudo systemctl restart apache2

Un dernier petit module à installer : apache2-utils.

Prenez le temps d’installer le paquet « apache2-utils ». Notez toutefois qu’il peut être installé par la suite.
La mise en place de l’authentification pour votre futur site internet passera par la commande htpasswd.
Celle-ci nous permettra de créer un fichier de mots de passe qu’Apache pourra utiliser pour authentifier les utilisateurs.


sudo apt-get install -y apache2-utils

Et voilà, votre serviteur Apache est prêt à vous servir.

Le sorcier PHP

Php - MariaDbDans les arcanes du développement web, PHP, acronyme récursif pour « PHP Hypertext Preprocessor, » se dévoile comme l’architecte des scénarios côté serveur.

Ce langage de scripts généraliste et Open Source, taillé sur mesure pour le développement d’applications web.

Il agit en véritable chef d’orchestre pour votre serveur LAMP et il donne vie à des expériences interactives et dynamiques sur la toile.

Dans l’écosystème du web, PHP se dresse en partenaire privilégié, alliant puissance, polyvalence et accessibilité pour façonner l’avenir digital.

BREF, un vrai sorcier…

Alors prêt


sudo apt-get install -y php

On peut voir que notre sorcier arrive avec des formules :

  • libapache2-mod-php
  • libsodium23
  • php-common
  • php8.2
  • php-cli
  • php-common
  • php-json
  • php-opcache
  • php-readline…

Mais soyons généreux, donnons lui d’autres formule pour son grimoire :


sudo apt-get install -y php-pdo php-mysql php-zip php-gd php-mbstring php-curl php-xml php-pear php-bcmath

Un petit peu d’explication ne rompra pas cette magie, alors :

  • php-pdo : PDO (PHP Data Objects) se présente comme la clé maîtresse pour explorer le royaume des bases de données. Cette interface offre une abstraction élégante, permettant aux développeurs de jongler aisément entre différents systèmes de gestion de bases de données (SGDB).
  • php-mysql : Telle une passerelle numérique, cette extension permet à PHP de dialoguer avec les bases de données MySQL. Elle excelle dans l’art de lancer des requêtes SQL et de manipuler gracieusement les données au sein de l’univers MySQL.
  • php-zip : L’extension zip de PHP se transforme en virtuose des fichiers compressés au format ZIP. Elle dévoile son talent dans la création, l’extraction, et la manipulation habile des fichiers ZIP.
  • php-gd : Telle une baguette magique graphique, GD, la bibliothèque de PHP, enchante le monde visuel. Cette extension donne vie à des images dynamiques, jouant un rôle crucial dans la création de miniatures, de graphiques et dans la manipulation d’images.
  • php-mbstring : Dans le monde multibyte, l’extension Multibyte String (mbstring) se distingue en offrant des fonctions spécialement conçues pour jongler avec des chaînes de caractères multibytes. Une nécessité pour les langues gourmandes en octets comme le japonais, le chinois ou le coréen.
  • php-curl : L’extension cURL se métamorphose en globe-trotter digital, permettant à PHP d’explorer les recoins les plus éloignés du cyberespace. Elle excelle dans l’art des requêtes et des transferts de fichiers sur des protocoles aussi variés que HTTP, HTTPS, FTP, et bien d’autres, devenant ainsi l’outil de prédilection pour interagir avec des API distantes.
    php-xml : Tel un linguiste polyglotte, cette extension offre à PHP la capacité de dialoguer aisément avec XML. Elle se révèle indispensable pour la création, le parsing et la manipulation de documents XML, ainsi que pour réaliser des transformations XSLT.
  • php-pear : PEAR (PHP Extension and Application Repository) se présente comme le majordome des packages PHP. Cette extension simplifie l’installation et la gestion de bibliothèques et de composants réutilisables façonnés par la communauté PHP.
  • php-bcmath : BCMath, la bibliothèque mathématique de PHP, se hisse au sommet de la précision. Elle offre un terrain de jeu idéal pour réaliser des opérations mathématiques d’une précision arbitraire, particulièrement utile pour jongler avec des nombres décimaux exigeant une exactitude sans faille.

 

Ceci étant dit, nous allons tester le bon fonctionnement de notre base de données.

Pour ce faire, nous allons donc créer un fichier « phpinfo.php »  à la racine de notre site Web.


sudo nano /var/www/html/phpinfo.php

Dans ce fichier, on place le code suivant :

<?php phpinfo(); ?>

Maintenant, on peut vérifier le bon fonctionnement de notre PHP à l’adresse suivante :


http://192.168.1.31/phpinfo.php

php

Nos magiciens MariaDb et MySql

Sans leur magie, votre serveur Lamp n’aurait aucune mémoire et votre futur site n’existerait donc pas.

Ils sont la baguette magique qui donnera toutes les données à votre site dont il aura besoin.

 

Alors prêt…

Commençons par les bases :


sudo apt-get install -y mariadb-server

Comme pour toute magie, on ne fait pas n’importe quoi.

Alors, on sécurise notre installation :


sudo mariadb-secure-installation

On répond correctement au magicien…


NOTE: RUNNING ALL PARTS OF THIS SCRIPT IS RECOMMENDED FOR ALL MariaDB
SERVERS IN PRODUCTION USE! PLEASE READ EACH STEP CAREFULLY!

In order to log into MariaDB to secure it, we'll need the current
password for the root user. If you've just installed MariaDB, and
haven't set the root password yet, you should just press enter here.

Enter current password for root (enter for none):
OK, successfully used password, moving on...

Setting the root password or using the unix_socket ensures that nobody
can log into the MariaDB root user without the proper authorisation.

You already have your root account protected, so you can safely answer 'n'.

Switch to unix_socket authentication [Y/n] n
... skipping.

You already have your root account protected, so you can safely answer 'n'.

Change the root password? [Y/n] Y
New password: **************
Re-enter new password: **************
Password updated successfully!
Reloading privilege tables..
... Success!


By default, a MariaDB installation has an anonymous user, allowing anyone
to log into MariaDB without having to have a user account created for
them. This is intended only for testing, and to make the installation
go a bit smoother. You should remove them before moving into a
production environment.

Remove anonymous users? [Y/n] y
... Success!

Normally, root should only be allowed to connect from 'localhost'. This
ensures that someone cannot guess at the root password from the network.

Disallow root login remotely? [Y/n] y
... Success!

By default, MariaDB comes with a database named 'test' that anyone can
access. This is also intended only for testing, and should be removed
before moving into a production environment.

Remove test database and access to it? [Y/n] y
- Dropping test database...
... Success!
- Removing privileges on test database...
... Success!

Reloading the privilege tables will ensure that all changes made so far
will take effect immediately.

Reload privilege tables now? [Y/n] y
... Success!

Cleaning up...

All done! If you've completed all of the above steps, your MariaDB
installation should now be secure.

Et voilà, le tour est joué.

 

Vous avez maintenant un serveur LAMP tout neuf.

 

serveur lamp - MySql