Skip to main content

2. Création d'un Serveur Web LAMP sur Ubuntu 22.04

image.png

Aujourd’hui nous verrons ensemble comment installer LAMP (Linux, Apache, MySQL/MariaDB, PHP) sur Ubuntu 22.04. Dans mon article, j’utiliserai la version Server d’Ubuntu, mais ça fonctionne également sans problème sur la version Desktop. Il est possible d’installer LAMP avec Docker, mais pour bien comprendre le fonctionnement de LAMP nous effectuerons ici une installation de A à Z, sans docker.

LAMP vous permettra ensuite de faire tourner de nombreux services web (Wordpress, Nextcloud…). Nous utiliserons ici Apache pour le serveur web, MariaDB pour le serveur de base de donnée et PHP pour la partie dev/web.

Les prérequis

Comme souvent, il est nécessaire d’avoir quelques prérequis pour suivre ce guide. Ici, il vous faudra une machine capable de faire tourner Ubuntu 22.04. Cela peut être un ordinateur, une machine virtuelle, un VPS ou encore un serveur dédié. À vous de voir en fonction de vos besoins.

Dans ce tutoriel, on supposera donc que vous avez déjà un serveur avec Ubuntu 22.04 installé.

Mise à jour d’Ubuntu 22.04

Important : A partir d’ici, toutes les commandes seront exécutées en tant que root.

sudo passwd root

image.png

Configuration de l'heure :

sudo timedatectl set-timezone Europe/Paris
sudo hwclock -w
timedatectl status

Vous pouvez obtenir la liste des fuseaux horaire acceptés en utilisant la commande :

timedatectl list-timezones

Avant de commencer l’installation de LAMP, pensez à mettre à jour votre système. Exécutez les commandes suivantes sur votre machine Ubuntu 22.04

sudo apt -y update && sudo apt -y upgrade

1. Installation du serveur Apache

On passe maintenant à l’installation du serveur Web Apache. Lancer la commande suivante pour procéder à l’installation d’Apache : 

sudo apt install -y apache2 apache2-utils

Une fois installé, Apache devrait être démarré automatiquement. Vérifiez son état avec la commande :

systemctl status apache2

Voici ce que vous devriez avoir :

image.png

Si ce n’est pas le cas, utilisez la commande suivante :

sudo systemctl start apache2

Utilisez la commande suivante pour démarrer Apache au démarrage système : 

sudo systemctl enable apache2

Si besoin, vous pouvez vérifier la version d’Apache avec la commande suivante : 

apache2 -v

image.png

La première étape est terminée puisque nous avons maintenant terminé l’installation d’Apache. Vous pouvez vérifier son fonctionnement en lançant un navigateur Web sur l’adresse ip du serveur. Si vous êtes sur Ubuntu Desktop, vous pouvez vérifier en utilisant localhost ou 127.0.0.1 comme adresse web.

image.png

Si la connexion est refusée ou bloquée, jeter un coup d’oeil au niveau du pare-feu de votre serveur (iptable ou UFW par exemple).

Maintenant que nous savons que notre serveur Apache est correctement installé, nous allons passer à la phase d’installation.

1.1 Configuration Apache

Maintenant, nous devons définir  www-data (utilisateur Apache) en tant que propriétaire de la racine du document (autrement appelé racine Web). Par défaut, il appartient à l’utilisateur root.

sudo chown www-data:www-data /var/www/html/ -R

Par défaut, Apache utilise le nom d’hôte du système comme son global ServerName. Si le nom d’hôte du système ne peut pas être résolu via DNS, alors vous risquez d’avoir une erreur lors de l’utilisation de la commande suivante :

sudo apache2ctl -t

image.png

Pour résoudre ce problème, nous pouvons définir un global ServerNamedans Apache. Utilisez votre éditeur de texte préféré pour créer un nouveau fichier de configuration.

sudo nano /etc/apache2/conf-available/servername.conf

Ajoutez-y la ligne suivante :

ServerName localhost
CTRL O pour enregistrer, ENTRER pour valider, et CTRL X pour sortir.

Activer maintenant le fichier de configuration avec la commande suivante : 

sudo a2enconf servername.conf

Relancer apache : 

sudo systemctl reload apache2
Vous ne devriez plus avoir d’erreur lors de l’utilisation de la commande sudo apache2ctl -t.

image.png

2. Installation du serveur de base de données MariaDB

MariaDB est une alternative à MySQL. Il est développé par d’anciens membres de l’équipe MySQL qui craignent qu’Oracle ne transforme MySQL en produit fermé.

Entrez la commande suivante pour installer MariaDB sur Ubuntu 22.04 :

sudo apt install mariadb-server mariadb-client

Une fois installé, le serveur MariaDB devrait être démarré automatiquement. Utilisez systemctl pour vérifier son état.

systemctl status mariadb

Comme pour Apache, vous devriez avoir un retour de ce style :

image.png

Si MariaDB n’est pas up & running, vous pouvez le lancer via la commande suivante :

sudo systemctl start mariadb

Ici, comme pour Apache, on lance MariaDB au démarrage du système avec la commande suivante :

sudo systemctl enable mariadb

2.1 Installer la dernière version de MariaDB sur Ubuntu 22.04

Étape 1 : Mise à jour du système

Avant toute chose, il est recommandé de mettre à jour votre système pour s’assurer que tous les paquets existants sont à jour.

Ouvrez votre terminal et exécutez :

sudo apt update && sudo apt upgrade -y

Étape 2 : Ajout du dépôt MariaDB

MariaDB n’est pas inclus dans les dépôts par défaut d’Ubuntu 22.04 à sa dernière version. Pour installer la version la plus récente, vous devez ajouter le dépôt officiel de MariaDB à votre système.

  1. Importez la clé GPG du dépôt MariaDB pour vérifier l’authenticité des paquets :

sudo apt install software-properties-common
sudo apt-key adv --fetch-keys 'https://mariadb.org/mariadb_release_signing_key.asc'
  1. Ajoutez le dépôt MariaDB à votre système :

sudo add-apt-repository 'deb [arch=amd64] https://mirror.mariadb.org/repo/10.6/ubuntu focal main'

Remplacez 10.6 par la version spécifique de MariaDB que vous souhaitez installer. Pour la version la plus récente, consultez le site officiel de MariaDB pour obtenir l’URL du dépôt correct.

Étape 3 : Installation de MariaDB

Après avoir ajouté le dépôt, installez MariaDB en exécutant :

sudo apt update
sudo apt install mariadb-server -y

Cette commande installera MariaDB ainsi que tous les paquets nécessaires.

Étape 4 : Sécurisation de MariaDB

Après l’installation, il est important de sécuriser votre installation MariaDB. MariaDB propose un script de sécurisation qui vous guide à travers quelques étapes de base pour sécuriser votre base de données.

Exécutez le script avec la commande :

sudo mysql_secure_installation

Vous serez invité à configurer les options de sécurité, telles que définir un mot de passe root, supprimer les utilisateurs anonymes, désactiver la connexion root à distance, et supprimer la base de données test.

Étape 5 : Vérification de l’installation

Pour vérifier que MariaDB est installé et fonctionne correctement, connectez-vous à la console MariaDB en utilisant :

sudo mariadb

Vous devriez voir le prompt de MariaDB, ce qui indique que le service fonctionne correctement.

Avec votre serveur MariaDB maintenant opérationnel, envisagez d’utiliser les services Cloud VPS de Shape.host pour héberger vos bases de données. Les solutions Linux SSD VPS de Shape.host offrent une performance et une fiabilité exceptionnelles, idéales pour les applications nécessitant une base de données robuste comme MariaDB. Que vous développiez des applications web, des systèmes de gestion de contenu, ou des applications d’entreprise, les Cloud VPS de Shape.host fournissent l’environnement parfait pour vos besoins en bases de données.

2.2 Configuration de MariaDB

Maintenant que MariaDB est installé, on lance le script de configuration:

sudo mysql_secure_installation

Votre installation est nouvelle, donc pour le moment le mot de passe SQL est vide. À la première étape, appuyer sur la touche entrée pour valider que le mot de passe actuel est vide.

image.png

Sélectionnez ensuite « Y » pour définir un nouveau mot de passe SQL, puis choisissez le bien. (Si besoin, vous pouvez utiliser un générateur de mots de passe).

image.png

Pour les questions suivantes, vous pouvez appuyer sur Entrée à chaque fois, ce qui vous permettra de supprimer l’utilisateur anonyme, désactiver la connexion root à distance et supprimer la base de données de test.

image.png

Par défaut, le package MariaDB sur Ubuntu utilise unix_socketpour authentifier la connexion utilisateur, ce qui signifie que vous pouvez utiliser le nom d’utilisateur et le mot de passe du système d’exploitation pour vous connecter à la console MariaDB. Vous pouvez donc exécuter la commande suivante pour vous connecter sans fournir le mot de passe root MariaDB : 

sudo mariadb -u root

Pour sortir, utilisez la commande :

quit

Vous pouvez vérifier la version de MariaDB installé avec la commande suivante : 

mariadb -v

Ce qui devrait donner un résultat de ce type : 

mariadb Ver 15.1 Distrib 10.3.22-MariaDB, for debian-linux-gnu (x86_64) using readline 5.2

3. Installation de PHP

Ajout d’un nouveau dépôt pour php8.3

La version 8.3 de php n’est pour le moment pas disponible dans le dépôt officiel de Debian 12 et Ubuntu 22.04.
On ajoute donc un dépôt qui contient la version 8.3 :

sudo apt install -y software-properties-common
sudo add-apt-repository -y ppa:ondrej/php
sudo apt update -y

Installation des prérequis pour Nextcloud 29

A adapter  selon la version PHP 7.4 8.0 8.1 8.2
sudo apt-get install -y libapache2-mod-php8.3 imagemagick \
php8.3-gd php8.3-mysql php8.3-curl php8.3-mbstring \
php8.3-intl php8.3-imagick php8.3-xml php8.3-zip \
php8.3-apcu redis-server php8.3-redis \
php8.3-ldap smbclient php8.3-bcmath php8.3-gmp

Activer le module Apache PHP :

sudo a2enmod php8.3

Puis redémarrer Apache avec la commande suivante : 

sudo systemctl restart apache2

Vous pouvez vérifier la version de PHP avec la commande suivante :

php --version

Ce qui devrait vous afficher ceci :

image.png

Un test assez simple pour vérifier le fonctionnement de PHP est de créer un fichier phpinfo à la racine de votre hébergement. Pour ça, exécuter la commande suivante : 

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

Puis ajouter dans ce fichier le texte suivant :

<?php phpinfo(); ?>

image.png

CTRL O pour enregistrer, ENTRER pour valider, et CTRL X pour sortir.

Ce qui vous permet maintenant de tester via un navigateur la lecture du fichier phpinfo.php ; Cela devrait donner quelque chose comme ça : 

image.png

3.1 Activer PHP FPM

Dans certains cas, vous aurez besoin de  PHP-FPM pour obtenir de meilleures performances pour votre serveur web, nous allons alors activer PHP-FPM sur notre serveur Apache.

Désactiver le module PHP 8.3

sudo a2dismod php8.3

Installer le module PHP-FPM

sudo apt install php8.3-fpm

Activer les modules proxy_fcgi et setenvif

sudo a2enmod proxy_fcgi setenvif

Activer le fichier de configuration /etc/apache2/conf-available/php8.3-fpm.conf

sudo a2enconf php8.3-fpm

Puis redémarrer Apache :

sudo systemctl restart apache2

Maintenant, si vous recharger votre page phpinfo, vous devriez voir que php-fpm est utilisé : 

image.png

Voilà ! Votre serveur web LAMP est maintenant installé et configuré. Vous pouvez maintenant créer votre site internet, installer un CMS ou encore de nombreux services web.

N’oubliez pas de supprimer le fichier phpinfo qui regorge d’informations qui pourrait être utile aux petits malins qui voudraient s’en prendre à votre serveur.

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