Installation de LAMP (Serveur Web) sur Ubuntu 22.04
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.
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
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 :
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
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.
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.
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
Pour résoudre ce problème, nous pouvons définir un global ServerName
dans 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 enregistrerenregistrer, ENTRER pour validervalider, 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.
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 :
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
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.
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).
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.
Par défaut, le package MariaDB sur Ubuntu utilise unix_socket
pour 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
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 :
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(); ?>
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 :
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é :